On Tue, 16 Jun 2015, Vikas Shivappa wrote:
On Tue, 16 Jun 2015, Thomas Gleixner wrote:
On Fri, 12 Jun 2015, Vikas Shivappa wrote:
+static inline void intel_rdt_cpu_start(int cpu)
+{
+ struct intel_pqr_state *state = &per_cpu(pqr_state, cpu);
+
+ state->closid = 0;
+ mutex_lock(&rdt_group_mutex);
This is called from CPU_STARTING, which runs on the starting cpu with
interrupts disabled. Clearly never tested with any of the mandatory
debug configs enabled.
But this can race with cbm_update_all calling on_each_cpu_mask ? or in other
words the lock helps on_each_cpu_mask not race with hot cpu code updating the
rdt_cpumask since the on_each_cpu_mask is also called with the lock always.
Its tested on the 0 day build which should include the debug config. Will add
a tested tag.
And that tag gives you special permission to take a mutex in irq
disabled context on a cpu which cannot schedule, right?
--
Thanks,
tglx