<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/mm/slob.c, branch linux-3.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-12-18T23:02:14Z</updated>
<entry>
<title>sl[au]b: always get the cache from its page in kmem_cache_free()</title>
<updated>2012-12-18T23:02:14Z</updated>
<author>
<name>Glauber Costa</name>
</author>
<published>2012-12-18T22:22:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b9ce5ef49f00daf2254c6953c8d31f79aabccd34'/>
<id>urn:sha1:b9ce5ef49f00daf2254c6953c8d31f79aabccd34</id>
<content type='text'>
struct page already has this information.  If we start chaining caches,
this information will always be more trustworthy than whatever is passed
into the function.

Signed-off-by: Glauber Costa &lt;glommer@parallels.com&gt;
Cc: Christoph Lameter &lt;cl@linux.com&gt;
Cc: David Rientjes &lt;rientjes@google.com&gt;
Cc: Frederic Weisbecker &lt;fweisbec@redhat.com&gt;
Cc: Greg Thelen &lt;gthelen@google.com&gt;
Cc: Johannes Weiner &lt;hannes@cmpxchg.org&gt;
Cc: JoonSoo Kim &lt;js1304@gmail.com&gt;
Cc: KAMEZAWA Hiroyuki &lt;kamezawa.hiroyu@jp.fujitsu.com&gt;
Cc: Mel Gorman &lt;mel@csn.ul.ie&gt;
Cc: Michal Hocko &lt;mhocko@suse.cz&gt;
Cc: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Cc: Rik van Riel &lt;riel@redhat.com&gt;
Cc: Suleiman Souhlal &lt;suleiman@google.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm/sl[aou]b: Common alignment code</title>
<updated>2012-12-11T10:14:28Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-11-28T16:23:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4590685546a374fb0f60682ce0e3a6fd48911d46'/>
<id>urn:sha1:4590685546a374fb0f60682ce0e3a6fd48911d46</id>
<content type='text'>
Extract the code to do object alignment from the allocators.
Do the alignment calculations in slab_common so that the
__kmem_cache_create functions of the allocators do not have
to deal with alignment.

Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm/slob: use min_t() to compare ARCH_SLAB_MINALIGN</title>
<updated>2012-10-31T07:24:22Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2012-10-05T14:55:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=789306e5ad6b3051c263ac2478875efa8bc07462'/>
<id>urn:sha1:789306e5ad6b3051c263ac2478875efa8bc07462</id>
<content type='text'>
The definition of ARCH_SLAB_MINALIGN is architecture dependent
and can be either of type size_t or int. Comparing that value
with ARCH_KMALLOC_MINALIGN can cause harmless warnings on
platforms where they are different. Since both are always
small positive integer numbers, using the size_t type to compare
them is safe and gets rid of the warning.

Without this patch, building ARM collie_defconfig results in:

mm/slob.c: In function '__kmalloc_node':
mm/slob.c:431:152: warning: comparison of distinct pointer types lacks a cast [enabled by default]
mm/slob.c: In function 'kfree':
mm/slob.c:484:153: warning: comparison of distinct pointer types lacks a cast [enabled by default]
mm/slob.c: In function 'ksize':
mm/slob.c:503:153: warning: comparison of distinct pointer types lacks a cast [enabled by default]

Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
[ penberg@kernel.org: updates for master ]
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm/slob: Use free_page instead of put_page for page-size kmalloc allocations</title>
<updated>2012-10-31T06:53:54Z</updated>
<author>
<name>Ezequiel Garcia</name>
</author>
<published>2012-10-22T12:04:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8cf9864b1382851d90c7c505f8441c8928f1469e'/>
<id>urn:sha1:8cf9864b1382851d90c7c505f8441c8928f1469e</id>
<content type='text'>
When freeing objects, the slob allocator currently free empty pages
calling __free_pages(). However, page-size kmallocs are disposed
using put_page() instead.

It makes no sense to call put_page() for kernel pages that are provided
by the object allocator, so we shouldn't be doing this ourselves.

This is based on:
commit d9b7f22623b5fa9cc189581dcdfb2ac605933bf4
Author: Glauber Costa &lt;glommer@parallels.com&gt;
slub: use free_page instead of put_page for freeing kmalloc allocation

Cc: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Cc: Pekka Enberg &lt;penberg@kernel.org&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
Acked-by: Glauber Costa &lt;glommer@parallels.com&gt;
Signed-off-by: Ezequiel Garcia &lt;elezegarcia@gmail.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm/sl[aou]b: Move common kmem_cache_size() to slab.h</title>
<updated>2012-10-31T06:52:15Z</updated>
<author>
<name>Ezequiel Garcia</name>
</author>
<published>2012-10-19T12:33:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=242860a47a75b933a79a30f6a40bf4858f4a3ecc'/>
<id>urn:sha1:242860a47a75b933a79a30f6a40bf4858f4a3ecc</id>
<content type='text'>
This function is identically defined in all three allocators
and it's trivial to move it to slab.h

Since now it's static, inline, header-defined function
this patch also drops the EXPORT_SYMBOL tag.

