public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* possible to livelock in mprotect() syscall?
@ 2003-02-12 19:22 Chris Friesen
  0 siblings, 0 replies; only message in thread
From: Chris Friesen @ 2003-02-12 19:22 UTC (permalink / raw)
  To: linux-kernel


Is it possible for ksoftirqd to have hold of some resource that other 
processes may need to obtain in the mprotect() syscall?

The background for this is as follows:

I've done some work with modifying the linux scheduler to support 
additional scheduling classes with limits on cpu percentages available 
for each class under stress.

We're hitting a strange scenario under the following conditions:

sched class A is given 90% of the cpu and is based on strict static 
priority scheduling

process x is put in sched class A with and is event driven

process y is put in sched class A with a lower priority than x and is a 
cpu hog

We would expect to see a background of y running, interrupted by x when 
it becomes runnable.

We seem to be seeing a case where process x calls mprotect() and then 
blocks while process y runs for large amounts of time.  Eventually we 
see ksoftirqd run and immediately after that process x wakes up and runs 
for a while, but by this time its too late and some timers have expired.

Hence the question--is it possible for ksoftirqd to have hold of some 
resource that process x tries to obtain in the mprotect() syscall?

Thanks,

Chris



-- 
Chris Friesen                    | MailStop: 043/33/F10
Nortel Networks                  | work: (613) 765-0557
3500 Carling Avenue              | fax:  (613) 765-2986
Nepean, ON K2H 8E9 Canada        | email: cfriesen@nortelnetworks.com


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-02-12 19:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-12 19:22 possible to livelock in mprotect() syscall? Chris Friesen

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