Re: [patch, rfc]: block layer, queues

From: Jens Axboe (axboe@suse.de)
Date: Sun Apr 16 2000 - 10:08:12 EST


On Sun, Apr 16 2000, Andrea Arcangeli wrote:
> >Ok, time for another iteration of this patch. Changes since last time:
>
> I read it fast and I can see a few problems:
>
> o inserted smp race in wait_on_buffer

The set_task_state?

> o reads doesn't fallback in the write freelist in the
> get_request_wait case (do the fallback internally to get_request)

Okay, that was a braino.

> o optimize away the:
>
> + if (rw == READ)
> + list = &q->request_freelist[REQUEST_LIST_READ];
> + else
> + list = &q->request_freelist[REQUEST_LIST_WRITE];
>
> if the compiler doesn't understand READ == REQUEST_LIST_READ and
> REQUEST_LIST_WRITE == WRITE (I guess it doesn't understand
> that).

This stuff has now moved to get_request to get the read fall back
effect in there as well.

> o get_request_wait must definitely sleep in wake-one as before.
> uplugging the device only assure that you'll get the request
> completed in finite time. But the I/O completation time
> is loong and you also don't want to forbid the
> next plug to happen while you're waiting the completation
> of the last unplug.

You are definately right, that was pretty stupid. I've attached a patch
against previous version, what do you think?

> More thought on this soon...

Look forward to hearing them!

-- 
*  Jens Axboe <axboe@suse.de>
*  Linux CD/DVD-ROM, SuSE Labs
*  http://kernel.dk


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:09 EST