On Mon, Jan 26, 2004 at 09:17:45AM -0500, Dennis McCracken wrote: > I'm taking a crack at implementing this task. I'm doing it more for self > education than any rw need. Though I know from personnel experience how > valuable tracing can be. The requirements for this task state: > > "When analysing things like VM caching performance or filesystem layout > policies, it is useful to be able to capture a trace of certain kinds of > activity for quite large workloads. Modern disks can write a fair number of > megabytes per second, which should be enough for this purpose. > The idea basically: Implement a large ring-buffer, at places where tracing > is desired data is appended to the ring-buffer. A kernel thread flushes the > buffer to a raw disk-partition as fast as possible." > > I've figured out how to address most all of this job with the exception of > raw disk I/O from a kernel thread. The kernel documentation is rich with > info on user mode to kernel mode IPC. From what I've read, I believe I have > to use the "raw" character driver bound to a mounted block device (disk). > I'm sure I can wade through getting this set up. However I'm lost when it > comes to accessing the raw device (/dev/raw1) from within a kernel thread. > Any help/pointers are greatly appreciated. Take a look at either netlink, or relayfs. Both of these solve the "high-volume trace facility" solution... greg k-h -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/