[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z0LGe85TyhHrFICR@gondor.apana.org.au>
Date: Sun, 24 Nov 2024 14:23:55 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Kent Overstreet <kent.overstreet@...ux.dev>
Cc: Thomas Graf <tgraf@...g.ch>, netdev@...r.kernel.org,
Neil Brown <neilb@...e.de>
Subject: Re: rhashtable issue - -EBUSY
On Sat, Nov 23, 2024 at 10:30:46PM -0500, Kent Overstreet wrote:
>
> Well, reading the code that would appear to be -EEXIST, that's entirely
> separate from the path you describe below.
I don't think I explained myself properly. I'm not talking
about inserting the same pointer/object into the rhashtable,
but two different pointer/objects that have identical keys.
IOW they will always hash to the same value regardless of how
you tweak the hash function. This is not allowed with rhashtable
and will lead to exactly what you're seeing. If you need to
do this, then you should use rhltable.
> With the default hash function (jhash), I suspect this isn't so
> impossible as you think - I had issues with jhash when doing cuckoo
> hashing, and I had to switch to siphash there....
Unless you have a hashtable that is terabytes in size, I really
doubt this is what you're seeing.
But do prove me wrong please, just add some debug code that stops
the whole machine when this happens and then dumps out the hash
table keys + hashes in the chain that exceeds 16 while the whole
table is less than 75% full.
Cheers,
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists