Messages in this thread | | | Date | Wed, 20 May 2009 14:39:29 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 01/22] x86: add methods for writing of an MSR on several CPUs |
| |
Borislav Petkov wrote: > > We currently need them for enabling the NB error reporting bank over > MCG_CTL on each core on the node. The question is whether we really need > the concurrency when accessing an MSR on several cores. With MCG_CTL, > BKDG says "It is expected that this register is programmed to the same > value in all nodes," but nothing concerning concurrency. > > But you're right, if this interface is supposed to be generic enough, > it is probably wise to access an MSR concurrently. I could imagine > an obscure case where this is required. However, is sending IPIs > (smp_call_function_many) guaranteeing the needed concurrency? Or, should > it be more like how the mtrr code jumps through hoops (set_mtrr()) > in order to ensure that _ALL_ registers have been written _before_ > continuing? >
smp_call_function_many() does allow concurrent execution. Looping over a list with smp_call_function_one() -- which you currently have -- is serializing, at which point we might just push the loop into the caller rather than worrying about a new interface.
-hpa
| |