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 | 196 | struct pid *pid; |
| 197 | 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 | 204 | pid = find_get_pid(cws->pid); |
| 200 | 205 | if (pid) { |
| 201 | 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 | 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 | 216 | return 0; |
| 217 | 217 | } |
| 218 | 218 | |
| 219 | 219 | static int workqueue_stat_headers(struct seq_file *s) |
| 220 | 220 | { |
| 221 | 221 | seq_printf(s, "# CPU INSERTED EXECUTED NAME\n"); |
| 222 | − seq_printf(s, "# | | | |\n\n"); | |
| 222 | + seq_printf(s, "# | | | |\n"); | |
| 223 | 223 | return 0; |
| 224 | 224 | } |
| 225 | 225 | |