Re: block completion races
Jens Axboe (axboe@suse.de)
Wed, 16 Jan 2002 08:09:48 +0100
On Tue, Jan 15 2002, Andre Hedrick wrote:
> 
> We have a more interesting problem!
> This does not show up in 2.5.1 which is patch base for 2.5.3-pre1.
> It does show up in 2.5.2-pre10 but I have not walked the patch through
> 2.5.2preX series.
> 
> We have a very bad queue race that is PIO specific but really the whole
> darn driver before the patch was applied.  ACB only tighten the driver's
> alignment to the NCITS standards.  One should note the direct access via
> the ioctl does not lock the driver.  Only coming down from BLOCK will this
> event occur.
> 
> Repeatable test "hdparm -d0 -t /dev/hdx"
> 
> If you apply the acb-io patch to 2.5.1 this does not happen.
> 
> In the introduction of BIO, there were no "q->queue_lock" applied to
> protecting the queue.
> 
>         /*
>          * Is meant to protect the queue in the future instead of
>          * io_request_lock
>          */
>         spinlock_t              queue_lock;
> 
> Well we pulled "io_request_lock" but did we forgot to insert or add
> q->queue_lock spinlocks?
> 
> It is going to be a LONG LONG NIGHT :-(
ide_lock == q->queue_lock
ide-probe.c:ide_init_queue():	blk_init_queue(q, do_ide_request, &ide_lock);
-- 
Jens Axboe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/