Messages in this thread | | | Date | Fri, 19 Jun 2015 13:42:02 -0700 (PDT) | From | Vikas Shivappa <> | Subject | Re: [PATCH 09/10] x86/intel_rdt: Hot cpu support for Cache Allocation |
| |
On Tue, 16 Jun 2015, Thomas Gleixner wrote:
> 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?
Will fix.
Doing case CPU_ONLINE: intel_rdt_cpu_start(cpu); instead of CPU_UP_PREPARE: intel_rdt_cpu_start(cpu);
should work ?
CPU_ONLINE is just enough for me which doesnot have interrupts disabled and i can then sync using the lock.
Thanks, Vikas
> > Thanks, > > tglx > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/
| |