public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* general config preemption Q: preempt-model and Big-Lock Preemption
@ 2008-01-05  3:25 Linda Walsh
  2008-01-07  6:53 ` Nick Piggin
  0 siblings, 1 reply; 2+ messages in thread
From: Linda Walsh @ 2008-01-05  3:25 UTC (permalink / raw)
  To: LKML

A question that comes to mind every time I go through the settings
for "Preemption Model" and "Preempt The Big Kernel Lock".

Do each of the combinations "make sense", or are some "no-ops"?
For model, we have 1) no forced (server), 2) Voluntary (Desktop)
3) preemptible (low-latency Desktop), and for Big Lock Preemption (BLP),
we have "yes" or "no".

Questions:

1) What is the difference between "no forced" and "voluntary"?  Doesn't
  voluntary normally mean "not forced"?

2) If a process is not preemptible, then it seems this would be "doubly
  so" in the kernel when the big-lock is held.  So does the big-lock
  preemption question have any effect (when preempt-model="no forced").

3) If a process is "fully preemptible" but "BLP=false", is that
  much different than "voluntary preemption" & BLP=false?  I.e. --
  should 'preemptible kernel' also imply "BLP=true"...i.e.

_Should_ (would?) the following change be "somewhat" identical to
current config options:

  O1) "Preempt Model"="no-forced preemption" (would set
  preempt-big-kern-lock to FALSE and doesn't display that question).

  O2) "Voluntary Preemption" (presuming there are voluntary preemption
  points in the kernel in places where the big-K-lock is held), then
  configuration would still ask whether to  "Preempt The Big Kernel Lock".

  O3) "Preemptible model"="allow-kernel-preemption" (would set
  preempt-big-kern-lock to TRUE and doesn't display that question).



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: general config preemption Q: preempt-model and Big-Lock Preemption
  2008-01-05  3:25 general config preemption Q: preempt-model and Big-Lock Preemption Linda Walsh
@ 2008-01-07  6:53 ` Nick Piggin
  0 siblings, 0 replies; 2+ messages in thread
From: Nick Piggin @ 2008-01-07  6:53 UTC (permalink / raw)
  To: Linda Walsh; +Cc: LKML, Ingo Molnar

On Saturday 05 January 2008 14:25, Linda Walsh wrote:
> A question that comes to mind every time I go through the settings
> for "Preemption Model" and "Preempt The Big Kernel Lock".
>
> Do each of the combinations "make sense", or are some "no-ops"?
> For model, we have 1) no forced (server), 2) Voluntary (Desktop)
> 3) preemptible (low-latency Desktop), and for Big Lock Preemption (BLP),
> we have "yes" or "no".
>
> Questions:
>
> 1) What is the difference between "no forced" and "voluntary"?  Doesn't
>   voluntary normally mean "not forced"?

voluntary adds a few more cond_resched() points.


> 2) If a process is not preemptible, then it seems this would be "doubly
>   so" in the kernel when the big-lock is held.  So does the big-lock
>   preemption question have any effect (when preempt-model="no forced").

With BLP, AFAIK code may not assume preemption is disabled. Debug checks
should have caught any offenders by now.

When there is no kernel preemption, I guess BLP still allows contenders
to sleep and switch rather than spin, so it might improve throughput (or
harm it!).


> 3) If a process is "fully preemptible" but "BLP=false", is that
>   much different than "voluntary preemption" & BLP=false?  I.e. --
>   should 'preemptible kernel' also imply "BLP=true"...i.e.

Yeah, they're all slightly different I think, but it probably is too much
config options at this point in time. I think Ingo plans to make BLP the
default and remove the config option.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-01-07  6:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-05  3:25 general config preemption Q: preempt-model and Big-Lock Preemption Linda Walsh
2008-01-07  6:53 ` Nick Piggin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox