how to bypass buffer cache for a block device driver

T. P. Saravanan (sara@procsys.com)
Sat, 07 Aug 1999 18:06:35 +0530


I've a custom hardware with lot of inbuilt cache.
I want to write a block device driver for it and i
*want to bypass the buffer cache*.
I intend to run filesystems on top of it.

I filled in the "read" and "write" functions with my own versions
and bypassed "block_read" and "block_write".
I could "fdisk" but mount failed complaining about "request_fn".

I filled in the "request_fn" and now, it appears to me
that all io happens through "request_fn". For instance,
"printk" lines in "read" and "write" print
nothing.

If i check the pid in "request_fn" it is that
of "kflushd" or "bdflush".

---

Is it possible to bypass the buffer cache completely for a block device driver? What should I do?

Is it possible to bypass only for some processes and let thro for others? (This is the final behaviour I want.)

Where should I look for more about block device drivers and their interaction with buffer cache (i.e. apart from code in terms of design, structure etc.,).

---

I am not on the mailing list, so please post a copy to "sara@procsys.com" too.

---

Thanks in advance

Saravanan

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/