Cc: Pekka Enberg &lt;penberg@kernel.org&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Ezequiel Garcia &lt;elezegarcia@gmail.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm/slob: Use object_size field in kmem_cache_size()</title>
<updated>2012-10-31T06:51:35Z</updated>
<author>
<name>Ezequiel Garcia</name>
</author>
<published>2012-10-19T12:33:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe74fe2bf293d061826f0d7afc2ca8456bdbb40e'/>
<id>urn:sha1:fe74fe2bf293d061826f0d7afc2ca8456bdbb40e</id>
<content type='text'>
Fields object_size and size are not the same: the latter might include
slab metadata. Return object_size field in kmem_cache_size().
Also, improve trace accuracy by correctly tracing reported size.

Cc: Pekka Enberg &lt;penberg@kernel.org&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Signed-off-by: Ezequiel Garcia &lt;elezegarcia@gmail.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm/slob: Drop usage of page-&gt;private for storing page-sized allocations</title>
<updated>2012-10-31T06:50:43Z</updated>
<author>
<name>Ezequiel Garcia</name>
</author>
<published>2012-10-19T12:33:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=999d8795d438d396936811b185428d70b7b7de6d'/>
<id>urn:sha1:999d8795d438d396936811b185428d70b7b7de6d</id>
<content type='text'>
This field was being used to store size allocation so it could be
retrieved by ksize(). However, it is a bad practice to not mark a page
as a slab page and then use fields for special purposes.
There is no need to store the allocated size and
ksize() can simply return PAGE_SIZE &lt;&lt; compound_order(page).

Cc: Pekka Enberg &lt;penberg@kernel.org&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Ezequiel Garcia &lt;elezegarcia@gmail.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'slab/tracing' into slab/for-linus</title>
<updated>2012-10-03T06:57:17Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2012-10-03T06:57:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2087be35a8ed101c1e748ef688c889419c69829'/>
<id>urn:sha1:e2087be35a8ed101c1e748ef688c889419c69829</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'slab/common-for-cgroups' into slab/for-linus</title>
<updated>2012-10-03T06:56:37Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2012-10-03T06:56:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4178cdddd4cb860a17f363fe13264fff03da7f2'/>
<id>urn:sha1:f4178cdddd4cb860a17f363fe13264fff03da7f2</id>
<content type='text'>
Fix up a trivial conflict with NUMA_NO_NODE cleanups.

Conflicts:
	mm/slob.c

Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm, slob: fix build breakage in __kmalloc_node_track_caller</title>
<updated>2012-09-26T06:33:49Z</updated>
<author>
<name>David Rientjes</name>
</author>
<published>2012-09-25T19:53:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=82bd5508b4080e851ac1a9b62bed6d727b1b4a84'/>
<id>urn:sha1:82bd5508b4080e851ac1a9b62bed6d727b1b4a84</id>
<content type='text'>
On Sat, 8 Sep 2012, Ezequiel Garcia wrote:

&gt; @@ -454,15 +455,35 @@ void *__kmalloc_node(size_t size, gfp_t gfp, int node)
&gt;  			gfp |= __GFP_COMP;
&gt;  		ret = slob_new_pages(gfp, order, node);
&gt;
&gt; -		trace_kmalloc_node(_RET_IP_, ret,
&gt; +		trace_kmalloc_node(caller, ret,
&gt;  				   size, PAGE_SIZE &lt;&lt; order, gfp, node);
&gt;  	}
&gt;
&gt;  	kmemleak_alloc(ret, size, 1, gfp);
&gt;  	return ret;
&gt;  }
&gt; +
&gt; +void *__kmalloc_node(size_t size, gfp_t gfp, int node)
&gt; +{
&gt; +	return __do_kmalloc_node(size, gfp, node, _RET_IP_);
&gt; +}
&gt;  EXPORT_SYMBOL(__kmalloc_node);
&gt;
&gt; +#ifdef CONFIG_TRACING
&gt; +void *__kmalloc_track_caller(size_t size, gfp_t gfp, unsigned long caller)
&gt; +{
&gt; +	return __do_kmalloc_node(size, gfp, NUMA_NO_NODE, caller);
&gt; +}
&gt; +
&gt; +#ifdef CONFIG_NUMA
&gt; +void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
&gt; +					int node, unsigned long caller)
&gt; +{
&gt; +	return __do_kmalloc_node(size, gfp, node, caller);
&gt; +}
&gt; +#endif

This breaks Pekka's slab/next tree with this:

mm/slob.c: In function '__kmalloc_node_track_caller':
mm/slob.c:488: error: 'gfp' undeclared (first use in this function)
mm/slob.c:488: error: (Each undeclared identifier is reported only once
mm/slob.c:488: error: for each function it appears in.)

mm, slob: fix build breakage in __kmalloc_node_track_caller

"mm, slob: Add support for kmalloc_track_caller()" breaks the build
because gfp is undeclared.  Fix it.

Acked-by: Ezequiel Garcia &lt;elezegarcia@gmail.com&gt;
Signed-off-by: David Rientjes &lt;rientjes@google.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
</feed>
