<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/include/linux/slab.h, branch v3.13-rc5</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v3.13-rc5</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v3.13-rc5'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2013-11-24T19:01:16+00:00</updated>
<entry>
<title>slab.h: remove duplicate kmalloc declaration and fix kernel-doc warnings</title>
<updated>2013-11-24T19:01:16+00:00</updated>
<author>
<name>Randy Dunlap</name>
<email>rdunlap@infradead.org</email>
</author>
<published>2013-11-23T02:14:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7e3528c3660a2e8602abc7858b0994d611f74bc3'/>
<id>urn:sha1:7e3528c3660a2e8602abc7858b0994d611f74bc3</id>
<content type='text'>
Fix kernel-doc warning for duplicate definition of 'kmalloc':

  Documentation/DocBook/kernel-api.xml:9483: element refentry: validity error : ID API-kmalloc already defined
  &lt;refentry id="API-kmalloc"&gt;

Also combine the kernel-doc info from the 2 kmalloc definitions into one
block and remove the "see kcalloc" comment since kmalloc now contains the
@flags info.

Signed-off-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux</title>
<updated>2013-11-22T16:10:34+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-11-22T16:10:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=24f971abbda045c24d5d6f2438a7785567d2fde9'/>
<id>urn:sha1:24f971abbda045c24d5d6f2438a7785567d2fde9</id>
<content type='text'>
Pull SLAB changes from Pekka Enberg:
 "The patches from Joonsoo Kim switch mm/slab.c to use 'struct page' for
  slab internals similar to mm/slub.c.  This reduces memory usage and
  improves performance:

    https://lkml.org/lkml/2013/10/16/155

  Rest of the changes are bug fixes from various people"

* 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux: (21 commits)
  mm, slub: fix the typo in mm/slub.c
  mm, slub: fix the typo in include/linux/slub_def.h
  slub: Handle NULL parameter in kmem_cache_flags
  slab: replace non-existing 'struct freelist *' with 'void *'
  slab: fix to calm down kmemleak warning
  slub: proper kmemleak tracking if CONFIG_SLUB_DEBUG disabled
  slab: rename slab_bufctl to slab_freelist
  slab: remove useless statement for checking pfmemalloc
  slab: use struct page for slab management
  slab: replace free and inuse in struct slab with newly introduced active
  slab: remove SLAB_LIMIT
  slab: remove kmem_bufctl_t
  slab: change the management method of free objects of the slab
  slab: use __GFP_COMP flag for allocating slab pages
  slab: use well-defined macro, virt_to_slab()
  slab: overloading the RCU head over the LRU for RCU free
  slab: remove cachep in struct slab_rcu
  slab: remove nodeid in struct slab
  slab: remove colouroff in struct slab
  slab: change return type of kmem_getpages() to struct page
  ...
</content>
</entry>
<entry>
<title>slab: overloading the RCU head over the LRU for RCU free</title>
<updated>2013-10-24T17:17:31+00:00</updated>
<author>
<name>Joonsoo Kim</name>
<email>iamjoonsoo.kim@lge.com</email>
</author>
<published>2013-10-24T01:07:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=68126702b419fd26ef4946e314bb3a1f57d3a53f'/>
<id>urn:sha1:68126702b419fd26ef4946e314bb3a1f57d3a53f</id>
<content type='text'>
With build-time size checking, we can overload the RCU head over the LRU
of struct page to free pages of a slab in rcu context. This really help to
implement to overload the struct slab over the struct page and this
eventually reduce memory usage and cache footprint of the SLAB.

