diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-10-04 18:56:05 (GMT) |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-10-04 18:56:05 (GMT) |
commit | a8defca048fd11eb2d1a17ab61a60a856292dd4e (patch) | |
tree | b486460fd1f2310cd4572bd36c126a3fa8b3a5c5 /net/dcb | |
parent | 0c200d935346fe0ebde9b6dffbb683dddd166fb9 (diff) | |
download | linux-fsl-qoriq-a8defca048fd11eb2d1a17ab61a60a856292dd4e.tar.xz |
netfilter: ipt_LOG: add bufferisation to call printk() once
ipt_LOG & ip6t_LOG use lot of calls to printk() and use a lock in a hope
several cpus wont mix their output in syslog.
printk() being very expensive [1], its better to call it once, on a
prebuilt and complete line. Also, with mixed IPv4 and IPv6 trafic,
separate IPv4/IPv6 locks dont avoid garbage.
I used an allocation of a 1024 bytes structure, sort of seq_printf() but
with a fixed size limit.
Use a static buffer if dynamic allocation failed.
Emit a once time alert if buffer size happens to be too short.
[1]: printk() has various features like printk_delay()...
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/dcb')
0 files changed, 0 insertions, 0 deletions