On 23/04/15 16:04, Jan Beulich wrote:
>
>> --- a/xen/include/xen/grant_table.h
>> +++ b/xen/include/xen/grant_table.h
>> @@ -82,7 +82,12 @@ struct grant_table {
>>      struct grant_mapping **maptrack;
>>      unsigned int          maptrack_head;
>>      unsigned int          maptrack_limit;
>> -    /* Lock protecting updates to active and shared grant tables. */
>> +    /* Lock protecting the maptrack page list, head, and limit */
>> +    spinlock_t            maptrack_lock;
>> +    /* 
>> +     * Lock protecting updates to grant table state (version, active
>> +     * entry list, etc.)
>> +     */
>>      spinlock_t            lock;
> 
> If the patch still was to be applied, these two locks should be put
> on separate cache lines, to avoid unnecessary bouncing.

I was shuffling the fields around to make this happen and I ended up
shrinking the structure to fit it in a single cache line instead.

Shall I add some explicit padding to get the alignment you want?  Note
that with the per-CPU maptrack free lists the maptrack lock isn't
heavily contended.

David

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to