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
On Sat, 11 Nov 2000, Ying Chen/Almaden/IBM wrote:
>
> 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
Fair enough.
> 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.
..but this would need a lot more testing/feedback, especially from the nfs
client maintainers (I see that Neil Brown did some querying already, I
think more is in order).
Also, I'd _really_ like those lists to be real <linux/list.h> lists
instead of duplicating code.
Linus