• Benjamin LaHaise's avatar
    [AF_UNIX]: scm: better initialization · 1d541ddd
    Benjamin LaHaise authored
    Instead of doing a memset then initialization of the fields of the scm
    structure, just initialize all the members explicitly.  Prevent reloading
    of current on x86 and x86-64 by storing the value in a local variable for
    subsequent dereferences.  This is worth a ~7KB/s increase in af_unix
    bandwidth.  Note that we avoid the issues surrounding potentially
    uninitialized members of the ucred structure by constructing a struct
    ucred instead of assigning the members individually, which forces the
    compiler to zero any padding.
    
    [ I modified the patch not to use the aggregate assignment since
      gcc-3.4.x and earlier cannot optimize that properly at all even
      though gcc-4.0.x and later can -DaveM ]
    Signed-off-by: default avatarBenjamin LaHaise <benjamin.c.lahaise@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1d541ddd
scm.h 1.68 KB