Acked-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Joonsoo Kim &lt;iamjoonsoo.kim@lge.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@iki.fi&gt;
</content>
</entry>
<entry>
<title>slab: Use correct GFP_DMA constant</title>
<updated>2013-09-04T20:11:42+00:00</updated>
<author>
<name>Christoph Lameter</name>
<email>cl@linux.com</email>
</author>
<published>2013-09-04T19:58:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=23774a2f6fee0848503bfb8004eeeb5adef94f5c'/>
<id>urn:sha1:23774a2f6fee0848503bfb8004eeeb5adef94f5c</id>
<content type='text'>
On Thu, 5 Sep 2013, kbuild test robot wrote:
&gt; &gt;&gt; include/linux/slab.h:433:53: sparse: restricted gfp_t degrades to integer
&gt;    429	static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
&gt;    430	{
&gt;    431	#ifndef CONFIG_SLOB
&gt;    432		if (__builtin_constant_p(size) &amp;&amp;
&gt;  &gt; 433			size &lt;= KMALLOC_MAX_CACHE_SIZE &amp;&amp; !(flags &amp; SLAB_CACHE_DMA)) {
&gt;    434			int i = kmalloc_index(size);
&gt;    435

flags is of type gfp_t and not a slab internal flag. Therefore
use GFP_DMA.

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/sl[aou]b: Move kmallocXXX functions to common code</title>
<updated>2013-09-04T17:51:33+00:00</updated>
<author>
<name>Christoph Lameter</name>
<email>cl@linux.com</email>
</author>
<published>2013-09-04T16:35:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f1b6eb6e6be149b40ebb013f5bfe2ac86b6f1c1b'/>
<id>urn:sha1:f1b6eb6e6be149b40ebb013f5bfe2ac86b6f1c1b</id>
<content type='text'>
The kmalloc* functions of all slab allcoators are similar now so
lets move them into slab.h. This requires some function naming changes
in slob.

As a results of this patch there is a common set of functions for
all allocators. Also means that kmalloc_large() is now available
in general to perform large order allocations that go directly
via the page allocator. kmalloc_large() can be substituted if
kmalloc() throws warnings because of too large allocations.

kmalloc_large() has exactly the same semantics as kmalloc but
can only used for allocations &gt; PAGE_SIZE.

Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>slab: add kmalloc() to kernel API documentation</title>
<updated>2013-07-07T16:02:59+00:00</updated>
<author>
<name>Michael Opdenacker</name>
<email>michael.opdenacker@free-electrons.com</email>
</author>
<published>2013-06-25T16:16:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e7efa615ccf78394338144ff0187be331240748a'/>
<id>urn:sha1:e7efa615ccf78394338144ff0187be331240748a</id>
<content type='text'>
At the moment, kmalloc() isn't even listed in the kernel API
documentation (DocBook/kernel-api.html after running "make htmldocs").

Another issue is that the documentation for kmalloc_node()
refers to kcalloc()'s documentation to describe its 'flags' parameter,
while kcalloc() refered to kmalloc()'s documentation, which doesn't exist!

This patch is a proposed fix for this. It also removes the documentation
for kmalloc() in include/linux/slob_def.h which isn't included to
generate the documentation anyway. This way, kmalloc() is described
in only one place.

Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Acked-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Signed-off-by: Michael Opdenacker &lt;michael.opdenacker@free-electrons.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>slob: Rework #ifdeffery in slab.h</title>
<updated>2013-06-18T15:34:43+00:00</updated>
<author>
<name>Christoph Lameter</name>
<email>cl@linux.com</email>
</author>
<published>2013-06-14T19:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=069e2b351de67e7a837b15b3d26c65c19b790cc3'/>
<id>urn:sha1:069e2b351de67e7a837b15b3d26c65c19b790cc3</id>
<content type='text'>
Make the SLOB specific stuff harmonize more with the way the other allocators
do it. Create the typical kmalloc constants for that purpose. SLOB does not
support it but the constants help us avoid #ifdefs.

Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>slab: Handle ARCH_DMA_MINALIGN correctly</title>
<updated>2013-02-06T18:32:13+00:00</updated>
<author>
<name>Christoph Lameter</name>
<email>cl@linux.com</email>
</author>
<published>2013-02-05T16:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c601fd6956e92b0eb268d4af754073c76155b99d'/>
<id>urn:sha1:c601fd6956e92b0eb268d4af754073c76155b99d</id>
<content type='text'>
James Hogan hit boot problems in next-20130204 on Meta:

  META213-Thread0 DSP [LogF] kobject (4fc03980): tried to init an initialized object, something is seriously wrong.
  META213-Thread0 DSP [LogF]
  META213-Thread0 DSP [LogF] Call trace:
  META213-Thread0 DSP [LogF] [&lt;4000888c&gt;] _show_stack+0x68/0x7c
  META213-Thread0 DSP [LogF] [&lt;400088b4&gt;] _dump_stack+0x14/0x28
  META213-Thread0 DSP [LogF] [&lt;40103794&gt;] _kobject_init+0x58/0x9c
  META213-Thread0 DSP [LogF] [&lt;40103810&gt;] _kobject_create+0x38/0x64
  META213-Thread0 DSP [LogF] [&lt;40103eac&gt;] _kobject_create_and_add+0x14/0x8c
  META213-Thread0 DSP [LogF] [&lt;40190ac4&gt;] _mnt_init+0xd8/0x220
  META213-Thread0 DSP [LogF] [&lt;40190508&gt;] _vfs_caches_init+0xb0/0x160
  META213-Thread0 DSP [LogF] [&lt;401851f4&gt;] _start_kernel+0x274/0x340
  META213-Thread0 DSP [LogF] [&lt;40188424&gt;] _metag_start_kernel+0x58/0x6c
  META213-Thread0 DSP [LogF] [&lt;40000044&gt;] __start+0x44/0x48
  META213-Thread0 DSP [LogF]
  META213-Thread0 DSP [LogF] devtmpfs: initialized
  META213-Thread0 DSP [LogF] L2 Cache: Not present
  META213-Thread0 DSP [LogF] BUG: failure at fs/sysfs/dir.c:736/sysfs_read_ns_type()!
  META213-Thread0 DSP [LogF] Kernel panic - not syncing: BUG!
  META213-Thread0 DSP [Thread Exit] Thread has exited - return code = 4294967295

And bisected the problem to commit 95a05b4 ("slab: Common constants for
kmalloc boundaries").

As it turns out, a fixed KMALLOC_SHIFT_LOW does not work for arches with
higher alignment requirements.

Determine KMALLOC_SHIFT_LOW from ARCH_DMA_MINALIGN instead.

Reported-and-tested-by: James Hogan &lt;james.hogan@imgtec.com&gt;
Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>slab: Common definition for the array of kmalloc caches</title>
<updated>2013-02-01T10:32:07+00:00</updated>
<author>
<name>Christoph Lameter</name>
<email>cl@linux.com</email>
</author>
<published>2013-01-10T19:12:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9425c58e5445277699ff3c2a87bac1cfebc1b48d'/>
<id>urn:sha1:9425c58e5445277699ff3c2a87bac1cfebc1b48d</id>
<content type='text'>
Have a common definition fo the kmalloc cache arrays in
SLAB and SLUB

Acked-by: Glauber Costa &lt;glommer@parallels.com&gt;
Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>slab: Common constants for kmalloc boundaries</title>
<updated>2013-02-01T10:32:07+00:00</updated>
<author>
<name>Christoph Lameter</name>
<email>cl@linux.com</email>
</author>
<published>2013-01-10T19:14:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=95a05b428cc675694321c8f762591984f3fd2b1e'/>
<id>urn:sha1:95a05b428cc675694321c8f762591984f3fd2b1e</id>
<content type='text'>
Standardize the constants that describe the smallest and largest
object kept in the kmalloc arrays for SLAB and SLUB.

Differentiate between the maximum size for which a slab cache is used
(KMALLOC_MAX_CACHE_SIZE) and the maximum allocatable size
(KMALLOC_MAX_SIZE, KMALLOC_MAX_ORDER).

Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
</feed>
