From mboxrd@z Thu Jan 1 00:00:00 1970 From: jlayton@poochiereds.net (Jeff Layton) Date: Sat, 25 Apr 2015 19:32:07 -0400 Subject: [lttng-dev] cds_lfht_count_nodes always returns -1 for before/after counts In-Reply-To: <20150425172902.08ca0cdc@tlielax.poochiereds.net> References: <20150425172902.08ca0cdc@tlielax.poochiereds.net> Message-ID: <20150425193207.5465ca20@tlielax.poochiereds.net> On Sat, 25 Apr 2015 17:29:02 -0400 Jeff Layton wrote: > Hi, I have some code using the cds_lfht infrastructure, and recently > added a function to check to see if the table was empty using > cds_lfht_count_nodes. That function just does this: > > rcu_read_lock(); > cds_lfht_count_nodes(ht, &before, &count, &after); > rcu_read_unlock(); > > What I've found though is that when the table is empty and I know that > there are no concurrent inserts going on, the before and after counters > are always set to -1 after this call. > > Is that expected behavior? For the record, I'm using this package from > the Fedora 21 repos: > > userspace-rcu-0.8.1-5.fc21.x86_64 > > Thanks in advance! Nevermind...I figured out my bug. I had thought it was safe to call cds_lfht_del on a node that had never been inserted, but it's clearly not and that throws off the add/del counts. Sorry for the noise! -- Jeff Layton