From: Rusty Russell <rusty@rustcorp.com.au>
To: Ingo Molnar <mingo@redhat.com>
Cc: akpm@osdl.org, linux-kernel@vger.kernel.org,
Nick Piggin <piggin@cyberone.com.au>,
dipankar@in.ibm.com, vatsa@in.ibm.com
Subject: Re: [PATCH 3/4] 2.6.2-rc2-mm2 CPU Hotplug: The Core
Date: Tue, 03 Feb 2004 11:34:27 +1100 [thread overview]
Message-ID: <20040203010224.459E32C252@lists.samba.org> (raw)
In-Reply-To: Your message of "Mon, 02 Feb 2004 07:45:32 CDT." <Pine.LNX.4.58.0402020741250.16748@devserv.devel.redhat.com>
In message <Pine.LNX.4.58.0402020741250.16748@devserv.devel.redhat.com> you wri
te:
>
> On Mon, 2 Feb 2004, Rusty Russell wrote:
>
> > Unfortunately the __migrate_task() check won't go away: someone may have
> > asked to move from CPU 0 to 1, and by the time migration thread on 0
> > gets to the request, 1 has gone down. We don't want all the callers to
> > hold the cpucontrol lock, because now the NUMA scheduler uses migration
> > as a common case 8(
>
> well, when a CPU goes down it could process the migration request queue as
> well. (this would be a pretty natural thing to do if CPU-down executes in
> the migration-thread context.)
Wrong migration thread. The migration thread on CPU 1 has been asked
to push into CPU 0, which is now going down.
Now I've slept on the "do it atomically" idea, I think it's a good
one. I've even worked out how to maintain the "last thread on CPU is
the idle thread", although I'd need to test in code.
> Another question is user-space semantics - if user-space relies on CPU
> affinity, is the kernel allowed to violate it or should the process be
> notified. Sending it a signal (SIGTERM or anything similar) if the
> affinity was non-generic might be a good thing to do.
We've been there: we used to send SIGPWR with a new si_info field to
say what CPU it was. But it turns out not to be useful, so we took it
out.
In practice, any app which wants to scale with # CPUs needs to know
when CPUs are coming up, as well as going down. Ditto memory, etc.
This means they need to listen for the hotplug event (DBUS anyone?),
or we introduce a SIGRECONF (default ignored). But AFAICT,
introducing a new signal isn't possible (at least on x86) without
breaking glibc.
Thanks!
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
next prev parent reply other threads:[~2004-02-03 1:04 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-31 14:16 Rusty Russell
2004-02-01 8:03 ` Andrew Morton
2004-02-01 10:19 ` Nick Piggin
2004-02-01 12:07 ` Rusty Russell
2004-02-02 9:12 ` Ingo Molnar
2004-02-02 10:55 ` Rusty Russell
2004-02-02 12:45 ` Ingo Molnar
2004-02-02 13:22 ` Srivatsa Vaddagiri
2004-02-02 15:40 ` Ingo Molnar
2004-02-03 0:45 ` Rusty Russell
2004-02-03 8:04 ` Ingo Molnar
2004-02-03 8:16 ` Rusty Russell
2004-02-03 8:31 ` Ingo Molnar
2004-02-03 7:39 ` New v. v. experimental HOTPLUG CPU megapatch Rusty Russell
2004-02-03 9:35 ` Ingo Molnar
2004-02-05 18:12 ` Pavel Machek
2004-02-03 0:34 ` Rusty Russell [this message]
2004-02-03 9:26 ` [PATCH 3/4] 2.6.2-rc2-mm2 CPU Hotplug: The Core Ingo Molnar
2004-02-04 0:19 ` Rusty Russell
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=20040203010224.459E32C252@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=akpm@osdl.org \
--cc=dipankar@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=piggin@cyberone.com.au \
--cc=vatsa@in.ibm.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
all inboxes | Powered by JetHome®