From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
Venki Pallipadi <venkatesh.pallipadi@intel.com>,
Jens Axboe <jens.axboe@oracle.com>, Ingo Molnar <mingo@elte.hu>,
npiggin@suse.de, linux-kernel <linux-kernel@vger.kernel.org>,
suresh.b.siddha@intel.com
Subject: Re: [PATCH] stack and rcu interaction bug in smp_call_function_mask()
Date: Mon, 11 Aug 2008 11:18:24 -0700 [thread overview]
Message-ID: <48A08270.7080303@goop.org> (raw)
In-Reply-To: <20080810213421.70f61034@infradead.org>
Arjan van de Ven wrote:
> On Sun, 10 Aug 2008 21:26:18 -0700
> Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>
>> Nick Piggin wrote:
>>
>>> Nice debugging work.
>>>
>>> I'd suggest something like the attached (untested) patch as the
>>> simple fix for now.
>>>
>>> I expect the benefits from the less synchronized,
>>> multiple-in-flight-data global queue will still outweigh the costs
>>> of dynamic allocations. But if worst comes to worst then we just go
>>> back to a globally synchronous one-at-a-time implementation, but
>>> that would be pretty sad!
>>>
>> What if we went the other way and strictly used queue-per-cpu? It
>> means multicast would require multiple enqueueing operations, which
>> is a bit heavy, but it does make dequeuing and lifetime management
>> very simple...
>>
>
> as long as send-to-all is still one apic operation.. otherwise it gets
> *really* expensive....
> (just think about waking all cpus up out of their C-states.. one by one
> getting the full exit latency sequentially)
>
Well, send-to-all can be special cased (is already at the apic IPI
level, but we could have a broadcast queue as well).
But I wonder how common an operation that is? Most calls to
smp_call_function_mask are sending to mm->cpu_vm_mask. For a small
number of cores, that could well be broadcast, but as the core count
goes up, the likelihood that all cpus have been involved with a given mm
will go down (very workload dependent, of course).
It could be that if we're sending to more than some proportion of the
cpus, it would be more efficient to just broadcast, and let the cpus
work out whether they need to do anything or not. But that's more or
less the scheme we have now...
J
next prev parent reply other threads:[~2008-08-11 18:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-08 19:37 [PATCH] stack and rcu interaction bug in smp_call_function_mask() Venki Pallipadi
2008-08-09 0:14 ` Andi Kleen
2008-08-09 2:17 ` Jeremy Fitzhardinge
2008-08-10 6:24 ` Nick Piggin
2008-08-11 3:49 ` Nick Piggin
2008-08-11 13:22 ` Ingo Molnar
2008-08-11 4:26 ` Jeremy Fitzhardinge
2008-08-11 4:34 ` Arjan van de Ven
2008-08-11 18:18 ` Jeremy Fitzhardinge [this message]
2008-08-11 4:49 ` Nick Piggin
2008-08-11 18:27 ` Jeremy Fitzhardinge
2008-08-21 20:50 ` Jeremy Fitzhardinge
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=48A08270.7080303@goop.org \
--to=jeremy@goop.org \
--cc=arjan@infradead.org \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=nickpiggin@yahoo.com.au \
--cc=npiggin@suse.de \
--cc=suresh.b.siddha@intel.com \
--cc=venkatesh.pallipadi@intel.com \
/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