The following are new versions of copy_tofrom_user, memcpy and copy_4K_page which have been written specifically for Cell. All the hard work for these routines was done by Gunnar von Boehn - I used his new memcpy to create copy_4K_page and just added the exception handling code to copy_tofrom_user.
Using these new routines give a big performance improvement for Cell (tested on QS22 Cell blade): Test unpatched kernel new routines --------------------------------------------------------------------------------- iperf 2.3 GBits/sec 5.8 GBits/sec netperf (TCP) 2.5 GBits/sec 5.3 GBits/sec netperf (UDP) 318 MBits/sec 351 MBits/sec kernel used was 2.6.25.7 tests were run as follows (final result is mean of 4 runs): numactl --cpunodebind=0 --membind=0 ./iperf -s -> numactl --cpunodebind=0 --membind=0 ./iperf -c 127.0.0.1 -t 30 -l 64k numactl --cpunodebind=0 --membind=0 ./netserver -> numactl --cpunodebind=0 --membind=0 ./netperf -l 30 -H 127.0.0.1 -c -t UDP_STREAM -- -m 1024 -> numactl --cpunodebind=0 --membind=0 ./netperf -l 30 -H 127.0.0.1 -c -t TCP_STREAM -i 10,2 -I 99,5 -- -m 32768 The plan is to use Michael Ellerman's code patching work so that at runtime if we're running on a Cell machine the new routines are called but otherwise the existing memory copy routines are used. It would be good to get some more (fresh) eyes looking at this. Any and all comments are welcome. Thanks! Mark _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev