Subject: Re: [PATCH net 1/2] rhashtable: unconditionally grow when max_shift is not specified

From: Daniel Borkmann <[email-masked]>
Date: Wed, 25 Feb 2015 17:44:50 +0100

On 02/25/2015 05:36 PM, Daniel Borkmann wrote:
> On 02/25/2015 05:28 PM, Thomas Graf wrote:
...
>> I assume you wanted this chunk in patch 2.
>
> No, it's in this chunk on purpose. ;)
>
> I've tried to explain it here in the commit message:
>
>    Given that the test case verifies shrinks/expands manually, we also
>    must remove pointer to the helper functions to explicitly avoid
>    parallel resizing on insertions/deletions. test_bucket_stats() and
>    test_rht_lookup() could also be wrapped around rhashtable mutex to
>    explicitly synchronize a walk from resizing, but I think that defeats
>    the actual test case which intended to have explicit test steps,
>    i.e. 1) inserts, 2) expands, 3) shrinks, 4) deletions, with object
>    verification after each stage.

Note, the reason of this exercise is, because the semantics of
max_shift == 0 have changed. A resize on inserts _before_ this
change was impossible, now it becomes possible, so we have to
disallow resizes (only) for the test case module specifically.