Thread (7 messages) flat view 7 messages, 3 authors, 2012-07-10

Re: [PATCH SLAB 1/2 v3] duplicate the cache name in SLUB's saved_alias list, SLAB, and SLOB

From: Christoph Lameter <hidden>
Date: 2012-07-09 14:01:17
Also in: linux-mm, lkml

I was pointed by Glauber to the slab common code patches. I need some
more time to read the patches. Now I think the slab/slot changes in this
v3 are not needed, and can be ignored.
That may take some kernel cycles. You have a current issue here that needs
to be fixed.
quoted
 	down_write(&slub_lock);
-	s = find_mergeable(size, align, flags, name, ctor);
+	s = find_mergeable(size, align, flags, n, ctor);
 	if (s) {
 		s->refcount++;
 		/*
		......
		up_write(&slub_lock);
		return s;
	}

Here, the function returns without name string n be kfreed.
That is intentional since the string n is still referenced by the entry
that sysfs_slab_alias has created.
But we couldn't kfree n here, because in sysfs_slab_alias(), if
(slab_state < SYS_FS), the name need to be kept valid until
slab_sysfs_init() is finished adding the entry into sysfs.
Right that is why it is not freed and that is what fixes the issue you
see.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help