diff options
author | Benjamin LaHaise <benjamin.c.lahaise@intel.com> | 2006-03-20 21:31:51 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-20 21:31:51 -0800 |
commit | 1d541ddd74802cfa0eb8a3864668851f6cd79bdf (patch) | |
tree | 3db70aede59a2743124b077ed1dd2ebe3629b506 /include/net/inet_connection_sock.h | |
parent | e9df7d7f584666533b1bdfcf5c60a43d64689198 (diff) | |
download | linux-3.10-1d541ddd74802cfa0eb8a3864668851f6cd79bdf.tar.gz linux-3.10-1d541ddd74802cfa0eb8a3864668851f6cd79bdf.tar.bz2 linux-3.10-1d541ddd74802cfa0eb8a3864668851f6cd79bdf.zip |
[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>
Diffstat (limited to 'include/net/inet_connection_sock.h')
0 files changed, 0 insertions, 0 deletions