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/