Lines Matching defs:cm

72 		struct cpumap *cm = per_cpu_ptr(m->maps, cpu);
74 cm->managed_map = &cm->alloc_map[matrix_size];
86 struct cpumap *cm = this_cpu_ptr(m->maps);
88 BUG_ON(cm->online);
90 if (!cm->initialized) {
91 cm->available = m->alloc_size;
92 cm->available -= cm->managed + m->systembits_inalloc;
93 cm->initialized = true;
95 m->global_available += cm->available;
96 cm->online = true;
107 struct cpumap *cm = this_cpu_ptr(m->maps);
110 m->global_available -= cm->available;
111 cm->online = false;
116 static unsigned int matrix_alloc_area(struct irq_matrix *m, struct cpumap *cm,
122 bitmap_or(m->scratch_map, cm->managed_map, m->system_map, end);
123 bitmap_or(m->scratch_map, m->scratch_map, cm->alloc_map, end);
128 bitmap_set(cm->managed_map, area, num);
130 bitmap_set(cm->alloc_map, area, num);
139 struct cpumap *cm;
144 cm = per_cpu_ptr(m->maps, cpu);
146 if (!cm->online || cm->available <= maxavl)
150 maxavl = cm->available;
160 struct cpumap *cm;
165 cm = per_cpu_ptr(m->maps, cpu);
167 if (!cm->online || cm->managed_allocated > allocated)
171 allocated = cm->managed_allocated;
190 struct cpumap *cm = this_cpu_ptr(m->maps);
197 BUG_ON(!test_and_clear_bit(bit, cm->alloc_map));
198 cm->allocated--;
221 struct cpumap *cm = per_cpu_ptr(m->maps, cpu);
224 bit = matrix_alloc_area(m, cm, 1, true);
227 cm->managed++;
228 if (cm->online) {
229 cm->available--;
232 trace_irq_matrix_reserve_managed(bit, cpu, m, cm);
262 struct cpumap *cm = per_cpu_ptr(m->maps, cpu);
265 if (WARN_ON_ONCE(!cm->managed))
269 bitmap_andnot(m->scratch_map, cm->managed_map, cm->alloc_map, end);
275 clear_bit(bit, cm->managed_map);
277 cm->managed--;
278 if (cm->online) {
279 cm->available++;
282 trace_irq_matrix_remove_managed(bit, cpu, m, cm);
296 struct cpumap *cm;
305 cm = per_cpu_ptr(m->maps, cpu);
308 bitmap_andnot(m->scratch_map, cm->managed_map, cm->alloc_map, end);
312 set_bit(bit, cm->alloc_map);
313 cm->allocated++;
314 cm->managed_allocated++;
317 trace_irq_matrix_alloc_managed(bit, cpu, m, cm);
330 struct cpumap *cm = this_cpu_ptr(m->maps);
334 if (WARN_ON_ONCE(test_and_set_bit(bit, cm->alloc_map)))
336 cm->allocated++;
338 cm->available--;
340 trace_irq_matrix_assign(bit, smp_processor_id(), m, cm);
387 struct cpumap *cm;
400 cm = per_cpu_ptr(m->maps, cpu);
401 bit = matrix_alloc_area(m, cm, 1, false);
404 cm->allocated++;
405 cm->available--;
411 trace_irq_matrix_alloc(bit, cpu, m, cm);
427 struct cpumap *cm = per_cpu_ptr(m->maps, cpu);
432 if (WARN_ON_ONCE(!test_and_clear_bit(bit, cm->alloc_map)))
435 cm->allocated--;
437 cm->managed_allocated--;
439 if (cm->online)
443 cm->available++;
444 if (cm->online)
447 trace_irq_matrix_free(bit, cpu, m, cm);
458 struct cpumap *cm = this_cpu_ptr(m->maps);
462 return m->global_available - cm->available;
482 struct cpumap *cm = this_cpu_ptr(m->maps);
484 return cm->allocated - cm->managed_allocated;
510 struct cpumap *cm = per_cpu_ptr(m->maps, cpu);
513 cpu, cm->available, cm->managed,
514 cm->managed_allocated, cm->allocated,
515 m->matrix_bits, cm->alloc_map);