Larry McVoy writes:
> On Tue, Oct 17, 2000 at 09:21:00AM -0700, Andre Hedrick wrote:
> > Expand 'traces' ... O-SCOPE analyizer?
> 
> Insert a ring buffer into the disk sort entry point.  Add a userland process
> which reads this ring buffer and gets the actual requests in the actual order
> they are sent to the drive[s].  Then take that data and write a simulator into
> which you can plug in different algs.  I have all this crud for SunOS if you
> want it, including elevator.c, hacksaw.c, and inorder.c.

I wrote a lightweight kernel->userland ring buffer device for Linux
called bufflink and a block-request logger that uses it called
reqlog. reqlog writes a structure
    struct reqlog {
            unsigned int    major;
            unsigned int    minor;
            unsigned long   sector;
            long            nr_sectors;
    };
to the ring buffer when an ioctl is done to enable logging. The
current patch isn't quite what you were suggesting since it does
roughly

     add_request() {
        ...
        elevator_queue(req, tmp, latency, dev, current_request);
    +   if (bl_reqlog && enable_reqlog) {
    +       ...
    +       bufflink_append(bl_reqlog, (unsigned char *)&rl, sizeof rl);
    +   }

        if (queue_new_request)
                (dev->request_fn)();
     }
but it would be easy to write the record (instead or as well)
before the elevator_queue(). The patches are available from
    http://users.ox.ac.uk/~mbeattie/linux-kernel.html

--Malcolm

-- 
Malcolm Beattie <[EMAIL PROTECTED]>
Unix Systems Programmer
Oxford University Computing Services
-
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