From: Fabian Hugelshofer <hugelshofer2006@gmx.ch>
To: Patrick McHardy <kaber@trash.net>
Cc: netfilter-devel@vger.kernel.org, Pablo Neira Ayuso <pablo@netfilter.org>
Subject: Re: Conntrack Events Performance - Multipart Messages?
Date: Wed, 23 Jul 2008 17:12:55 +0100 [thread overview]
Message-ID: <48875887.8040209@gmx.ch> (raw)
In-Reply-To: <48874272.1020503@trash.net>
[-- Attachment #1: Type: text/plain, Size: 2286 bytes --]
Patrick McHardy wrote:
> Fabian Hugelshofer wrote:
>> Again most of the time is spent in the kernel. Memory and skb
>> operations are accounted there. I suspect that they cause the most
>> overhead.
>>
>> Do you plan to dig deeper into optimising the non-optimal parts? I
>> consider myself not to have enough understanding to do it myself.
>
> The first thing to try would be to use sane allocation sizes
> for the event messages. This patch doesn't implement it properly
> (uses probing), but should be enough to test whether it helps.
Thanks a lot. This patch already decreased the CPU usage for ctevtest
from 85% to 44%. Sweet...
I created a new callgraph profile which you find attached to this mail.
Let's have a look at two parts:
First:
2055 2.7205 ctnetlink_conntrack_event
2378 21.6201 nla_put
2181 19.8291 nfnetlink_send
2055 18.6835 ctnetlink_conntrack_event [self]
1250 11.3647 __alloc_skb
955 8.6826 ipv4_tuple_to_nlattr
752 6.8370 nf_ct_port_tuple_to_nlattr
321 2.9184 __memzero
220 2.0002 nfnetlink_has_listeners
177 1.6092 nf_ct_l4proto_find_get
155 1.4092 __nla_put
116 1.0546 nf_ct_l3proto_find_get
82 0.7455 module_put
70 0.6364 nf_ct_l4proto_put
66 0.6001 nf_ct_l3proto_put
60 0.5455 nlmsg_notify
43 0.3909 netlink_has_listeners
42 0.3819 __kmalloc
37 0.3364 kmem_cache_alloc
26 0.2364 __nf_ct_l4proto_find
13 0.1182 __irq_svc
nf_conntrack_event is now one of the first functions listed. Do you see
other ways of improving performance?
Second:
33 2.4775 __nf_ct_ext_add
63 4.7297 dev_hard_start_xmit
65 4.8799 sock_recvmsg
77 5.7808 netif_receive_skb
92 6.9069 __nla_put
96 7.2072 nf_conntrack_alloc
199 14.9399 nf_conntrack_in
246 18.4685 skb_copy
427 32.0571 nf_ct_invert_tuplepr
1793 2.3737 __memzero
1793 100.000 __memzero [self]
Is the zeroing of the inverted tuple in nf_ct_invert_tuple really
required? As far as I can see all fields are set by the subsequent code.
[-- Attachment #2: opreport_cg_patch.tar.gz --]
[-- Type: application/x-gzip, Size: 34247 bytes --]
next prev parent reply other threads:[~2008-07-23 16:12 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-16 16:42 Conntrack Events Performance - Multipart Messages? Fabian Hugelshofer
2008-07-17 9:16 ` Patrick McHardy
2008-07-17 10:03 ` Pablo Neira Ayuso
2008-07-17 14:34 ` Fabian Hugelshofer
2008-07-17 15:15 ` Fabian Hugelshofer
2008-07-18 15:56 ` Fabian Hugelshofer
2008-07-18 2:11 ` Patrick McHardy
2008-07-21 15:51 ` Fabian Hugelshofer
2008-07-21 15:59 ` Patrick McHardy
2008-07-21 17:49 ` Fabian Hugelshofer
2008-07-23 14:32 ` Fabian Hugelshofer
2008-07-23 14:38 ` Patrick McHardy
2008-07-23 16:12 ` Fabian Hugelshofer [this message]
2008-07-23 17:01 ` Patrick McHardy
2008-07-23 17:07 ` Patrick McHardy
2008-07-23 17:30 ` Fabian Hugelshofer
2008-07-23 17:32 ` Patrick McHardy
2008-07-23 17:38 ` Fabian Hugelshofer
2008-07-23 17:40 ` Patrick McHardy
2008-07-23 17:15 ` Fabian Hugelshofer
2008-07-23 17:20 ` Patrick McHardy
2008-07-24 13:21 ` Fabian Hugelshofer
2008-07-25 8:51 ` Fabian Hugelshofer
2008-07-25 9:32 ` Pablo Neira Ayuso
2008-07-25 11:15 ` Pablo Neira Ayuso
2008-07-27 17:23 ` Fabian Hugelshofer
2008-07-28 18:31 ` Pablo Neira Ayuso
2008-07-28 23:12 ` Fabian Hugelshofer
2008-07-29 17:11 ` Pablo Neira Ayuso
2008-07-25 8:44 ` Fabian Hugelshofer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48875887.8040209@gmx.ch \
--to=hugelshofer2006@gmx.ch \
--cc=kaber@trash.net \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.