From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "J. K. Cliburn" <jacliburn@bellsouth.net>,
Zan Lynx <zlynx@acm.org>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: MM kernels 2.6.24-rc*-mm*, 2.6.24-mm1: gnome-terminal stuck in tty_poll
Date: Thu, 07 Feb 2008 21:24:47 +0100 [thread overview]
Message-ID: <1202415887.6274.40.camel@lappy> (raw)
In-Reply-To: <1202413744.6274.26.camel@lappy>
On Thu, 2008-02-07 at 20:49 +0100, Peter Zijlstra wrote:
> On Wed, 2008-02-06 at 18:23 -0800, Andrew Morton wrote:
> > On Wed, 06 Feb 2008 20:10:50 -0600 "J. K. Cliburn" <jacliburn@bellsouth.net> wrote:
> >
> > > Zan Lynx wrote:
> > >
> > > > gnome-terminal gets stuck.
> > >
> > > I began seeing this very thing around 2.6.24 time. (Fedora 8, vanilla
> > > kernel.) I could usually cause the gnome terminal to hang if I rapidly
> > > resized the window while executing make check-headers.
Weird, .24 proper doesn't have that patch. What exact fedora kernel was
that (so I can look at it).
> > > Over a couple of days I bisected it down to this commit:
> > >
> > > Commit: 37bb6cb4097e29ffee970065b74499cbf10603a3
> > > Parent: d3d74453c34f8fd87674a8cf5b8a327c68f22e99
> > > Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > > AuthorDate: Fri Jan 25 21:08:32 2008 +0100
> > > Committer: Ingo Molnar <mingo@elte.hu>
> > > CommitDate: Fri Jan 25 21:08:32 2008 +0100
> > >
> > > hrtimer: unlock hrtimer_wakeup
> > >
> > > hrtimer_wakeup creates a
> > >
> > > base->lock
> > > rq->lock
> > >
> > > lock dependancy. Avoid this by switching to HRTIMER_CB_IRQSAFE_NO_SOFTIRQ
> > > which doesn't hold base->lock.
> > >
> > > This fully untangles hrtimer locks from the scheduler locks, and allows
> > > hrtimer usage in the scheduler proper.
> > >
> > > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > > Signed-off-by: Ingo Molnar <mingo@elte.hu>
> > > ---
> > > kernel/hrtimer.c | 4 +++-
> > > 1 files changed, 3 insertions(+), 1 deletions(-)
Which is even weirder, because the provided trace indicates
schedule_timeout()
Call Trace:
[schedule_timeout+149/208] schedule_timeout+0x95/0xd0
[<ffffffff8057dde5>] schedule_timeout+0x95/0xd0
[tty_poll+145/160] tty_poll+0x91/0xa0
[<ffffffff80430f11>] tty_poll+0x91/0xa0
[do_sys_poll+617/880] do_sys_poll+0x269/0x370
[<ffffffff802bbe69>] do_sys_poll+0x269/0x370
[__pollwait+0/304] __pollwait+0x0/0x130
[<ffffffff802bcb30>] __pollwait+0x0/0x130
[ weird trace format this ]
which uses the other timer API, and should not be affected by
hrtimer_wakeup().
/me puzzled...
next prev parent reply other threads:[~2008-02-07 20:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-06 19:38 MM kernels 2.6.24-rc*-mm*, 2.6.24-mm1: gnome-terminal stuck in tty_poll Zan Lynx
2008-02-06 19:44 ` Alan Cox
2008-02-06 20:16 ` Zan Lynx
2008-02-07 2:10 ` J. K. Cliburn
2008-02-07 2:23 ` Andrew Morton
2008-02-07 19:49 ` Peter Zijlstra
2008-02-07 20:24 ` Peter Zijlstra [this message]
2008-02-08 1:26 ` Jay Cliburn
2008-02-08 9:28 ` Peter Zijlstra
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=1202415887.6274.40.camel@lappy \
--to=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=jacliburn@bellsouth.net \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=zlynx@acm.org \
/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.