Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 May 2009 12:48:08 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        pluknet <pluknet@gmail.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: lock up in 6.2 (procs massively stuck in Giant)
Message-ID:  <200905131248.08465.jhb@freebsd.org>
In-Reply-To: <a31046fc0905130841p6c762d95h40ec989bd0355c9d@mail.gmail.com>
References:  <a31046fc0904292336w17aca317hefd32dad5bc28007@mail.gmail.com> <200905131015.27431.jhb@freebsd.org> <a31046fc0905130841p6c762d95h40ec989bd0355c9d@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 13 May 2009 11:41:22 am pluknet wrote:
> 2009/5/13 John Baldwin <jhb@freebsd.org>:
> > On Wednesday 13 May 2009 2:40:33 am pluknet wrote:
> >> 2009/5/13 pluknet <pluknet@gmail.com>:
> >> > 2009/5/13 John Baldwin <jhb@freebsd.org>:
> >> >> On Tuesday 12 May 2009 4:59:19 pm pluknet wrote:
> >> >>> Hi.
> >> >>>
> >> >>> From just another box (not from the first two mentioned earlier)
> >> >>> with a similar locking issue. If it would make sense, since there =
are
> >> >>> possibly a bit different conditions.
> >> >>> clock proc here is on swi4, I hope it's a non-important difference.
> >> >>>
> >> >>> =A0 =A018 =A0 =A0 0 =A0 =A0 0 =A0 =A0 0 =A0LL =A0 =A0 *Giant =A0 =
=A00xd0a6b140 [swi4: clock=20
sio]
> >> >>> db> bt 18
> >> >>
> >> >> Ok, this is a known issue in 6.x. =A0It is fixed in 6.4.
> >> >>
> >>
> >> Looking at the face of kern_timeout.c I suspect that was fixed in=20
r181012.
> >
> > No, this particular issue is fixed by a change to sched_4bsd.c in r1799=
75.
> >
>=20
> Gah.. We constrained to use ule scheduler on 6.x (yes, I know that
> "it's known to be broken (c)"), since we have had a very bad interactivity
> on 4bsd on our workload. Ok, that's just another reason to move to 7.x.

Hmmm I would have thought ULE wouldn't have suffered from this bug.  The=20
problem on 4BSD was if softclock ever blocked on Giant and the thread that=
=20
held Giant was on a run queue and pinned to a specific CPU but that another=
=20
userland thread was running on that CPU already, the userland thread would=
=20
never yield the CPU so long as it kept busy since the round robin timeout=20
would never run.

=2D-=20
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905131248.08465.jhb>