From: Ingo Molnar <mingo@elte.hu>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: "Luck, Tony" <tony.luck@intel.com>,
linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>,
linux-arch@vger.kernel.org
Subject: Re: [patch] sched: unlocked context-switches
Date: Sat, 9 Apr 2005 08:55:07 +0200 [thread overview]
Message-ID: <20050409065507.GA4866@elte.hu> (raw)
In-Reply-To: <42577602.8090507@yahoo.com.au>
* Nick Piggin <nickpiggin@yahoo.com.au> wrote:
> Well that does look like a pretty good cleanup. It certainly is the
> final step in freeing complex architecture switching code from
> entanglement with scheduler internal locking, and unifies the locking
> scheme.
>
> I did propose doing unconditionally unlocked switches a while back
> when my patch first popped up - you were against it then, but I guess
> you've had second thoughts?
the reordering of switch_to() and the switch_mm()-related logic was that
made it really worthwile and clean. I.e. we pick a task atomically, we
switch stacks, and then we switch the MM. Note that this setup still
leaves the possibility open to move the stack-switching back under the
irq-disabled section in a natural way.
> It does add an extra couple of stores to on_cpu, and a wmb() for
> architectures that didn't previously need the unlocked switches. And
> ia64 needs the extra interrupt disable / enable. Probably worth it?
it also removes extra stores to rq->prev_mm and other stores. I havent
measured any degradation on x86.
If the irq disable/enable becomes widespread i'll do another patch to
push the irq-enabling into switch_to() so the arch can do the
stack-switch first and then enable interrupts and do the rest - but i
didnt want to complicate things unnecessarily for now.
> Minor style request: I like that you're accessing ->on_cpu through
> functions so the !SMP case doesn't clutter the code with ifdefs... but
> can you do set_task_on_cpu(p) and clear_task_on_cpu(p) ?
yeah, i thought about these two variants and went for set_task_on_cpu()
so that it's less encapsulated (it's really just a conditional
assignment) and that it parallels set_task_cpu() use. But no strong
feelings either way. Anyway, lets try what we have now, i'll do the rest
in deltas.
Ingo
next prev parent reply other threads:[~2005-04-09 6:55 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-08 18:38 [patch] sched: unlocked context-switches Luck, Tony
2005-04-08 18:38 ` Luck, Tony
2005-04-09 4:38 ` Ingo Molnar
2005-04-09 6:28 ` Nick Piggin
2005-04-09 6:55 ` Ingo Molnar [this message]
2005-04-09 7:11 ` Nick Piggin
2005-04-09 9:22 ` Benjamin Herrenschmidt
2005-04-09 22:46 ` David S. Miller
2005-04-10 7:23 ` Richard Henderson
[not found] <3R6Ir-89Y-23@gated-at.bofh.it>
2005-04-09 6:32 ` David Mosberger-Tang
2005-04-09 7:07 ` Ingo Molnar
2005-04-09 7:15 ` David Mosberger
2005-04-09 22:58 ` David S. Miller
2005-04-10 6:43 ` Ingo Molnar
2005-04-12 1:06 ` David Mosberger
2005-04-12 2:12 ` Nick Piggin
2005-04-12 17:14 ` David Mosberger
2005-04-13 3:26 ` Nick Piggin
2005-04-12 6:42 ` Ingo Molnar
2005-04-12 17:15 ` David Mosberger
-- strict thread matches above, loose matches on Subject: below --
2005-04-08 12:16 Ingo Molnar
2005-04-29 9:09 ` Andrew Morton
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=20050409065507.GA4866@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=tony.luck@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 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.