From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH] xen: Send spinlock IPI to all waiters Date: Fri, 15 Feb 2013 10:14:06 -0500 Message-ID: <20130215151406.GD12178@phenom.dumpdata.com> References: <1360925555-15078-1-git-send-email-stefan.bader@canonical.com> <1360926607.31407.10.camel@zakaz.uk.xensource.com> <511E296D02000078000BEA27@nat28.tlf.novell.com> <1360927883.31407.11.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1360927883.31407.11.camel@zakaz.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: Stefan Bader , Jan Beulich , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org On Fri, Feb 15, 2013 at 11:31:23AM +0000, Ian Campbell wrote: > On Fri, 2013-02-15 at 11:26 +0000, Jan Beulich wrote: > > >>> On 15.02.13 at 12:10, Ian Campbell wrote: > > > On Fri, 2013-02-15 at 10:52 +0000, Stefan Bader wrote: > > >> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c > > >> index 83e866d..f7a080e 100644 > > >> --- a/arch/x86/xen/spinlock.c > > >> +++ b/arch/x86/xen/spinlock.c > > >> @@ -328,7 +328,6 @@ static noinline void xen_spin_unlock_slow(struct > > > xen_spinlock *xl) > > >> if (per_cpu(lock_spinners, cpu) == xl) { > > >> ADD_STATS(released_slow_kicked, 1); > > >> xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR); > > >> - break; > > > > > > It would be more efficient to build a mask and use xen_send_IPI_mask(). > > > > In order for __xen_send_IPI_mask() to then take the list apart > > again and call xen_send_IPI_one()? There's no batching > > implemented currently... > > Oh, I simply assumed it must obviously do that! Perhaps if it was done via a multicall? We could batch then things up. But I recall you saying that for homogeneous calls it is silly to use multicalls. > > Ian. >