|
@@ -736,6 +736,18 @@ int rhashtable_init(struct rhashtable *ht,
|
|
|
|
|
|
ht->p.min_size = max(ht->p.min_size, HASH_MIN_SIZE);
|
|
|
|
|
|
+ /* The maximum (not average) chain length grows with the
|
|
|
+ * size of the hash table, at a rate of (log N)/(log log N).
|
|
|
+ * The value of 16 is selected so that even if the hash
|
|
|
+ * table grew to 2^32 you would not expect the maximum
|
|
|
+ * chain length to exceed it unless we are under attack
|
|
|
+ * (or extremely unlucky).
|
|
|
+ *
|
|
|
+ * As this limit is only to detect attacks, we don't need
|
|
|
+ * to set it to a lower value as you'd need the chain
|
|
|
+ * length to vastly exceed 16 to have any real effect
|
|
|
+ * on the system.
|
|
|
+ */
|
|
|
if (!params->insecure_elasticity)
|
|
|
ht->elasticity = 16;
|
|
|
|