All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesper Dangaard Brouer <brouer@redhat.com>
To: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: brouer@redhat.com, Richard Cochran <richardcochran@gmail.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCH net-next] sock: don't enable netstamp for af_unix sockets
Date: Tue, 27 Oct 2015 13:04:23 +0100	[thread overview]
Message-ID: <20151027130423.63f24dbb@redhat.com> (raw)
In-Reply-To: <1445944516.1337466.421368457.2463FECE@webmail.messagingengine.com>


On Tue, 27 Oct 2015 12:15:16 +0100 Hannes Frederic Sowa <hannes@stressinduktion.org> wrote:

> On Tue, Oct 27, 2015, at 12:09, Hannes Frederic Sowa wrote:
> > Hi Richard,
> > 
> > On Tue, Oct 27, 2015, at 11:11, Richard Cochran wrote:
> > > On Mon, Oct 26, 2015 at 02:32:59PM +0100, Hannes Frederic Sowa wrote:
> > > > On Mon, Oct 26, 2015, at 14:19, Richard Cochran wrote:
> > > > > On Mon, Oct 26, 2015 at 01:51:37PM +0100, Hannes Frederic Sowa wrote:
> > > > > > netstamp_needed is toggled for all socket families if they request
> > > > > > timestamping. But some protocols don't need the lower-layer timestamping
> > > > > > code at all. This patch starts disabling it for af-unix.
> > > > > 
> > > > > What problem is this patch trying to solve?
> > > > 
> > > > netstamp_needed is a static-key which enables timestamping code in the
> > > > networking stack receive functions for every packet, while it is not
> > > > needed for AF_UNIX/LOCAL. So it is merely a small performance
> > > > enhancement.
> > > 
> > > Are there any numbers that show the effect of this enhancement?
> > 
> > I haven't personally done any performance numbers.
> > 
> > Jesper (in Cc) noticed that it showed up in perf performance reports
> > even though he used a very minimal setup. Turned out that
> > systemd-journald enables timestamping on AF_UNIX sockets which thus
> > enabled netstamps globally. I think Jesper can chime in here.

Well, it should be quite obvious that requesting a timestamp on every
packet is a fairly expensive, especially when not used for anything.

I can estimate the cost by looking at perf report, on a single-flow
IP-fwd test (1989575 pps) CPU i7-4790K @ 4.2GHz.

I quick IP-fwd test show perf top:
 1.54%  ksoftirqd/1  [kernel.vmlinux]  [k] read_tsc
 1.07%  ksoftirqd/1  [kernel.vmlinux]  [k] ktime_get_with_offset

(1/1989575*10^9)*((1.54+1.07)/100) = 13.12 nanosec

On some of my slower systems, I've seen cost of just reading TSC be
around 32 ns.

> Also counter question: why is the netstamp code protected by a
> static_key otherwise if not for trying to suppress the code path as
> often as possible if not used? ;)

Exactly ;-)

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  Author of http://www.iptv-analyzer.org
  LinkedIn: http://www.linkedin.com/in/brouer

  reply	other threads:[~2015-10-27 12:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-26 12:51 [PATCH net-next] sock: don't enable netstamp for af_unix sockets Hannes Frederic Sowa
2015-10-26 13:19 ` Richard Cochran
2015-10-26 13:32   ` Hannes Frederic Sowa
2015-10-27 10:11     ` Richard Cochran
2015-10-27 11:09       ` Hannes Frederic Sowa
2015-10-27 11:15         ` Hannes Frederic Sowa
2015-10-27 12:04           ` Jesper Dangaard Brouer [this message]
2015-10-27 13:19           ` Eric Dumazet
2015-10-27 13:44             ` Hannes Frederic Sowa
2015-10-27 14:15               ` Eric Dumazet
2015-10-28  2:39 ` David Miller

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=20151027130423.63f24dbb@redhat.com \
    --to=brouer@redhat.com \
    --cc=hannes@stressinduktion.org \
    --cc=netdev@vger.kernel.org \
    --cc=richardcochran@gmail.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 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.