From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Ingo Molnar <mingo@elte.hu>
Cc: Christoph Hellwig <hch@infradead.org>,
Andrew Morton <akpm@osdl.org>,
Arjan van de Ven <arjanv@infradead.org>,
linux-kernel@vger.kernel.org
Subject: Re: [patch] Voluntary Kernel Preemption, 2.6.12-rc4-mm2
Date: Wed, 25 May 2005 01:59:11 +1000 [thread overview]
Message-ID: <42934F4F.2060305@yahoo.com.au> (raw)
In-Reply-To: <20050524153937.GA14792@elte.hu>
Ingo Molnar wrote:
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
>
>>>(then you must be disagreeing with CONFIG_PREEMPT too to a certain
>>>degree i guess?)
>>
>>CONFIG_PREEMPT is different in that it explicitly defines and delimits
>>preempt critical sections, and allows maximum possible preemption
>>(whether or not the critical sections themselves are too big is not
>>really a CONFIG_PREEMPT issue).
>
>
> from a theoretical POV, this categorization into 'preempt critical' vs.
> 'preempt-noncritical' sections is pretty arbitrary too.
>
Not really, is it? If so then wouldn't that be a bug.
I guess some code might hold a critical section open for longer than
it absolutely needs to, in order to gain efficiency, but basically
your're bound pretty well by critical section size.
> from a practical POV the amount of code that is non-preemptible is not
> controllable under CONFIG_PREEMPT. So the end-result is that
> CONFIG_PREEMPT is just as nondeterministic.
>
It is determined by the amount of code that is not preemptible, rather
than the maximum amount of time between sucessive calls to cond_resched.
IMO the former is cleaner.
> polling need_resched after reaching a zero preempt_count() is ugly
> (doing cond_resched() in might_sleep() is ugly too) - pretty much the
> only difference is overhead.
>
>
>>Jamming in cond_resched in as many places as possible seems to work
>>quite well pragmatically, [...]
>
>
> yes, and that's what matters. It's just a single #ifdef in kernel.h, and
> at least one major distribution would make use of it because it
> significantly improves soft-RT latencies at a minimal cost. We can
Yeah definitely. And in practice distos sometimes have to just go with
what works at the time. So it might be a fine solution for them indeed.
> remove it if it's not being used, but right now the only choice that
> distributions have is no preemption or full-blown CONFIG_PREEMPT. Ask
> the kernel maintainers at SuSE why they havent enabled CONFIG_PREEMPT in
> their kernels.
>
I guess it is a number of reasons. Probably the main one had
traditionally been the chance of bugs. I guess the next big one is
return on overhead (ie. the scheduling latency soon runs into the
problem of long critical sections), although thanks to you and
others, I understand that is becoming less and less of an issue over
time too.
If a new SUSE kernel branch was started from 2.6.12 with VP turned on
rather than PREEMPT then I would probably argue against it a little
bit ;)
--
SUSE Labs, Novell Inc.
next prev parent reply other threads:[~2005-05-24 16:00 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-24 12:15 [patch] remove set_tsk_need_resched() from init_idle() Ingo Molnar
2005-05-24 13:21 ` [patch] Voluntary Kernel Preemption, 2.6.12-rc4-mm2 Ingo Molnar
2005-05-24 14:56 ` Christoph Hellwig
2005-05-24 15:09 ` Ingo Molnar
2005-05-24 15:21 ` Nick Piggin
2005-05-24 15:33 ` Arjan van de Ven
2005-05-24 15:34 ` Nick Piggin
2005-05-24 15:39 ` Ingo Molnar
2005-05-24 15:59 ` Nick Piggin [this message]
2005-05-24 16:11 ` Ingo Molnar
2005-05-25 19:48 ` Christoph Hellwig
2005-05-24 14:06 ` [patch] remove set_tsk_need_resched() from init_idle() Ingo Molnar
2005-05-24 15:02 ` Nick Piggin
2005-05-24 15:05 ` Ingo Molnar
2005-05-24 15:24 ` Nick Piggin
2005-05-24 15:27 ` Ingo Molnar
2005-05-24 15:42 ` Ingo Molnar
2005-05-24 16:00 ` Nick Piggin
2005-05-25 12:24 ` Andrew Morton
2005-05-25 13:51 ` Ingo Molnar
2005-05-25 13:58 ` Ingo Molnar
2005-05-28 16:32 ` Russell King
2005-05-28 18:51 ` Ingo Molnar
2005-05-29 4:05 ` Nick Piggin
2005-05-29 6:01 ` 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=42934F4F.2060305@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=akpm@osdl.org \
--cc=arjanv@infradead.org \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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.