Date: Fri, 3 Nov 2006 11:18:52 +0100 From: "Ulrich Spoerlein" <uspoerlein@gmail.com> To: "Christian S.J. Peron" <csjp@freebsd.org> Cc: stable@freebsd.org, Pawel Jakub Dawidek <pjd@freebsd.org>, kris@freebsd.org Subject: Re: RELENG_6: I/O deadlock under load Message-ID: <7ad7ddd90611030218sbe8d0ai509b5eda3fcdb273@mail.gmail.com> In-Reply-To: <4543AA79.4050903@freebsd.org> References: <7ad7ddd90610262337q25afcf0ej7610d0e1b4ff202d@mail.gmail.com> <20061028175240.GB1519@roadrunner.q.local> <4543AA79.4050903@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10/28/06, Christian S.J. Peron <csjp@freebsd.org> wrote: > > It almost looks as if a user frequently runs gmirror(8) to query the > status of their array. Under a high load situation, the worker is busy, > so at one un-lucky momment, gmirror(8) is run: > > (1) gmirror(8) waits for sc->sc_lock owned by the worker > (2) The worker then drops the lock > (3) gmirror(8) proceeds > (4) Worker wakes up and waits for sc->sc_lock > (5) Only gmirror never will because it's waiting on a resource > (presumably owned by the worker thread)? > > I am not certain this is correct, so I have included pjd in the CC loop, > hoping he can help shed some light on the subject :) This is just a followup to report that the problem seems unreproducable on an identical kernel if I leave out option PREEMPTION. Performance sucks that way, but at least it's stable now. Pawel seems to be rather busy with his GJOURNAL work and his ZFS port, is someone else able to reproduce the problem? Uli
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7ad7ddd90611030218sbe8d0ai509b5eda3fcdb273>