Re: PATCH: Raw device IO for 2.1.131

Jes Sorensen (Jes.Sorensen@cern.ch)
13 Dec 1998 16:27:37 +0100


>>>>> "Linus" == Linus Torvalds <torvalds@transmeta.com> writes:

Linus> On Sat, 12 Dec 1998, Larry McVoy wrote:
>> So, Linus, I know you haven't been thrilled about "raw I/O" and
>> that you have some very valid reasons for not wanting it in the
>> kernel. Does the patch for raw device I/O come anywhere near being
>> good enough that you are OK with it? If not, can you suggest what
>> it would need to look like?

Linus> Quite frankly, nobody has EVER given me a reason that makes any
Linus> kind of sense at all for supporting raw devices in any other
Linus> way than we already do. Nobody sane uses a disk without a
Linus> filesystem, and the insane people that do I feel we can and
Linus> should ignore. Insanity has a way of dying off over time, when
Linus> Darvin starts to look into it.

One reason I see is to be able to have a file server with say 1/2 Tera
Byte of disk attached serving these files over the network. There is
just no way you can put enough memory in such a box that the buffer
caching will not be a bottleneck. Being able to mount the entire
filesystem as non-cached and using zero-copy TCP adapters to serve
this would be a great win.

Linus> I've also become almost completely uninterested in zero-copy
Linus> schemes. They make for great benchmarks, but have little
Linus> relevance to anything else.

I strongly disagree with you here. Zero Copy TCP is one of the reasons
why SGI beats anybody else on IO while still being able to do real
work on the machines. I know you are not a great fan of IRIX, but when
it comes to IO bound processing, there is just nothing that compares
to them. One of the reasons for this is of course their hardware but
a major point _is_ their OS.

Linus> You have two cases: - sendfile()
Linus> like copying things around. We want to do zero-copy here, but
Linus> it's easy because everything is already in kernel space. -
Linus> real work. If zero-copy makes a real difference, you'd better
Linus> buy a new computer, because your memory subsystem is too
Linus> slow. Either you're IO bound or you aren't, and if you're IO
Linus> bound and your memory is slower than your IO then it's not
Linus> something the OS should do all that much about. And if you
Linus> aren't IO-bound, then the whole discussion is moot.

Right now we just don't perform on serving files to a network, I
haven't tried faster machines than 440BX boxes so far, but even in a
dual 450MHz 440BX box with 100MHz SDRAM our performance suck for IO -
unless the Xeon's are significantly better, then I can't see where I
can buy that PC that can do the job.

SGI has proved this can be done much better with similar class
hardware (their older stuff) and implementing zero copy TCP would make
us able to compete more equally with them. There are actually quite a
few low-priced NIC's out there that will do TCP checksumming `right'
for Fast Ethernet. Besides, Gigabit Ethernet and HIPPI will gain big
time from this.

We can do this right in Linux as well, I really can't see why we
shouldn't.

Jes

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