[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1379980991.3165.37.camel@edumazet-glaptop>
Date: Mon, 23 Sep 2013 17:03:11 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Tom Herbert <therbert@...gle.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org,
jesse.brandeburg@...el.com
Subject: Re: [PATCH 1/2] net: Toeplitz library functions
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.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists