On Thu, Oct 25, 2018 at 12:15:43PM -0700, Vasily Khoruzhick wrote:
If there's no entry to drop in bucket that corresponds to the hash, early_drop() should look for it in other buckets. But since it increments hash instead of bucket number, it actually looks in the same bucket 8 times: hsize is 16k by default (14 bits) and hash is 32-bit value, so reciprocal_scale(hash, hsize) returns the same value for hash..hash+7 in most cases.
Fix it by increasing bucket number instead of hash and rename _hash to bucket to avoid future confusion.
Applied, thanks.