diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-12-15 20:45:28 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-21 21:30:12 +0100 |
commit | 12b16dadbc2406144d408754f96d0f44aa016239 (patch) | |
tree | 1503124f18c7e181963889f254a49a597bf59baa /include/crypto | |
parent | bnx2: remove cancel_work_sync() from remove_one (diff) | |
download | linux-12b16dadbc2406144d408754f96d0f44aa016239.tar.xz linux-12b16dadbc2406144d408754f96d0f44aa016239.zip |
filter: optimize accesses to ancillary data
We can translate pseudo load instructions at filter check time to
dedicated instructions to speed up filtering and avoid one switch().
libpcap currently uses SKF_AD_PROTOCOL, but custom filters probably use
other ancillary accesses.
Note : I made the assertion that ancillary data was always accessed with
BPF_LD|BPF_?|BPF_ABS instructions, not with BPF_LD|BPF_?|BPF_IND ones
(offset given by K constant, not by K + X register)
On x86_64, this saves a few bytes of text :
# size net/core/filter.o.*
text data bss dec hex filename
4864 0 0 4864 1300 net/core/filter.o.new
4944 0 0 4944 1350 net/core/filter.o.old
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/crypto')
0 files changed, 0 insertions, 0 deletions