All of lore.kernel.org
 help / color / mirror / Atom feed
From: konrad.wilk@oracle.com (Konrad Rzeszutek Wilk)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] IPI performance benchmark
Date: Wed, 13 Dec 2017 10:54:56 -0500	[thread overview]
Message-ID: <20171213155456.GL10097@char.us.oracle.com> (raw)
In-Reply-To: <20171213104747.m4b5pbnlcroodfe7@yury-thinkpad>

On Wed, Dec 13, 2017 at 01:47:47PM +0300, Yury Norov wrote:
> On Mon, Dec 11, 2017 at 10:33:32AM -0500, Konrad Rzeszutek Wilk wrote:
> > On Mon, Dec 11, 2017 at 05:16:00PM +0300, Yury Norov wrote:
> > > This benchmark sends many IPIs in different modes and measures
> > > time for IPI delivery (first column), and total time, ie including
> > > time to acknowledge the receive by sender (second column).
> > > 
> > > The scenarios are:
> > > Dry-run:	do everything except actually sending IPI. Useful
> > > 		to estimate system overhead.
> > > Self-IPI:	Send IPI to self CPU.
> > > Normal IPI:	Send IPI to some other CPU.
> > > Broadcast IPI:	Send broadcast IPI to all online CPUs.
> > > 
> > > For virtualized guests, sending and reveiving IPIs causes guest exit.
> > > I used this test to measure performance impact on KVM subsystem of
> > > Christoffer Dall's series "Optimize KVM/ARM for VHE systems".
> > > 
> > > https://www.spinics.net/lists/kvm/msg156755.html
> > > 
> > > Test machine is ThunderX2, 112 online CPUs. Below the results normalized
> > > to host dry-run time. Smaller - better.
> > 
> > Would it make sense to also add spinlock contention tests? Meaning make
> > this framework a bit more generic so you could do IPI and you could
> > also do spinlock contention?
> > 
> > Like:
> > http://xenbits.xen.org/gitweb/?p=xentesttools/bootstrap.git;a=blob;f=root_image/drivers/spinlock_hog/spinlock_hog.c;h=040a154808452576b1aa5720a6282981319a5360;hb=HEAD
> 
> There's kernel/locking/locktorture.c for spinlock testing. Maybe it
> worth to add new testcase there? If you find my 'framework' more
> suitable for you, I'm also OK with it. Is my understanding correct
> that you want something like broadcast IPI case, but with different
> payload?

Yes, exactly!

But as I said, you have probably other things on your mind so this
is more of - 'it would be cool if you could do it, but if you don't
get to it - I understand' type.

WARNING: multiple messages have this Message-ID (diff)
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Yury Norov <ynorov@caviumnetworks.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Ashish Kalra <Ashish.Kalra@cavium.com>,
	Christoffer Dall <christoffer.dall@linaro.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Linu Cherian <Linu.Cherian@cavium.com>,
	Sunil Goutham <Sunil.Goutham@cavium.com>
Subject: Re: [PATCH] IPI performance benchmark
Date: Wed, 13 Dec 2017 10:54:56 -0500	[thread overview]
Message-ID: <20171213155456.GL10097@char.us.oracle.com> (raw)
In-Reply-To: <20171213104747.m4b5pbnlcroodfe7@yury-thinkpad>

On Wed, Dec 13, 2017 at 01:47:47PM +0300, Yury Norov wrote:
> On Mon, Dec 11, 2017 at 10:33:32AM -0500, Konrad Rzeszutek Wilk wrote:
> > On Mon, Dec 11, 2017 at 05:16:00PM +0300, Yury Norov wrote:
> > > This benchmark sends many IPIs in different modes and measures
> > > time for IPI delivery (first column), and total time, ie including
> > > time to acknowledge the receive by sender (second column).
> > > 
> > > The scenarios are:
> > > Dry-run:	do everything except actually sending IPI. Useful
> > > 		to estimate system overhead.
> > > Self-IPI:	Send IPI to self CPU.
> > > Normal IPI:	Send IPI to some other CPU.
> > > Broadcast IPI:	Send broadcast IPI to all online CPUs.
> > > 
> > > For virtualized guests, sending and reveiving IPIs causes guest exit.
> > > I used this test to measure performance impact on KVM subsystem of
> > > Christoffer Dall's series "Optimize KVM/ARM for VHE systems".
> > > 
> > > https://www.spinics.net/lists/kvm/msg156755.html
> > > 
> > > Test machine is ThunderX2, 112 online CPUs. Below the results normalized
> > > to host dry-run time. Smaller - better.
> > 
> > Would it make sense to also add spinlock contention tests? Meaning make
> > this framework a bit more generic so you could do IPI and you could
> > also do spinlock contention?
> > 
> > Like:
> > http://xenbits.xen.org/gitweb/?p=xentesttools/bootstrap.git;a=blob;f=root_image/drivers/spinlock_hog/spinlock_hog.c;h=040a154808452576b1aa5720a6282981319a5360;hb=HEAD
> 
> There's kernel/locking/locktorture.c for spinlock testing. Maybe it
> worth to add new testcase there? If you find my 'framework' more
> suitable for you, I'm also OK with it. Is my understanding correct
> that you want something like broadcast IPI case, but with different
> payload?

Yes, exactly!

But as I said, you have probably other things on your mind so this
is more of - 'it would be cool if you could do it, but if you don't
get to it - I understand' type.

  reply	other threads:[~2017-12-13 15:54 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-11 14:16 [PATCH] IPI performance benchmark Yury Norov
2017-12-11 14:16 ` Yury Norov
2017-12-11 14:35 ` Christian Borntraeger
2017-12-11 14:35   ` Christian Borntraeger
2017-12-11 14:55   ` Yury Norov
2017-12-11 14:55     ` Yury Norov
2017-12-11 16:30     ` Christian Borntraeger
2017-12-11 16:30       ` Christian Borntraeger
2017-12-13 11:23       ` Yury Norov
2017-12-13 11:23         ` Yury Norov
2017-12-13 11:31         ` Christian Borntraeger
2017-12-13 11:31           ` Christian Borntraeger
2017-12-11 15:33 ` Konrad Rzeszutek Wilk
2017-12-11 15:33   ` Konrad Rzeszutek Wilk
2017-12-13 10:47   ` Yury Norov
2017-12-13 10:47     ` Yury Norov
2017-12-13 15:54     ` Konrad Rzeszutek Wilk [this message]
2017-12-13 15:54       ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171213155456.GL10097@char.us.oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.