Lines Matching full:cpu

18 /* A cpu workqueue thread */
22 int cpu; member
28 * on a single CPU.
33 /* List of workqueue threads on one cpu */
43 #define workqueue_cpu_stat(cpu) (&per_cpu(all_workqueue_stat, cpu)) argument
56 int cpu = cpumask_first(&wq_thread->cpus_allowed); in probe_workqueue_insertion() local
60 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_insertion()
61 list_for_each_entry(node, &workqueue_cpu_stat(cpu)->list, list) { in probe_workqueue_insertion()
69 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_insertion()
78 int cpu = cpumask_first(&wq_thread->cpus_allowed); in probe_workqueue_execution() local
82 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_execution()
83 list_for_each_entry(node, &workqueue_cpu_stat(cpu)->list, list) { in probe_workqueue_execution()
91 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_execution()
94 /* Creation of a cpu workqueue thread */
96 struct task_struct *wq_thread, int cpu) in probe_workqueue_creation() argument
101 WARN_ON(cpu < 0); in probe_workqueue_creation()
111 cws->cpu = cpu; in probe_workqueue_creation()
114 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_creation()
115 list_add_tail(&cws->list, &workqueue_cpu_stat(cpu)->list); in probe_workqueue_creation()
116 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_creation()
119 /* Destruction of a cpu workqueue thread */
123 /* Workqueue only execute on one cpu */ in probe_workqueue_destruction()
124 int cpu = cpumask_first(&wq_thread->cpus_allowed); in probe_workqueue_destruction() local
128 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_destruction()
129 list_for_each_entry_safe(node, next, &workqueue_cpu_stat(cpu)->list, in probe_workqueue_destruction()
140 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in probe_workqueue_destruction()
144 static struct cpu_workqueue_stats *workqueue_stat_start_cpu(int cpu) in workqueue_stat_start_cpu() argument
150 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); in workqueue_stat_start_cpu()
152 if (!list_empty(&workqueue_cpu_stat(cpu)->list)) { in workqueue_stat_start_cpu()
153 ret = list_entry(workqueue_cpu_stat(cpu)->list.next, in workqueue_stat_start_cpu()
158 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in workqueue_stat_start_cpu()
165 int cpu; in workqueue_stat_start() local
168 for_each_possible_cpu(cpu) { in workqueue_stat_start()
169 ret = workqueue_stat_start_cpu(cpu); in workqueue_stat_start()
180 int cpu = prev_cws->cpu; in workqueue_stat_next() local
183 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); in workqueue_stat_next()
184 if (list_is_last(&prev_cws->list, &workqueue_cpu_stat(cpu)->list)) { in workqueue_stat_next()
185 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in workqueue_stat_next()
187 cpu = cpumask_next(cpu, cpu_possible_mask); in workqueue_stat_next()
188 if (cpu >= nr_cpu_ids) in workqueue_stat_next()
190 } while (!(ret = workqueue_stat_start_cpu(cpu))); in workqueue_stat_next()
197 spin_unlock_irqrestore(&workqueue_cpu_stat(cpu)->lock, flags); in workqueue_stat_next()
212 seq_printf(s, "%3d %6d %6u %s\n", cws->cpu, in workqueue_stat_show()
232 seq_printf(s, "# CPU INSERTED EXECUTED NAME\n"); in workqueue_stat_headers()
264 int ret, cpu; in trace_workqueue_early_init() local
266 for_each_possible_cpu(cpu) { in trace_workqueue_early_init()
267 spin_lock_init(&workqueue_cpu_stat(cpu)->lock); in trace_workqueue_early_init()
268 INIT_LIST_HEAD(&workqueue_cpu_stat(cpu)->list); in trace_workqueue_early_init()