Thread (34 messages) 34 messages, 7 authors, 2015-12-18

Re: rhashtable: Prevent spurious EBUSY errors on insertion

From: Xin Long <lucien.xin@gmail.com>
Date: 2015-12-17 16:07:12
Also in: lkml

On Thu, Dec 17, 2015 at 5:00 PM, Xin Long [off-list ref] wrote:
On Thu, Dec 17, 2015 at 4:48 PM, Herbert Xu [off-list ref] wrote:
quoted
On Thu, Dec 17, 2015 at 04:46:00PM +0800, Xin Long wrote:
quoted
sorry for late test, but unfortunately, my case with rhashtalbe still
return EBUSY.
I added some debug code in rhashtable_insert_rehash(), and found:
*future_tbl is null*

fail:
        /* Do not fail the insert if someone else did a rehash. */
        if (likely(rcu_dereference_raw(tbl->future_tbl))) {
                printk("future_tbl is there\n");
                return 0;
        } else {
                printk("future_tbl is null\n");
        }

any idea why ?
That's presumably because you got a genuine double rehash.

Until you post your code we can't really help you.
i wish i could , but my codes is a big patch for sctp, and this issue
happens in a special stress test based on this patch.
im trying to think how i can show you. :)
I'm just wondering, why do not we handle the genuine double rehash
issue inside rhashtable? i mean it's just a temporary error that a
simple retry may fix it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help