[Xen-devel] [PATCH v6 10/11] x86, xen: support vcpu preempted check

Pan Xinhui xinhui at linux.vnet.ibm.com
Sat Oct 29 15:26:30 AEDT 2016



在 2016/10/29 03:43, Konrad Rzeszutek Wilk 写道:
> On Fri, Oct 28, 2016 at 04:11:26AM -0400, Pan Xinhui wrote:
>> From: Juergen Gross <jgross at suse.com>
>>
>> Support the vcpu_is_preempted() functionality under Xen. This will
>> enhance lock performance on overcommitted hosts (more runnable vcpus
>> than physical cpus in the system) as doing busy waits for preempted
>> vcpus will hurt system performance far worse than early yielding.
>>
>> A quick test (4 vcpus on 1 physical cpu doing a parallel build job
>> with "make -j 8") reduced system time by about 5% with this patch.
>>
>> Signed-off-by: Juergen Gross <jgross at suse.com>
>> Signed-off-by: Pan Xinhui <xinhui.pan at linux.vnet.ibm.com>
>> ---
>>  arch/x86/xen/spinlock.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
>> index 3d6e006..74756bb 100644
>> --- a/arch/x86/xen/spinlock.c
>> +++ b/arch/x86/xen/spinlock.c
>> @@ -114,7 +114,6 @@ void xen_uninit_lock_cpu(int cpu)
>>  	per_cpu(irq_name, cpu) = NULL;
>>  }
>>
>> -
>
> Spurious change.
well, just remove one unnecessary blank line while at it.

>>  /*
>>   * Our init of PV spinlocks is split in two init functions due to us
>>   * using paravirt patching and jump labels patching and having to do
>> @@ -137,6 +136,8 @@ void __init xen_init_spinlocks(void)
>>  	pv_lock_ops.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock);
>>  	pv_lock_ops.wait = xen_qlock_wait;
>>  	pv_lock_ops.kick = xen_qlock_kick;
>> +
>> +	pv_lock_ops.vcpu_is_preempted = xen_vcpu_stolen;
>>  }
>>
>>  /*
>> --
>> 2.4.11
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel at lists.xen.org
>> https://lists.xen.org/xen-devel
>



More information about the Linuxppc-dev mailing list