[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161028194325.GE2879@char.us.oracle.com>
Date: Fri, 28 Oct 2016 15:43:25 -0400
From: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
To: Pan Xinhui <xinhui.pan@...ux.vnet.ibm.com>
Cc: linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
virtualization@...ts.linux-foundation.org,
linux-s390@...r.kernel.org, xen-devel-request@...ts.xenproject.org,
kvm@...r.kernel.org, xen-devel@...ts.xenproject.org,
x86@...nel.org, kernellwp@...il.com, jgross@...e.com,
David.Laight@...LAB.COM, rkrcmar@...hat.com, peterz@...radead.org,
benh@...nel.crashing.org, bsingharora@...il.com,
will.deacon@....com, borntraeger@...ibm.com, mingo@...hat.com,
paulus@...ba.org, mpe@...erman.id.au, pbonzini@...hat.com,
paulmck@...ux.vnet.ibm.com, boqun.feng@...il.com
Subject: Re: [Xen-devel] [PATCH v6 10/11] x86, xen: support vcpu preempted
check
On Fri, Oct 28, 2016 at 04:11:26AM -0400, Pan Xinhui wrote:
> From: Juergen Gross <jgross@...e.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@...e.com>
> Signed-off-by: Pan Xinhui <xinhui.pan@...ux.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.
> /*
> * 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@...ts.xen.org
> https://lists.xen.org/xen-devel
Powered by blists - more mailing lists