On Mon, 7 Oct 2002, Jens Axboe wrote:
On Mon, Oct 07 2002, Jens Axboe wrote:
On Sun, Oct 06 2002, Peter Osterlund wrote:
On Sun, 6 Oct 2002, Jens Axboe wrote:
On Sun, Oct 06 2002, Peter Osterlund wrote:
It looks like the packet driver isn't fed enough simultaneous requests.
This was a false alarm. The code in pkt_proc_device that prints request queue information just doesn't provide the whole truth when the deadline scheduler is used.
One thing I noticed is that the i/o scheduler sometimes feeds requests in reverse order to the cd. This may be OK for hard disks, but seems to be bad for cds, at least my cd. Is this supposed to happen with the new i/o scheduler?
No, that would be a bug regardless. Hmm strange, will try some profiling myself.
BTW, just curious, does the reverse order requests go away if you disable:
/* * no insertion point found, check the very front */ if (!*insert && !list_empty(sort_list)) { __rq = list_entry_rq(sort_list->next);
if (bio->bi_sector + bio_sectors(bio) < __rq->sector && bio->bi_sector > deadline_get_last_sector(dd)) *insert = sort_list; }
in drivers/block/deadline-iosched.c? Just #if 0 out the entire block above.
No, it doesn't make a difference. It's very repeatable by simply creating an empty 10Mb file with dd. I have configured the packet driver to work on 32 simultaneous packets, and it immediately sends 30+ write requests to the cdrw request queue and then keeps the request queue busy. However, the first 30+ requests appear in reverse order. After that the requests appear in standard order. I think I'll go study the deadline i/o scheduler code in detail. -- Peter Osterlund - petero2@telia.com http://w1.894.telia.com/~u89404340