Re: [PATCH v7 01/16] hashtable: introduce a small and naive hashtable

From
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date
2012-10-29 16:14:19
Also in
dm-devel, linux-mm, linux-nfs, lkml
Reply to
Sasha Levin, 2012-10-29
* Sasha Levin (levinsasha928@gmail.com) wrote:
On Mon, Oct 29, 2012 at 7:29 AM, Mathieu Desnoyers
[off-list ref] wrote:
quoted
* Sasha Levin (levinsasha928@gmail.com) wrote:
quoted
+
+     for (i = 0; i < sz; i++)
+             INIT_HLIST_HEAD(&ht[sz]);
ouch. How did this work ? Has it been tested at all ?

sz -> i
Funny enough, it works perfectly. Generally as a test I boot the
kernel in a VM and let it fuzz with trinity for a bit, doing that with
the code above worked flawlessly.

While it works, it's obviously wrong. Why does it work though? Usually
there's a list op happening pretty soon after that which brings the
list into proper state.

I've been playing with a patch that adds a magic value into list_head
if CONFIG_DEBUG_LIST is set, and checks that magic in the list debug
code in lib/list_debug.c.

Does it sound like something useful? If so I'll send that patch out.
Most of the calls to this initialization function apply it on zeroed
memory (static/kzalloc'd...), which makes it useless. I'd actually be in
favor of removing those redundant calls (as I pointed out in another
email), and document that zeroed memory don't need to be explicitly
initialized.

Those sites that need to really reinitialize memory, or initialize it
(if located on the stack or in non-zeroed dynamically allocated memory)
could use a memset to 0, which will likely be faster than setting to
NULL on many architectures.

About testing, I'd recommend taking the few sites that still need the
initialization function, and just initialize the array with garbage
before calling the initialization function. Things should blow up quite
quickly. Doing it as a one-off thing might be enough to catch any issue.
I don't think we need extra magic numbers to catch issues in this rather
obvious init function.

Thanks,

Mathieu

Thanks,
Sasha
-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Thread (61 messages) 61 messages, 8 authors, last reply 2012-10-29
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help