Skip site navigation (1)Skip section navigation (2)
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>