]> bbs.cooldavid.org Git - net-next-2.6.git/commit - include/net/scm.h
[AF_UNIX]: scm: better initialization
authorBenjamin LaHaise <benjamin.c.lahaise@intel.com>
Tue, 21 Mar 2006 05:31:51 +0000 (21:31 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Mar 2006 05:31:51 +0000 (21:31 -0800)
commit1d541ddd74802cfa0eb8a3864668851f6cd79bdf
tree3db70aede59a2743124b077ed1dd2ebe3629b506
parente9df7d7f584666533b1bdfcf5c60a43d64689198
[AF_UNIX]: scm: better initialization

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: Benjamin LaHaise <benjamin.c.lahaise@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/scm.h