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
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.