this is a one-liner.  here's a little demo:

        chula; sed 's:8192:64*1024:g' </sys/src/cmd/cat.c > fatcat.c && tmk 
fatcat.c
        6c -FVTw fatcat.c
        6l -o 6.fatcat fatcat.6
        chula; cat /bin/gs>/dev/null;for(i in cat 6.fatcat)time $i /bin/gs > 
/dev/null
        0.00u 0.01s 0.41r        cat /bin/gs
        0.00u 0.00s 0.23r        6.fatcat /bin/gs

the trick is only to increase IOUNIT to 48k in both file server and cpu
server.

this works since the mtu of the network is 1500 bytes and the Rread messages
are up to 48k + 9p overhead, the network layer has multiple outstanding
messages and overlapping acks at the network layer much of the time, even
though the mount driver continues keeping a single outstanding message
per system call.

- erik

Reply via email to