From: Nicholas Piggin <npiggin@gmail.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org, Michael Ellerman <mpe@ellerman.id.au>
Subject: Re: [RFC][PATCH 0/2] reworking cause_ipi and adding global doorbell support
Date: Tue, 14 Mar 2017 12:53:18 +1000 [thread overview]
Message-ID: <20170314125318.5f227517@roar.ozlabs.ibm.com> (raw)
In-Reply-To: <1489458878.2174.23.camel@kernel.crashing.org>
On Tue, 14 Mar 2017 13:34:38 +1100
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> On Tue, 2017-03-14 at 11:49 +1000, Nicholas Piggin wrote:
> > On Tue, 14 Mar 2017 10:31:08 +1100
> > > Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> >
> > > On Mon, 2017-03-13 at 03:13 +1000, Nicholas Piggin wrote:
> > > > Hi,
> > > >
> > > > Just after the previous two fixes, I would like to propose changing
> > > > the way we do doorbell vs interrupt controller IPIs, and add support
> > > > for global doorbells supported by POWER9 in HV mode.
> > > >
> > > > After this, the platform code knows about doorbells and interrupt
> > > > controller IPIs, rather than they know about each other.
> > >
> > > A few things come to mind:
> > >
> > > - We don't want to use doorbells under KVM. They are going to turn
> > > into traps and be emulated, slower than using H_IPI, at least on P9.
> > > Even for core only doorbells. I'm not sure how to convey that to the
> > > guest.
> >
> > msgsndp will be okay, won't it? Guest just chooses that based on
> > HVMODE (which pseries platform knows is core only).
>
> No. It will suck. Because KVM can run each guest thread on a different core,
> the HW won't work, so we have to disable it and trap the instructions & emulate
> them. We really don't want P9 guests to use it under KVM (it's fine under pHyp).
Ah, gotcha.
> > > - On PP9 DD1 we need a CI load instead of msgsync (a DARN instruction
> > > would do too if it works)
> >
> > Yes, Paul pointed this out too. I'll add an alt patch for it. Apparently
> > also msgsync needs lwsync afterwards for DD2.
>
> Odd. Ok.
>
> > > - Can we get rid of the atomic ops for manipulating the IPI mux ? What
> > > about a cache line per message and just set/clear ? If we clear in the
> > > doorbell handler before we call the respective targets, we shouldn't
> > > "lose" messages no ? As long as the actual handlers "loop" as necessary
> > > of course.
> >
> > Yes I think that would work. Good idea. A single cacheline with messages
> > being independently stored bytes within it might work better, so the
> > receiver CPU does not have to go through and load multiple cachelines
> > to check for messages. It could load up to 8 message types with one load.
>
> Ok. But we need to make sure we use multiple stores to not lose messages.
>
> Ie.
>
> - Load all
> - For each byte if set
> - clear byte
> - then call handler
Yes. I think that will be okay because we shouldn't get any load-hit-store
issues. I'll do some benchmarking anyway.
Thanks,
Nick
next prev parent reply other threads:[~2017-03-14 2:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-12 17:13 [RFC][PATCH 0/2] reworking cause_ipi and adding global doorbell support Nicholas Piggin
2017-03-12 17:13 ` [PATCH 1/2] powerpc/64s: change the doorbell IPI calling convention Nicholas Piggin
2017-03-12 17:13 ` [PATCH 2/2] powerpc/64s: use global doorbell on POWER9 in HV mode Nicholas Piggin
2017-03-13 23:31 ` [RFC][PATCH 0/2] reworking cause_ipi and adding global doorbell support Benjamin Herrenschmidt
2017-03-14 1:49 ` Nicholas Piggin
2017-03-14 2:34 ` Benjamin Herrenschmidt
2017-03-14 2:53 ` Nicholas Piggin [this message]
2017-03-14 3:57 ` Benjamin Herrenschmidt
2017-03-14 4:35 ` Nicholas Piggin
2017-03-14 4:50 ` Benjamin Herrenschmidt
2017-03-14 6:22 ` Nicholas Piggin
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=20170314125318.5f227517@roar.ozlabs.ibm.com \
--to=npiggin@gmail.com \
--cc=benh@kernel.crashing.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).