Hi,
This patch includes two sets of things against test10:
First, there are several places where schedule() is called after
wakeup_bdflush(1) is called. This is completely unnecessary, since
wakeup_bdflush(1) already gave up the control, and when the control is
returned to the calling thread who called wakeup_bdflush(1), it should just
go on. Calling schedule() after wakeup_bdflush(1) will make the calling
thread give up control again. This is a problem for some of those latency
sensitive benchmarks (like SPEC SFS) and applications.
Second, (I have posted this to the kernel mailing list, but I forgot to cc
to Linus.) I made some optimizations on racache in nfsd in test10. The idea
is to replace with existing fixed length table for readahead cache in NFSD
with a hash table. The old racache is essentially ineffective in dealing
with large # of files, and yet eats CPU cycles in scanning the table (even
though the table is small), the hash table-based is much more effective
and fast. I have generated the patch for test10 and tested it.
(See attached file: a)
Ying Chen
[EMAIL PROTECTED]
IBM Almaden Research Center
a