On 01/06/2018 06:41 AM, Konrad Rzeszutek Wilk wrote:
> On Fri, Jan 05, 2018 at 06:12:19PM -0800, Tim Chen wrote:
>> From: Tim Chen <tim.c.c...@linux.intel.com>
>> From: Andrea Arcangeli <aarca...@redhat.com>
>>
>
>>  
>>  .macro DISABLE_IBRS
>> -    ALTERNATIVE "jmp .Lskip_\@", "", X86_FEATURE_SPEC_CTRL
>> +    testl   $1, dynamic_ibrs
> 
> On every system call we end up hammering on this 'dynamic_ibrs'
> variable. And it looks like it can be flipped via the IPI mechanism.

On system call, we read dynamic_ibrs value (not change it) and
flip the IBRS msr only if it dynamic_ibrs is true.

We only do global change to all the IBRS msrs on all cpus during
the admin request to change its value, serialized by
spec_ctrl_mutex.  Before we do that, we set dynamic_ibrs to 0,
so each cpu no longer do any change to IBRS.  Then the IPI happens
to update the IBRS MSR values.

> 
> Would it make sense for this to be per-cpu?
> 

Reply via email to