> > [...] Also, Windows NT has some pretty nifty stuff
> > in it's file system architecture for SMP. The way the VM Cache manager is
> > implemented in Windows NT is nothing short of genius. By caching MCB
> > allocation run information (NT reads and writes files by constructing MCB
> > lists in memory, which are in-memory descriptors of a file's contiguous
> > sector runs), this gives NT the ability to perform some fairly
> > sophisticated read-ahead and cache predication operations for random
> > access as well as sequential access files. This architecture is also
> > superior for SMP operations. MCB lists can basically be sent in a
> > parallel fashion to the IO subsystem and transacted in parallel. [...]
would you mind comparing it to what Linux 2.3.7's page cache does? That
one has pagecache design pretty close to 'genius' as well, and not only on
paper :) On a 4-ways Xeon we scale read performance ~380%, which is
basically linear:
single-process reads done on the same 60k file:
[root@moon fileben]# ./fileben ./FILE 60000 1 1 1
READ: 273.76 MB/sec
4-process read()s done on the same 60k file:
[root@moon fileben]# ./fileben ./FILE 60000 4 1 1
READ: 258.16 MB/sec
READ: 258.09 MB/sec
READ: 258.04 MB/sec
READ: 258.20 MB/sec
part of the rather dramatic speedup is also a new mechanizm: the new
pagecache now also caches 'filesystem physical block addresses', which
allows us to skip a costy lookup of filesystem metadata for every block of
file read() or written.
-- mingo
-
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/