[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a388a8018b09429d93a4a6b6852c70b2@AcuMS.aculab.com>
Date: Wed, 16 Jun 2021 10:19:15 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Amit Klein' <aksecurity@...il.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"stable@...r.kernel.org" <stable@...r.kernel.org>,
Eric Dumazet <edumazet@...gle.com>, Willy Tarreau <w@....eu>,
"David S. Miller" <davem@...emloft.net>,
Sasha Levin <sashal@...nel.org>
Subject: RE: [PATCH 5.4 175/244] inet: use bigger hash table for IP ID
generation
From: Amit Klein
> Sent: 16 June 2021 10:17
...
> -#define IP_IDENTS_SZ 2048u
> -
> +/* Hash tables of size 2048..262144 depending on RAM size.
> + * Each bucket uses 8 bytes.
> + */
> +static u32 ip_idents_mask __read_mostly;
...
> + /* For modern hosts, this will use 2 MB of memory */
> + idents_hash = alloc_large_system_hash("IP idents",
> + sizeof(*ip_idents) + sizeof(*ip_tstamps),
> + 0,
> + 16, /* one bucket per 64 KB */
> + HASH_ZERO,
> + NULL,
> + &ip_idents_mask,
> + 2048,
> + 256*1024);
> +
Can someone explain why this is a good idea for a 'normal' system?
Why should my desktop system 'waste' 2MB of memory on a massive
hash table that I don't need.
It might be needed by systems than handle massive numbers
of concurrent connections - but that isn't 'most systems'.
Surely it would be better to detect when the number of entries
is comparable to the table size and then resize the table.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists