<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/mm/slab.c, branch linux-2.6.32.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-08-26T23:41:46Z</updated>
<entry>
<title>slab: fix object alignment</title>
<updated>2010-08-26T23:41:46Z</updated>
<author>
<name>Carsten Otte</name>
</author>
<published>2010-08-06T16:19:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=56c1312f85cad17fd4dea02e51398103c722ec47'/>
<id>urn:sha1:56c1312f85cad17fd4dea02e51398103c722ec47</id>
<content type='text'>
commit 1ab335d8f85792e3b107ff8237d53cf64db714df upstream.

This patch fixes alignment of slab objects in case CONFIG_DEBUG_PAGEALLOC is
active.
Before this spot in kmem_cache_create, we have this situation:
- align contains the required alignment of the object
- cachep-&gt;obj_offset is 0 or equals align in case of CONFIG_DEBUG_SLAB
- size equals the size of the object, or object plus trailing redzone in case
  of CONFIG_DEBUG_SLAB

This spot tries to fill one page per object if the object is in certain size
limits, however setting obj_offset to PAGE_SIZE - size does break the object
alignment since size may not be aligned with the required alignment.
This patch simply adds an ALIGN(size, align) to the equation and fixes the
object size detection accordingly.

This code in drivers/s390/cio/qdio_setup_init has lead to incorrectly aligned
slab objects (sizeof(struct qdio_q) equals 1792):
	qdio_q_cache = kmem_cache_create("qdio_q", sizeof(struct qdio_q),
					 256, 0, NULL);

Acked-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Carsten Otte &lt;cotte@de.ibm.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>slab: initialize unused alien cache entry as NULL at alloc_alien_cache().</title>
<updated>2010-03-15T15:49:36Z</updated>
<author>
<name>Haicheng Li</name>
</author>
<published>2010-01-06T07:25:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b36eb52d66d4ac8c4aa00456f5a62ec8aca1a489'/>
<id>urn:sha1:b36eb52d66d4ac8c4aa00456f5a62ec8aca1a489</id>
<content type='text'>
commit f3186a9c51eabe75b2780153ed7f07778d78b16e upstream.

Comparing with existing code, it's a simpler way to use kzalloc_node()
to ensure that each unused alien cache entry is NULL.

CC: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Acked-by: Matt Mackall &lt;mpm@selenic.com&gt;
Signed-off-by: Haicheng Li &lt;haicheng.li@linux.intel.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mm: replace various uses of num_physpages by totalram_pages</title>
<updated>2009-09-22T14:17:38Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2009-09-22T00:03:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4481374ce88ba8f460c8b89f2572027bd27057d0'/>
<id>urn:sha1:4481374ce88ba8f460c8b89f2572027bd27057d0</id>
<content type='text'>
Sizing of memory allocations shouldn't depend on the number of physical
pages found in a system, as that generally includes (perhaps a huge amount
of) non-RAM pages.  The amount of what actually is usable as storage
should instead be used as a basis here.

Some of the calculations (i.e.  those not intending to use high memory)
should likely even use (totalram_pages - totalhigh_pages).

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Acked-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Dave Airlie &lt;airlied@linux.ie&gt;
Cc: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Cc: Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;
Cc: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Cc: Hugh Dickins &lt;hugh.dickins@tiscali.co.uk&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&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>SLAB: Fix lockdep annotations</title>
<updated>2009-06-29T06:57:10Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2009-06-29T06:57:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec5a36f94e7ca4b1f28ae4dd135cd415a704e772'/>
<id>urn:sha1:ec5a36f94e7ca4b1f28ae4dd135cd415a704e772</id>
<content type='text'>
Commit 8429db5... ("slab: setup cpu caches later on when interrupts are
enabled") broke mm/slab.c lockdep annotations:

  [   11.554715] =============================================
  [   11.555249] [ INFO: possible recursive locking detected ]
  [   11.555560] 2.6.31-rc1 #896
  [   11.555861] ---------------------------------------------
  [   11.556127] udevd/1899 is trying to acquire lock:
  [   11.556436]  (&amp;nc-&gt;lock){-.-...}, at: [&lt;ffffffff810c337f&gt;] kmem_cache_free+0xcd/0x25b
  [   11.557101]
  [   11.557102] but task is already holding lock:
  [   11.557706]  (&amp;nc-&gt;lock){-.-...}, at: [&lt;ffffffff810c3cd0&gt;] kfree+0x137/0x292
  [   11.558109]
  [   11.558109] other info that might help us debug this:
  [   11.558720] 2 locks held by udevd/1899:
  [   11.558983]  #0:  (&amp;nc-&gt;lock){-.-...}, at: [&lt;ffffffff810c3cd0&gt;] kfree+0x137/0x292
  [   11.559734]  #1:  (&amp;parent-&gt;list_lock){-.-...}, at: [&lt;ffffffff810c36c7&gt;] __drain_alien_cache+0x3b/0xbd
  [   11.560442]
  [   11.560443] stack backtrace:
  [   11.561009] Pid: 1899, comm: udevd Not tainted 2.6.31-rc1 #896
  [   11.561276] Call Trace:
  [   11.561632]  [&lt;ffffffff81065ed6&gt;] __lock_acquire+0x15ec/0x168f
  [   11.561901]  [&lt;ffffffff81065f60&gt;] ? __lock_acquire+0x1676/0x168f
  [   11.562171]  [&lt;ffffffff81063c52&gt;] ? trace_hardirqs_on_caller+0x113/0x13e
  [   11.562490]  [&lt;ffffffff8150c337&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f
  [   11.562807]  [&lt;ffffffff8106603a&gt;] lock_acquire+0xc1/0xe5
  [   11.563073]  [&lt;ffffffff810c337f&gt;] ? kmem_cache_free+0xcd/0x25b
  [   11.563385]  [&lt;ffffffff8150c8fc&gt;] _spin_lock+0x31/0x66
  [   11.563696]  [&lt;ffffffff810c337f&gt;] ? kmem_cache_free+0xcd/0x25b
  [   11.563964]  [&lt;ffffffff810c337f&gt;] kmem_cache_free+0xcd/0x25b
  [   11.564235]  [&lt;ffffffff8109bf8c&gt;] ? __free_pages+0x1b/0x24
  [   11.564551]  [&lt;ffffffff810c3564&gt;] slab_destroy+0x57/0x5c
  [   11.564860]  [&lt;ffffffff810c3641&gt;] free_block+0xd8/0x123
  [   11.565126]  [&lt;ffffffff810c372e&gt;] __drain_alien_cache+0xa2/0xbd
  [   11.565441]  [&lt;ffffffff810c3ce5&gt;] kfree+0x14c/0x292
  [   11.565752]  [&lt;ffffffff8144a007&gt;] skb_release_data+0xc6/0xcb
  [   11.566020]  [&lt;ffffffff81449cf0&gt;] __kfree_skb+0x19/0x86
  [   11.566286]  [&lt;ffffffff81449d88&gt;] consume_skb+0x2b/0x2d
  [   11.566631]  [&lt;ffffffff8144cbe0&gt;] skb_free_datagram+0x14/0x3a
  [   11.566901]  [&lt;ffffffff81462eef&gt;] netlink_recvmsg+0x164/0x258
  [   11.567170]  [&lt;ffffffff81443461&gt;] sock_recvmsg+0xe5/0xfe
  [   11.567486]  [&lt;ffffffff810ab063&gt;] ? might_fault+0xaf/0xb1
  [   11.567802]  [&lt;ffffffff81053a78&gt;] ? autoremove_wake_function+0x0/0x38
  [   11.568073]  [&lt;ffffffff810d84ca&gt;] ? core_sys_select+0x3d/0x2b4
  [   11.568378]  [&lt;ffffffff81065f60&gt;] ? __lock_acquire+0x1676/0x168f
  [   11.568693]  [&lt;ffffffff81442dc1&gt;] ? sockfd_lookup_light+0x1b/0x54
  [   11.568961]  [&lt;ffffffff81444416&gt;] sys_recvfrom+0xa3/0xf8
  [   11.569228]  [&lt;ffffffff81063c8a&gt;] ? trace_hardirqs_on+0xd/0xf
  [   11.569546]  [&lt;ffffffff8100af2b&gt;] system_call_fastpath+0x16/0x1b#

Fix that up.

Closes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=13654
Tested-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
</content>
</entry>
<entry>
<title>fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b</title>
<updated>2009-06-26T09:10:47Z</updated>
<author>
<name>Paul E. McKenney</name>
</author>
<published>2009-06-25T19:31:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5'/>
<id>urn:sha1:7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5</id>
<content type='text'>
Jesper noted that kmem_cache_destroy() invokes synchronize_rcu() rather than
rcu_barrier() in the SLAB_DESTROY_BY_RCU case, which could result in RCU
callbacks accessing a kmem_cache after it had been destroyed.

Cc: &lt;stable@kernel.org&gt;
Acked-by: Matt Mackall &lt;mpm@selenic.com&gt;
Reported-by: Jesper Dangaard Brouer &lt;hawk@comx.dk&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
</content>
</entry>
<entry>
<title>mm: Extend gfp masking to the page allocator</title>
<updated>2009-06-18T20:12:57Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2009-06-18T03:24:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dcce284a259373f9e5570f2e33f79eca84fcf565'/>
<id>urn:sha1:dcce284a259373f9e5570f2e33f79eca84fcf565</id>
<content type='text'>
The page allocator also needs the masking of gfp flags during boot,
so this moves it out of slab/slub and uses it with the page allocator
as well.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branches 'slab/documentation', 'slab/fixes', 'slob/cleanups' and 'slub/fixes' into for-linus</title>
<updated>2009-06-17T05:30:15Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2009-06-17T05:30:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e03ab9d415c47e1ff485b646f95604d3e3a91708'/>
<id>urn:sha1:e03ab9d415c47e1ff485b646f95604d3e3a91708</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'akpm'</title>
<updated>2009-06-17T02:50:13Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2009-06-17T02:50:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=517d08699b250021303f9a7cf0d758b6dc0748ed'/>
<id>urn:sha1:517d08699b250021303f9a7cf0d758b6dc0748ed</id>
<content type='text'>
* akpm: (182 commits)
  fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset
  fbdev: *bfin*: fix __dev{init,exit} markings
  fbdev: *bfin*: drop unnecessary calls to memset
  fbdev: bfin-t350mcqb-fb: drop unused local variables
  fbdev: blackfin has __raw I/O accessors, so use them in fb.h
  fbdev: s1d13xxxfb: add accelerated bitblt functions
  tcx: use standard fields for framebuffer physical address and length
  fbdev: add support for handoff from firmware to hw framebuffers
  intelfb: fix a bug when changing video timing
  fbdev: use framebuffer_release() for freeing fb_info structures
  radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?
  s3c-fb: CPUFREQ frequency scaling support
  s3c-fb: fix resource releasing on error during probing
  carminefb: fix possible access beyond end of carmine_modedb[]
  acornfb: remove fb_mmap function
  mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF
  mb862xxfb: restrict compliation of platform driver to PPC
  Samsung SoC Framebuffer driver: add Alpha Channel support
  atmel-lcdc: fix pixclock upper bound detection
  offb: use framebuffer_alloc() to allocate fb_info struct
  ...

Manually fix up conflicts due to kmemcheck in mm/slab.c
</content>
</entry>
<entry>
<title>page allocator: slab: use nr_online_nodes to check for a NUMA platform</title>
<updated>2009-06-17T02:47:35Z</updated>
<author>
<name>Mel Gorman</name>
</author>
<published>2009-06-16T22:32:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b6e68bc1baed9b6972a250aba66b8c5276cf6fb1'/>
<id>urn:sha1:b6e68bc1baed9b6972a250aba66b8c5276cf6fb1</id>
<content type='text'>
SLAB currently avoids checking a bitmap repeatedly by checking once and
storing a flag.  When the addition of nr_online_nodes as a cheaper version
of num_online_nodes(), this check can be replaced by nr_online_nodes.

(Christoph did a patch that this is lifted almost verbatim from)

Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Mel Gorman &lt;mel@csn.ul.ie&gt;
Cc: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Reviewed-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Cc: Dave Hansen &lt;dave@linux.vnet.ibm.com&gt;
Cc: Lee Schermerhorn &lt;Lee.Schermerhorn@hp.com&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>page allocator: do not check NUMA node ID when the caller knows the node is valid</title>
<updated>2009-06-17T02:47:32Z</updated>
<author>
<name>Mel Gorman</name>
</author>
<published>2009-06-16T22:31:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6484eb3e2a81807722c5f28efef94d8338b7b996'/>
<id>urn:sha1:6484eb3e2a81807722c5f28efef94d8338b7b996</id>
<content type='text'>
Callers of alloc_pages_node() can optionally specify -1 as a node to mean
"allocate from the current node".  However, a number of the callers in
fast paths know for a fact their node is valid.  To avoid a comparison and
branch, this patch adds alloc_pages_exact_node() that only checks the nid
with VM_BUG_ON().  Callers that know their node is valid are then
converted.

Signed-off-by: Mel Gorman &lt;mel@csn.ul.ie&gt;
Reviewed-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Reviewed-by: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Reviewed-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Acked-by: Paul Mundt &lt;lethal@linux-sh.org&gt;	[for the SLOB NUMA bits]
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Cc: Dave Hansen &lt;dave@linux.vnet.ibm.com&gt;
Cc: Lee Schermerhorn &lt;Lee.Schermerhorn@hp.com&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>
</feed>
