Re: XFS and journalling filesystems

Gerard Roudier (groudier@club-internet.fr)
Sun, 30 May 1999 09:17:06 +0200 (MET DST)


On Thu, 27 May 1999, Theodore Y. Ts'o wrote:

> Date: Mon, 24 May 1999 11:24:35 -0600
> From: Larry McVoy <lm@bitmover.com>
>
> : (And there are certain features of XFS, such as the features that allow
> : Irix to tell the disk controller to send disk blocks directly to the
> : ethernet controller, which then slaps on the TCP header and calclates
> : the TCP checksum without the disk data ever hitting memory
>
> This is not quite right, in fact, it is a little unfair to IRIX. There is
> no interaction between the file system and/or the block device system
> and the networking stack. The way it works is this (I know this code
> extremely well since I'm the guy that originally made NFS use both the
> networking and the file system to go at 94MByte/sec - Ethan Solomita is
> the guy who made it go at 640MByte/second over Super HIPPI):
>
> I stand corrected. I had heard about the zero copy algorithm you
> described, but then when I later heard that Irix had bypassed even the
> DMA in and out of memory, I was appropriately horrified. I'm glad to
> hear it wasn't true, and that you had no part in implementing or
> designing such a horrible hack (i.e., direct device-to-device I/O). :-)

You can design I/O Buses on which the CPU uses the same bus protocol as
normal I/O devices and that allows any device to access the whole memory
and memory mapped IO space. PCI is obviously a good example of that. (Note
that it seems that, when only CPU-to-brain-wired-O/S-guys are involved in
the design of an interface with a PCI sub-system, they used to allow the
CPU some features regarding BUS accesses that normal I/O devices haven't.
This is an hack too, in my opinion).

It is possible by design on those Buses for any device acting as a master
to directly talk to another device acting as a target and it is this way
I/Os involving the CPU are _actually_ working. In order for direct I/O to
I/O not looking like a hack, we probably need to have sophisticated I/O
controllers that can host some logic that is currently part of the O/S.
This let me think that it is possible, at least on paper, to implement
such a system that is absolutely not a hack.

Gérard.

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