Re: how to bypass buffer cache for a block device driver

Alan Cox (alan@lxorguk.ukuu.org.uk)
Mon, 9 Aug 1999 15:52:34 +0100 (BST)


> I want to optimize network related disk access by avoiding
> buffer copies into the main RAM. (Nic card will directly pick up
> data from storage controller card.)

Ok in which case you will definitely need to do a fair bit of kernel
hacking.

> I do not want apps running on the host machine itself to get
> adversely impacted.

Nod - but they want to share the page cache too so you need to run
a distributed shared memory scheme between your NFS daemon, the kernel
page cache and the card. Not fun

> I do not mind patching nfs server or writing device driver
> but I do not want to patch the kernel as I finally want it
> running on a stock kernel.

The NFS server (knfsd) is in the kernel

> How is the general problem of "peer-to-peer" access of hardware
> addressed in linux? Is there a generic way hardware can pass
> data bypassing copies to host memory.

Not currently. We do obvious stuff like video capture direct to the frame
buffer. Disk I/O however is going via the page cache and we need to keep
that coherent. Stephen Tweedie has done some initial work on raw
userspace<->controller I/O for Linux that can handle raw I/O for raw disk
partitions.

-
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/