public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Tom Herbert <therbert@google.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org, jesse.brandeburg@intel.com
Subject: Re: [PATCH 1/2] net: Toeplitz library functions
Date: Mon, 23 Sep 2013 17:03:11 -0700	[thread overview]
Message-ID: <1379980991.3165.37.camel@edumazet-glaptop> (raw)
In-Reply-To: <alpine.DEB.2.02.1309231535030.23896@tomh.mtv.corp.google.com>

On Mon, 2013-09-23 at 15:41 -0700, Tom Herbert wrote:

> +#ifdef CONFIG_NET_TOEPLITZ
> +	toeplitz_net = toeplitz_alloc();
> +	if (!toeplitz_net)
> +		goto out;
> +
> +	toeplitz_init(toeplitz_net, NULL);
> +#endif
> +

Hmm

1) Security alert here.

Many devices (lets say Android phones) have no entropy at this point,
all devices will have same toeplitz key.

Check build_ehash_secret() for a possible point for the feeding of the
key. (and commit 08dcdbf6a7b9d14c2302c5bd0c5390ddf122f664 )

If hardware toeplitz is ever used, we want to make sure every host uses
a private and hidden Toeplitz key.

2) Also it seems a given tuple would hash the same on different
namespaces. Could be a problem if one particular TCP hash bucket is
holding thousand of sockets.

3) jhash() is fast, there is no possible cache line misses

  With your implementation, toeplitz hashing 36 bytes could have a cost
of 36 additional cache line misses.

You do not see that on TCP_RR test because cpu caches are preloaded, but
it will show on latency sensitive workload.

  reply	other threads:[~2013-09-24  0:03 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-23 22:41 [PATCH 1/2] net: Toeplitz library functions Tom Herbert
2013-09-24  0:03 ` Eric Dumazet [this message]
2013-09-24  1:39   ` David Miller
2013-09-24  2:30   ` Hannes Frederic Sowa
2013-09-24  3:35     ` Hannes Frederic Sowa
2013-09-24  5:38       ` Eric Dumazet
2013-09-24  5:45         ` Hannes Frederic Sowa
2013-09-24 13:19           ` [PATCH] net: net_secret should not depend on TCP Eric Dumazet
2013-09-24 15:13             ` Hannes Frederic Sowa
2013-09-24 15:22               ` Eric Dumazet
2013-09-24 15:28                 ` Hannes Frederic Sowa
2013-09-24 15:46                   ` Eric Dumazet
2013-09-24 23:51             ` Hannes Frederic Sowa
2013-09-28 22:20               ` David Miller
2013-09-25  9:00             ` [PATCH RFC] random: introduce get_random_bytes_busy_wait_initialized Hannes Frederic Sowa
2013-09-25 12:06               ` Eric Dumazet
2013-09-25 13:35                 ` Hannes Frederic Sowa
2013-10-02 15:10               ` Theodore Ts'o
2013-10-02 17:18                 ` Hannes Frederic Sowa
2013-10-02 19:40                   ` Theodore Ts'o
2013-09-24 16:01         ` [PATCH 1/2] net: Toeplitz library functions Hannes Frederic Sowa
2013-09-24 16:14           ` Eric Dumazet
2013-09-24 16:35             ` Tom Herbert
2013-09-24 16:46               ` Eric Dumazet
2013-09-24 17:02                 ` Ben Hutchings
2013-09-24 17:03                 ` Tom Herbert
2013-09-24 17:34                   ` Eric Dumazet
2013-09-24 17:37                     ` Rick Jones
2013-09-24 17:44                       ` Eric Dumazet
2013-09-24 18:02                     ` Tom Herbert
2013-09-24 18:48                       ` David Miller
2013-09-24 19:42                       ` Hannes Frederic Sowa
2013-09-24  8:32 ` David Laight
2013-09-24 12:24   ` Eric Dumazet
2013-09-24 15:22   ` Tom Herbert
2013-09-24 15:29     ` Eric Dumazet
2013-09-24 15:39     ` David Miller
2013-09-24 15:54       ` Tom Herbert
2013-09-24 16:00         ` Hannes Frederic Sowa
2013-09-24 16:10         ` Eric Dumazet
2013-09-24 18:03         ` David Miller
2013-09-24 18:06           ` Tom Herbert
2013-09-24 18:10           ` Ben Hutchings
2013-09-24 18:24             ` Tom Herbert
2013-09-24 19:14               ` Eric Dumazet
2013-09-24 18:49             ` David Miller
2013-09-24 18:48           ` Jesse Brandeburg
2013-09-24 19:04             ` Tom Herbert
2013-09-24 16:38   ` Ben Hutchings
2013-09-24 16:32 ` Ben Hutchings

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=1379980991.3165.37.camel@edumazet-glaptop \
    --to=eric.dumazet@gmail.com \
    --cc=davem@davemloft.net \
    --cc=jesse.brandeburg@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=therbert@google.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