Re: efficient copy_to_user and copy_from_user routines in Linux Kernel

From: Mala Anand (
Date: Fri Jun 28 2002 - 06:50:00 EST

>Mala Anand wrote:
>> Here is a 2.5.19 patch that improves the performance of IA32
>> and copy_from_user routines used by :
>> (1) tcpip protocol stack
>> (2) file systems

>This came up about a year back when zerocopy networking was merged.
>Intel boxes started running more slowly purely because of the 8+8
>alignment thing.

>I changed tcp to use a different copy if either source or dest were
>not eight-byte aligned, and found that the resulting improvement
>across a mixed networking load was only 1%. Your numbers are higher,
>so perhaps there are different alignments in the mix...

I will test on other workloads when I return back to work after OLS
and vacation. However we tested an earlier version of this patch on
Netbench using sendfile and gained around 3% improvement. The baseline
profiling showed that Netbench was spending 10% in generic_copy_to_user.
The tcp options are aligned on an 4-byte boundary, so depending on the
options used the address to the data (source address to the
generic_copy_to_user) should fall on an 4 or 8 byte boundary. I agree
with you more test is needed.

>One question: have you tested on other CPU types? This problem is
>very specific to Intel hardware. On AMD, the eight-byte alignement
>artifact does not exist at all. It could be that your patch is not
>desirable on such CPUs?

I tested only Pentium II and III. I will test it on Pentium IV.
When I said 8-byte alignment, it is 8 and greater. I will
try to check out AMD also.


   Mala Anand
   Linux Technology Center - Performance
   Phone:838-8088; Tie-line:678-8088

                      Andrew Morton
                      <> To: Mala Anand/Austin/IBM@IBMUS
                      Sent by: cc: Linux Kernel Mailing List <>,
                                               Subject: Re: efficient copy_to_user and copy_from_user routines in Linux Kernel
                      06/25/2002 12:03


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Jun 30 2002 - 22:00:13 EST