Loading kernel/trace/blktrace.c +18 −5 Original line number Diff line number Diff line Loading @@ -1027,7 +1027,9 @@ static int blk_log_action_seq(struct trace_seq *s, const struct blk_io_trace *t, static int blk_log_generic(struct trace_seq *s, const struct trace_entry *ent) { const char *cmd = trace_find_cmdline(ent->pid); char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); if (t_sec(ent)) return trace_seq_printf(s, "%llu + %u [%s]\n", Loading Loading @@ -1057,19 +1059,30 @@ static int blk_log_remap(struct trace_seq *s, const struct trace_entry *ent) static int blk_log_plug(struct trace_seq *s, const struct trace_entry *ent) { return trace_seq_printf(s, "[%s]\n", trace_find_cmdline(ent->pid)); char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); return trace_seq_printf(s, "[%s]\n", cmd); } static int blk_log_unplug(struct trace_seq *s, const struct trace_entry *ent) { return trace_seq_printf(s, "[%s] %llu\n", trace_find_cmdline(ent->pid), get_pdu_int(ent)); char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); return trace_seq_printf(s, "[%s] %llu\n", cmd, get_pdu_int(ent)); } static int blk_log_split(struct trace_seq *s, const struct trace_entry *ent) { char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); return trace_seq_printf(s, "%llu / %llu [%s]\n", t_sector(ent), get_pdu_int(ent), trace_find_cmdline(ent->pid)); get_pdu_int(ent), cmd); } /* Loading kernel/trace/ftrace.c +1 −1 Original line number Diff line number Diff line Loading @@ -537,7 +537,7 @@ static void ftrace_replace_code(int enable) */ if (rec->flags & FTRACE_FL_FREE || rec->flags & FTRACE_FL_FAILED || rec->flags & FTRACE_FL_CONVERTED) !(rec->flags & FTRACE_FL_CONVERTED)) continue; /* ignore updates to this record's mcount site */ Loading kernel/trace/trace.c +13 −9 Original line number Diff line number Diff line Loading @@ -770,30 +770,34 @@ static void trace_save_cmdline(struct task_struct *tsk) __raw_spin_unlock(&trace_cmdline_lock); } char *trace_find_cmdline(int pid) void trace_find_cmdline(int pid, char comm[]) { char *cmdline = "<...>"; unsigned map; if (!pid) return "<idle>"; if (!pid) { strcpy(comm, "<idle>"); return; } if (pid > PID_MAX_DEFAULT) goto out; if (pid > PID_MAX_DEFAULT) { strcpy(comm, "<...>"); return; } __raw_spin_lock(&trace_cmdline_lock); map = map_pid_to_cmdline[pid]; if (map >= SAVED_CMDLINES) goto out; cmdline = saved_cmdlines[map]; strcpy(comm, saved_cmdlines[map]); out: return cmdline; __raw_spin_unlock(&trace_cmdline_lock); } void tracing_record_cmdline(struct task_struct *tsk) { if (atomic_read(&trace_record_cmdline_disabled)) if (atomic_read(&trace_record_cmdline_disabled) || !tracing_is_on()) return; trace_save_cmdline(tsk); Loading kernel/trace/trace.h +1 −1 Original line number Diff line number Diff line Loading @@ -564,7 +564,7 @@ struct tracer_switch_ops { }; #endif /* CONFIG_CONTEXT_SWITCH_TRACER */ extern char *trace_find_cmdline(int pid); extern void trace_find_cmdline(int pid, char comm[]); #ifdef CONFIG_DYNAMIC_FTRACE extern unsigned long ftrace_update_tot_cnt; Loading kernel/trace/trace_functions_graph.c +6 −6 Original line number Diff line number Diff line Loading @@ -190,15 +190,15 @@ print_graph_cpu(struct trace_seq *s, int cpu) static enum print_line_t print_graph_proc(struct trace_seq *s, pid_t pid) { int i; int ret; int len; char comm[8]; int spaces = 0; char comm[TASK_COMM_LEN]; /* sign + log10(MAX_INT) + '\0' */ char pid_str[11]; int spaces = 0; int ret; int len; int i; strncpy(comm, trace_find_cmdline(pid), 7); trace_find_cmdline(pid, comm); comm[7] = '\0'; sprintf(pid_str, "%d", pid); Loading Loading
kernel/trace/blktrace.c +18 −5 Original line number Diff line number Diff line Loading @@ -1027,7 +1027,9 @@ static int blk_log_action_seq(struct trace_seq *s, const struct blk_io_trace *t, static int blk_log_generic(struct trace_seq *s, const struct trace_entry *ent) { const char *cmd = trace_find_cmdline(ent->pid); char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); if (t_sec(ent)) return trace_seq_printf(s, "%llu + %u [%s]\n", Loading Loading @@ -1057,19 +1059,30 @@ static int blk_log_remap(struct trace_seq *s, const struct trace_entry *ent) static int blk_log_plug(struct trace_seq *s, const struct trace_entry *ent) { return trace_seq_printf(s, "[%s]\n", trace_find_cmdline(ent->pid)); char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); return trace_seq_printf(s, "[%s]\n", cmd); } static int blk_log_unplug(struct trace_seq *s, const struct trace_entry *ent) { return trace_seq_printf(s, "[%s] %llu\n", trace_find_cmdline(ent->pid), get_pdu_int(ent)); char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); return trace_seq_printf(s, "[%s] %llu\n", cmd, get_pdu_int(ent)); } static int blk_log_split(struct trace_seq *s, const struct trace_entry *ent) { char cmd[TASK_COMM_LEN]; trace_find_cmdline(ent->pid, cmd); return trace_seq_printf(s, "%llu / %llu [%s]\n", t_sector(ent), get_pdu_int(ent), trace_find_cmdline(ent->pid)); get_pdu_int(ent), cmd); } /* Loading
kernel/trace/ftrace.c +1 −1 Original line number Diff line number Diff line Loading @@ -537,7 +537,7 @@ static void ftrace_replace_code(int enable) */ if (rec->flags & FTRACE_FL_FREE || rec->flags & FTRACE_FL_FAILED || rec->flags & FTRACE_FL_CONVERTED) !(rec->flags & FTRACE_FL_CONVERTED)) continue; /* ignore updates to this record's mcount site */ Loading
kernel/trace/trace.c +13 −9 Original line number Diff line number Diff line Loading @@ -770,30 +770,34 @@ static void trace_save_cmdline(struct task_struct *tsk) __raw_spin_unlock(&trace_cmdline_lock); } char *trace_find_cmdline(int pid) void trace_find_cmdline(int pid, char comm[]) { char *cmdline = "<...>"; unsigned map; if (!pid) return "<idle>"; if (!pid) { strcpy(comm, "<idle>"); return; } if (pid > PID_MAX_DEFAULT) goto out; if (pid > PID_MAX_DEFAULT) { strcpy(comm, "<...>"); return; } __raw_spin_lock(&trace_cmdline_lock); map = map_pid_to_cmdline[pid]; if (map >= SAVED_CMDLINES) goto out; cmdline = saved_cmdlines[map]; strcpy(comm, saved_cmdlines[map]); out: return cmdline; __raw_spin_unlock(&trace_cmdline_lock); } void tracing_record_cmdline(struct task_struct *tsk) { if (atomic_read(&trace_record_cmdline_disabled)) if (atomic_read(&trace_record_cmdline_disabled) || !tracing_is_on()) return; trace_save_cmdline(tsk); Loading
kernel/trace/trace.h +1 −1 Original line number Diff line number Diff line Loading @@ -564,7 +564,7 @@ struct tracer_switch_ops { }; #endif /* CONFIG_CONTEXT_SWITCH_TRACER */ extern char *trace_find_cmdline(int pid); extern void trace_find_cmdline(int pid, char comm[]); #ifdef CONFIG_DYNAMIC_FTRACE extern unsigned long ftrace_update_tot_cnt; Loading
kernel/trace/trace_functions_graph.c +6 −6 Original line number Diff line number Diff line Loading @@ -190,15 +190,15 @@ print_graph_cpu(struct trace_seq *s, int cpu) static enum print_line_t print_graph_proc(struct trace_seq *s, pid_t pid) { int i; int ret; int len; char comm[8]; int spaces = 0; char comm[TASK_COMM_LEN]; /* sign + log10(MAX_INT) + '\0' */ char pid_str[11]; int spaces = 0; int ret; int len; int i; strncpy(comm, trace_find_cmdline(pid), 7); trace_find_cmdline(pid, comm); comm[7] = '\0'; sprintf(pid_str, "%d", pid); Loading