• Ying Xue's avatar
    lib/rhashtable: allow user to set the minimum shifts of shrinking · 94000176
    Ying Xue authored
    Although rhashtable library allows user to specify a quiet big size
    for user's created hash table, the table may be shrunk to a
    very small size - HASH_MIN_SIZE(4) after object is removed from
    the table at the first time. Subsequently, even if the total amount
    of objects saved in the table is quite lower than user's initial
    setting in a long time, the hash table size is still dynamically
    adjusted by rhashtable_shrink() or rhashtable_expand() each time
    object is inserted or removed from the table. However, as
    synchronize_rcu() has to be called when table is shrunk or
    expanded by the two functions, we should permit user to set the
    minimum table size through configuring the minimum number of shifts
    according to user specific requirement, avoiding these expensive
    actions of shrinking or expanding because of calling synchronize_rcu().
    Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
    Acked-by: default avatarThomas Graf <tgraf@suug.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    94000176
rhashtable.c 20.2 KB