All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Pavel Emelyanov <xemul@parallels.com>,
	Linux Netdev List <netdev@vger.kernel.org>,
	David Miller <davem@davemloft.net>
Subject: Re: [PATCH 1/2] net: Allow to create links with given ifindex
Date: Thu, 02 Aug 2012 04:09:39 -0700	[thread overview]
Message-ID: <87wr1h35zg.fsf@xmission.com> (raw)
In-Reply-To: <1343903310.9299.184.camel@edumazet-glaptop> (Eric Dumazet's message of "Thu, 02 Aug 2012 12:28:30 +0200")

Eric Dumazet <eric.dumazet@gmail.com> writes:

> On Tue, 2012-07-31 at 04:58 -0700, Eric W. Biederman wrote:
>
>> Making lo the particularly interesting case.
>
>
> BTW, I noticed in my benchmarks, that once I remove the contention on
> dst refcnt (using a percpu cache of dsts), I have a strange performance
> cost accessing net->loopback_dev->ifindex in ip_route_output_key.
>
> Strange because I see no false sharing on this ifindex location for
> loopback device.
>
> So we probably can save some cycles adding a net->loopback_ifindex
> to remove one dereference.

I am going to let Pavel tackle the actual work because only migration
really cares and he is working on migration right now.

But assuming we merge the per network namespace ifindex counter we
can change net->loopback_dev->ifindex to LOOPBACK_IFINDEX and
define "#define LOOPBACK_IFINDEX 1"

Certainly that works in the initial network namespace today and might be
worth testing.

> If ifindex are per network space, I guess we'll need to change
> arp_hashfn() or else we'll use some slots more than others.

Darn.  I hate being right about there being a few places to fix
up.

ndisc_hashfn also has the same limitation.

Eric

> diff --git a/include/net/arp.h b/include/net/arp.h
> index 7f7df93..37aac58 100644
> --- a/include/net/arp.h
> +++ b/include/net/arp.h
> @@ -10,7 +10,7 @@ extern struct neigh_table arp_tbl;
>  
>  static inline u32 arp_hashfn(u32 key, const struct net_device *dev, u32 hash_rnd)
>  {
> -	u32 val = key ^ dev->ifindex;
> +	u32 val = key ^ (u32)(unsigned long)dev;
>  
>  	return val * hash_rnd;
>  }

  reply	other threads:[~2012-08-02 11:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-30  4:34 [PATCH 1/2] net: Allow to create links with given ifindex Pavel Emelyanov
2012-07-30  4:36 ` [PATCH 2/2] veth: Allow to create peer link " Pavel Emelyanov
2012-07-30 10:49 ` [PATCH 1/2] net: Allow to create links " Eric W. Biederman
2012-07-30 10:56   ` Eric W. Biederman
2012-07-31  9:03     ` Pavel Emelyanov
2012-07-31 11:58       ` Eric W. Biederman
2012-07-31 13:30         ` Pavel Emelyanov
2012-08-02 10:28         ` Eric Dumazet
2012-08-02 11:09           ` Eric W. Biederman [this message]
2012-08-02 23:37             ` David Miller
2012-08-02 23:26           ` David Miller
2012-08-03  5:45             ` Eric Dumazet
2012-08-03  5:51               ` Eric Dumazet
2012-08-03 23:56               ` David Miller
2012-08-04  7:10                 ` Eric Dumazet
2012-08-04  8:25                   ` David Miller
2012-07-30 11:51   ` Eric Dumazet
2012-07-30 12:33     ` Eric W. Biederman
2012-07-31  9:06       ` Pavel Emelyanov

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=87wr1h35zg.fsf@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=xemul@parallels.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.