On Wed, 30 Aug 2000, Jens Axboe wrote:
>
> Maybe I wasn't very clear... What I mean is that drivers that use
> blk_queue_make_request (such as md) are handed buffers directly and
> don't get requests added to their queues in the regular sense, instead
> they remap b_rdev before ll_rw_blk gets the queue for the device and
> adds them to the destination queue.

Ho humm.. I actually kind of expected the statistics to be done in
generic_make_request(), so that we'd have

        .....
                do {
                        q = blk_get_queue(bh->b_rdev);
                        if (!q) {
                                ... no such device ..
                        }
        +               statistics(q, rw, bh->b_size);
                } while (q->make_request_fn(q, rw, bh)));
        ...

and just remove the drive_stat_acct() thing completely.

That way, we'd have a per-queue "this many reads, this many writes".

The /proc code would have to find all the queues, but that shouldn't be
too bad either. At least we wouldn't have the current silly disk_index()
stuff (which is all done in a timing-critical routine).

Then, as we get saner and saner queues, we'll get saner and saner
statistics automatically. The above should already be quite sane for IDE.

No?

                Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to