Re: 2.6.27-rc4-git1: Reported regressions from 2.6.26

Linus Torvalds
2008-08-24T18:03:09Z

On Sat, 23 Aug 2008, Rafael J. Wysocki wrote:
>
> Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=11410
> Subject : SLUB list_lock vs obj_hash.lock...
> Submitter : Daniel J Blueman <daniel.blueman@gmail.com>
> Date : 2008-08-22 21:48 (2 days old)
> References : http://marc.info/?l=linux-kernel&m=121944176609042&w=4

This one now has a suggested patch for Daniel to try from Vegard, but no
reply yet:

http://marc.info/?l=linux-kernel&m=121946972307110&w=4

Vegard, I think your patch is a bit odd, though. The result of your patch
is

- first loop:

hlist_for_each_entry_safe(obj, node, tmp, &db->list, node) {
hlist_del(&obj->node);
hlist_add_head(&obj->node, &freelist);
}

and quite frankly, I don't see what the difference between that and a
something like a simple

struct hlist_node *first = bd->list.first;
if (first) {
bd->list.first = NULL;
first->pprev = &first;
}

really is?

I dunno. We don't have list splicing ops for the hlist things.

Linus