summaryrefslogtreecommitdiff
path: root/kernel/trace/trace.c
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-08-22 04:11:33 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-08-22 04:11:33 -0700
commita39227b9229391cedcedc944b6f8dc64f52bebc3 (patch)
treedc116a6e2de96ad9db7a1f5508deb2eae4a529f1 /kernel/trace/trace.c
parent9e200511bcc0da9449c2f410a86e7d7221c6b92f (diff)
parent3fe1011f7ece09019a4c3cccbeeff3e3ea15526f (diff)
Merge "tracing: Revert commits improving handling of saved_tgids"
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r--kernel/trace/trace.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index e3d61aab6bf7..930f68598e9c 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1358,11 +1358,11 @@ void tracing_reset_all_online_cpus(void)
#define SAVED_CMDLINES_DEFAULT 128
#define NO_CMDLINE_MAP UINT_MAX
+static unsigned saved_tgids[SAVED_CMDLINES_DEFAULT];
static arch_spinlock_t trace_cmdline_lock = __ARCH_SPIN_LOCK_UNLOCKED;
struct saved_cmdlines_buffer {
unsigned map_pid_to_cmdline[PID_MAX_DEFAULT+1];
unsigned *map_cmdline_to_pid;
- unsigned *saved_tgids;
unsigned cmdline_num;
int cmdline_idx;
char *saved_cmdlines;
@@ -1396,22 +1396,12 @@ static int allocate_cmdlines_buffer(unsigned int val,
return -ENOMEM;
}
- s->saved_tgids = kmalloc_array(val, sizeof(*s->saved_tgids),
- GFP_KERNEL);
- if (!s->saved_tgids) {
- kfree(s->map_cmdline_to_pid);
- kfree(s->saved_cmdlines);
- return -ENOMEM;
- }
-
s->cmdline_idx = 0;
s->cmdline_num = val;
memset(&s->map_pid_to_cmdline, NO_CMDLINE_MAP,
sizeof(s->map_pid_to_cmdline));
memset(s->map_cmdline_to_pid, NO_CMDLINE_MAP,
val * sizeof(*s->map_cmdline_to_pid));
- memset(s->saved_tgids, 0,
- val * sizeof(*s->saved_tgids));
return 0;
}
@@ -1607,7 +1597,7 @@ static int trace_save_cmdline(struct task_struct *tsk)
}
set_cmdline(idx, tsk->comm);
- savedcmd->saved_tgids[idx] = tsk->tgid;
+ saved_tgids[idx] = tsk->tgid;
arch_spin_unlock(&trace_cmdline_lock);
return 1;
@@ -1659,7 +1649,7 @@ int trace_find_tgid(int pid)
arch_spin_lock(&trace_cmdline_lock);
map = savedcmd->map_pid_to_cmdline[pid];
if (map != NO_CMDLINE_MAP)
- tgid = savedcmd->saved_tgids[map];
+ tgid = saved_tgids[map];
else
tgid = -1;
@@ -3991,7 +3981,6 @@ static void free_saved_cmdlines_buffer(struct saved_cmdlines_buffer *s)
{
kfree(s->saved_cmdlines);
kfree(s->map_cmdline_to_pid);
- kfree(s->saved_tgids);
kfree(s);
}
@@ -4233,13 +4222,13 @@ tracing_saved_tgids_read(struct file *file, char __user *ubuf,
int pid;
int i;
- file_buf = kmalloc(savedcmd->cmdline_num*(16+1+16), GFP_KERNEL);
+ file_buf = kmalloc(SAVED_CMDLINES_DEFAULT*(16+1+16), GFP_KERNEL);
if (!file_buf)
return -ENOMEM;
buf = file_buf;
- for (i = 0; i < savedcmd->cmdline_num; i++) {
+ for (i = 0; i < SAVED_CMDLINES_DEFAULT; i++) {
int tgid;
int r;