All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Ingo Molnar <mingo@elte.hu>
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, 09 Apr 2005 17:11:21 +1000	[thread overview]
Message-ID: <42578019.7050501@yahoo.com.au> (raw)
In-Reply-To: <20050409065507.GA4866@elte.hu>

Ingo Molnar wrote:
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
> 
> 

>>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.
> 

Yeah true. I didn't come up with code for you to look at at
that point anyway so you were obviously just speculating!

> 
>>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.
> 

Yeah true, although that is just a single cacheline (which will be
hot for any context switch heavy workload).

On the other hand, I tried put oncpu near other fields that are
accessed during context switch, so maybe its not an issue.

> 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.
> 

Sounds good.

-- 
SUSE Labs, Novell Inc.

  reply	other threads:[~2005-04-09  7:11 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
2005-04-09  7:11       ` Nick Piggin [this message]
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=42578019.7050501@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=akpm@osdl.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --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.