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