From: Cliff Wickman <cpw@sgi.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu
Subject: Re: [PATCHv4] SGI UV: TLB shootdown using broadcast assist unit
Date: Thu, 12 Jun 2008 09:28:52 -0500 [thread overview]
Message-ID: <20080612142852.GA28430@sgi.com> (raw)
In-Reply-To: <200806122318.45397.nickpiggin@yahoo.com.au>
Hi Nick,
On Thu, Jun 12, 2008 at 11:18:45PM +1000, Nick Piggin wrote:
> On Thursday 12 June 2008 22:56, Cliff Wickman wrote:
> > Hi Nick,
> >
> > On Thu, Jun 12, 2008 at 10:35:29PM +1000, Nick Piggin wrote:
> > > On Thursday 12 June 2008 22:23, Cliff Wickman wrote:
>
> > > For someone not too familiar with low level x86 (or UV) code, can
> > > you explain why you are hooking at this point? I mean, what it
> > > looks like is either a performance improvement, or for some reason
> > > UV does not support send_IPI_mask out to CPUs "not on the local node".
> >
> > Yes, a performance improvement. The UV machine has hardware for
> > broadcasting messages to a set of nodes (represented in a bit mask). The
> > messages will raise interrupts at each of the target nodes and provide
> > the message - all in one step.
> > (IPI is supported. In fact this patch falls back to the IPI method
> > if all the cpus on the remote nodes do not respond.)
>
> Thanks, that makes it perfectly clear to me now (the intent, not
> the details of the code :))
>
> So long as this raises a maskable interrupt on each target CPU, it
> doesn't break x86's lockless get_user_pages :)
>
>
> > > If the former, what sort of improvement to you expect / see?
> >
> > Good question. The hardware does not exist yet. But using IPI there
> > would be one set of packets exchanged to deliver the interrupts and
> > another set to pull over the flush address, just to start the operation.
> > I expect the improvement to be significant.
>
> Ah, so you can send a small message with the IPI, and that can be
> decoded and used by the target without invoking the cc protocol.
> Seems like pretty sweet functionality.
>
> I guess TLB flushing is an obvious candidate, but it could be
> quite useful for other operations as well. I wonder if it couldn't
> be used to create a slightly more advanced API (than send_IPI)
> which other platforms can just implement using cache coherency for
> the payload...
>
> For example, some classes of smp_call_function could use this too.
Jack Steiner's thought as well. But I haven't considered any yet. If
you care to nominate any other such uses for this hardware mechanism
I'd like to hear your ideas.
>
> But for now I don't see anything wrong with getting this patch
> upstream and looking to generalise it later.
-Cliff
--
Cliff Wickman
Silicon Graphics, Inc.
cpw@sgi.com
(651) 683-3824
next prev parent reply other threads:[~2008-06-12 14:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-12 12:23 [PATCHv4] SGI UV: TLB shootdown using broadcast assist unit Cliff Wickman
2008-06-12 12:35 ` Nick Piggin
2008-06-12 12:56 ` Cliff Wickman
2008-06-12 13:18 ` Nick Piggin
2008-06-12 14:28 ` Cliff Wickman [this message]
2008-06-12 13:11 ` Ingo Molnar
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=20080612142852.GA28430@sgi.com \
--to=cpw@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=nickpiggin@yahoo.com.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 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.