From: Eric Dumazet <eric.dumazet@gmail.com>
To: Tim Chen <tim.c.chen@linux.intel.com>
Cc: David Miller <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>, Andi Kleen <andi@firstfloor.org>
Subject: Re: [PATCH net-next-2.6] inetpeer: lower false sharing effect
Date: Fri, 10 Jun 2011 06:31:27 +0200 [thread overview]
Message-ID: <1307680287.3210.2.camel@edumazet-laptop> (raw)
In-Reply-To: <1307664235.17300.44.camel@schen9-DESK>
Le jeudi 09 juin 2011 à 17:03 -0700, Tim Chen a écrit :
> On Thu, 2011-06-09 at 08:26 +0200, Eric Dumazet wrote:
> > Profiles show false sharing in addr_compare() because refcnt/dtime
> > changes dirty the first inet_peer cache line, where are lying the keys
> > used at lookup time. If many cpus are calling inet_getpeer() and
> > inet_putpeer(), or need frag ids, addr_compare() is in 2nd position in
> > "perf top".
> >
>
> I've applied both inetpeer patches. I also no longer have inet_getpeer
> and inet_putpeer and addr_compare in my profile. Instead, neighbor
> lookup is now dominant. See profile below.
>
> When I retest with original 3.0-rc2 kernel, inet_putpeer no longer shows
> up, wonder if dst->peer was not set for some reason.
>
> Tim
>
> - 27.06% memcached [kernel.kallsyms] [k] atomic_add_unless.clone.34
> - atomic_add_unless.clone.34
> - 99.97% neigh_lookup
> __neigh_lookup_errno.clone.17
> arp_bind_neighbour
> rt_intern_hash
> __ip_route_output_key
> ip_route_output_flow
> udp_sendmsg
> inet_sendmsg
> __sock_sendmsg
> sock_sendmsg
> __sys_sendmsg
> sys_sendmsg
> system_call_fastpath
> __sendmsg
> - 13.33% memcached [kernel.kallsyms] [k] atomic_dec_and_test
> - atomic_dec_and_test
> - 99.89% dst_destroy
> - dst_release
> - 98.12% skb_dst_drop.clone.55
> dev_hard_start_xmit
> + sch_direct_xmit
> + 1.88% skb_release_head_state
> - 3.26% memcached [kernel.kallsyms] [k] do_raw_spin_lock
> - do_raw_spin_lock
> - 92.24% _raw_spin_lock
> + 41.39% sch_direct_xmit
>
>
Thanks Tim
I have some questions for further optimizations.
1) How many different destinations are used in your stress load ?
2) Could you provide a distribution of the size of packet lengthes ?
Or maybe the average length would be OK
next prev parent reply other threads:[~2011-06-10 4:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-09 6:26 [PATCH net-next-2.6] inetpeer: lower false sharing effect Eric Dumazet
2011-06-09 6:31 ` David Miller
2011-06-10 0:03 ` Tim Chen
2011-06-10 3:43 ` David Miller
2011-06-10 4:47 ` Eric Dumazet
2011-06-10 22:33 ` Tim Chen
2011-06-11 0:54 ` Changli Gao
2011-06-11 4:54 ` Eric Dumazet
2011-06-11 6:17 ` Changli Gao
2011-06-11 7:09 ` Andi Kleen
2011-06-10 4:31 ` Eric Dumazet [this message]
2011-06-10 17:05 ` Tim Chen
2011-06-10 17:17 ` Eric Dumazet
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=1307680287.3210.2.camel@edumazet-laptop \
--to=eric.dumazet@gmail.com \
--cc=andi@firstfloor.org \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=tim.c.chen@linux.intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox