Empty lines separate cpus stat. After previous fix(trace_stat: keep original order) applied, the empty lines are displayed at incorrect position.
Unified · Split
| @@ -196,6 +196,11 @@ static int workqueue_stat_show(struct seq_file *s, void *p) · 195 unmodified lines | |||
| 196 | struct pid *pid; | 196 | struct pid *pid; |
| 197 | struct task_struct *tsk; | 197 | struct task_struct *tsk; |
| 198 | 198 | ||
| 199 | spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); | ||
| 200 | if (&cws->list == workqueue_cpu_stat(cpu)->list.next) | ||
| 201 | seq_printf(s, "\n"); | ||
| 202 | spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); | ||
| 203 | |||
| 199 | pid = find_get_pid(cws->pid); | 204 | pid = find_get_pid(cws->pid); |
| 200 | if (pid) { | 205 | if (pid) { |
| 201 | tsk = get_pid_task(pid, PIDTYPE_PID); | 206 | tsk = get_pid_task(pid, PIDTYPE_PID); |
| @@ -208,18 +213,13 @@ static int workqueue_stat_show(struct seq_file *s, void *p) · 6 unmodified lines | |||
| 208 | put_pid(pid); | 213 | put_pid(pid); |
| 209 | } | 214 | } |
| 210 | 215 | ||
| 211 | spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); | ||
| 212 | if (&cws->list == workqueue_cpu_stat(cpu)->list.next) | ||
| 213 | seq_printf(s, "\n"); | ||
| 214 | spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); | ||
| 215 | |||
| 216 | return 0; | 216 | return 0; |
| 217 | } | 217 | } |
| 218 | 218 | ||
| 219 | static int workqueue_stat_headers(struct seq_file *s) | 219 | static int workqueue_stat_headers(struct seq_file *s) |
| 220 | { | 220 | { |
| 221 | seq_printf(s, "# CPU INSERTED EXECUTED NAME\n"); | 221 | seq_printf(s, "# CPU INSERTED EXECUTED NAME\n"); |
| 222 | seq_printf(s, "# | | | |\n\n"); | 222 | seq_printf(s, "# | | | |\n"); |
| 223 | return 0; | 223 | return 0; |
| 224 | } | 224 | } |
| 225 | 225 | ||