From: Ingo Oeser <ioe-lkml@axxeo.de>
To: Chris Friesen <cfriesen@nortel.com>
Cc: "Chad N. Tindel" <chad@tindel.net>,
Paulo Marques <pmarques@grupopie.com>,
Mike Galbraith <EFAULT@gmx.de>,
akpm@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: Xterm Hangs - Possible scheduler defect?
Date: Fri, 25 Feb 2005 16:39:50 +0100 [thread overview]
Message-ID: <200502251639.50238.ioe-lkml@axxeo.de> (raw)
In-Reply-To: <421F4042.3020302@nortel.com>
Chris Friesen wrote:
> Ingo Oeser wrote:
> > Stupid applications can starve other applications for a while, but not
> > forever, because the kernel is still running and deciding.
>
> Not so.
>
>
>
> task 1: sched_rr, priority 1, takes mutex
> task 2: sched_rr, priority 2, cpu hog, infinite loop
> task 3: sched_rr, priority 99, tries to get mutex
>
> And now tasks 1 and 3 are starved forever. Arguably bad application
> design, but it demonstrates a case where applications can starve other
> applications.
You are right.
In "If a SCHED_RR process has been running for a time period equal to or
longer than the time quantum, it will be put at the end of the list for
its priority" I missed the "for its priority" part.
You would need to change the priority of task 1 until it releases the
mutex. Ideally the owner gets the maximum priority of
his and all the waiters on it, until it releases his mutex, where he regains
its old priority after release of mutex. But this priority elevation happens
only, if he is runnable. If not, he gets his old priority back, until he is
runnable.
But then again you just need to grab a mutex shared with a high priority
task and consume CPU.
Since this behavior is not defined in POSIX AFAIK, you just have
to write your applications properly or use SCHED_OTHER for CPU hogging.
Regards
Ingo Oeser
next prev parent reply other threads:[~2005-02-25 15:40 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20050224075756.GA18639@calma.pair.com>
[not found] ` <30111.1109237503@www1.gmx.net>
2005-02-24 17:53 ` Chad N. Tindel
2005-02-24 18:19 ` Chris Friesen
2005-02-24 18:38 ` Chad N. Tindel
2005-02-24 19:04 ` Paulo Marques
2005-02-24 19:22 ` Chad N. Tindel
2005-02-24 19:46 ` Chris Friesen
2005-02-24 20:08 ` Chad N. Tindel
2005-02-24 20:29 ` Chris Friesen
2005-02-25 0:51 ` Ingo Oeser
2005-02-25 15:12 ` Chris Friesen
2005-02-25 15:39 ` Ingo Oeser [this message]
2005-02-25 15:53 ` Paulo Marques
2005-02-25 16:24 ` Lee Revell
2005-02-25 17:07 ` Chris Friesen
2005-02-24 19:52 ` Barry K. Nathan
2005-02-25 20:25 ` Helge Hafting
2005-02-25 21:02 ` Chad N. Tindel
2005-02-25 23:24 ` Lee Revell
2005-02-26 11:58 ` Helge Hafting
2005-02-25 4:25 ` Mike Galbraith
2005-02-23 23:06 Chad N. Tindel
2005-02-24 2:36 ` Andrew Morton
2005-02-24 5:23 ` Chad N. Tindel
2005-02-24 6:50 ` Andrew Morton
2005-02-24 5:26 ` Chad N. Tindel
2005-02-24 13:25 ` Helge Hafting
2005-02-24 17:33 ` Chad N. Tindel
2005-02-24 22:25 ` Peter Chubb
2005-02-24 22:40 ` Chad N. Tindel
2005-02-24 23:00 ` Andrew Morton
2005-02-24 23:22 ` Chris Friesen
2005-02-24 23:32 ` Andrew Morton
2005-02-25 0:47 ` Kyle Moffett
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=200502251639.50238.ioe-lkml@axxeo.de \
--to=ioe-lkml@axxeo.de \
--cc=EFAULT@gmx.de \
--cc=akpm@osdl.org \
--cc=cfriesen@nortel.com \
--cc=chad@tindel.net \
--cc=linux-kernel@vger.kernel.org \
--cc=pmarques@grupopie.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®