lkml.org 
[lkml]   [2008]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: general config preemption Q: preempt-model and Big-Lock Preemption
Date
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.


\
 
 \ /
  Last update: 2008-01-07 07:57    [W:0.029 / U:0.572 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site