<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/mm/slab.c, branch linux-2.6.34.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.34.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.34.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-08-26T23:43:40Z</updated>
<entry>
<title>slab: fix object alignment</title>
<updated>2010-08-26T23:43:40Z</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=7fbb3878741d7bdcec9764f9c42a103047117c68'/>
<id>urn:sha1:7fbb3878741d7bdcec9764f9c42a103047117c68</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: Generify kernel pointer validation</title>
<updated>2010-04-09T17:09:50Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2010-04-07T16:23:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc1c183353a113c71675fecd0485e5aa0fe68d72'/>
<id>urn:sha1:fc1c183353a113c71675fecd0485e5aa0fe68d72</id>
<content type='text'>
As suggested by Linus, introduce a kern_ptr_validate() helper that does some
sanity checks to make sure a pointer is a valid kernel pointer.  This is a
preparational step for fixing SLUB kmem_ptr_validate().

Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Cc: David Rientjes &lt;rientjes@google.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
Cc: Nick Piggin &lt;npiggin@suse.de&gt;
Signed-off-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/cleanups', 'slab/failslab', 'slab/fixes' and 'slub/percpu' into slab-for-linus</title>
<updated>2010-03-04T10:07:50Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2010-03-04T10:07:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2b093f3e9262353558c6f89510ab2d286b28287'/>
<id>urn:sha1:e2b093f3e9262353558c6f89510ab2d286b28287</id>
<content type='text'>
</content>
</entry>
<entry>
<title>failslab: add ability to filter slab caches</title>
<updated>2010-02-26T17:19:39Z</updated>
<author>
<name>Dmitry Monakhov</name>
</author>
<published>2010-02-26T06:36:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c13dd3b48fcb6fbe44f241eb11a057ecd1cba75'/>
<id>urn:sha1:4c13dd3b48fcb6fbe44f241eb11a057ecd1cba75</id>
<content type='text'>
This patch allow to inject faults only for specific slabs.
In order to preserve default behavior cache filter is off by
default (all caches are faulty).

One may define specific set of slabs like this:
# mark skbuff_head_cache as faulty
echo 1 &gt; /sys/kernel/slab/skbuff_head_cache/failslab
# Turn on cache filter (off by default)
echo 1 &gt; /sys/kernel/debug/failslab/cache-filter
# Turn on fault injection
echo 1 &gt; /sys/kernel/debug/failslab/times
echo 1 &gt; /sys/kernel/debug/failslab/probability

Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Acked-by: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
</content>
</entry>
<entry>
<title>slab: fix regression in touched logic</title>
<updated>2010-01-30T13:02:39Z</updated>
<author>
<name>Nick Piggin</name>
</author>
<published>2010-01-27T11:27:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=44b57f1cc72a4a30b31f11b07a927d1534f1b93d'/>
<id>urn:sha1:44b57f1cc72a4a30b31f11b07a927d1534f1b93d</id>
<content type='text'>
When factoring common code into transfer_objects in commit 3ded175 ("slab: add
transfer_objects() function"), the 'touched' logic got a bit broken. When
refilling from the shared array (taking objects from the shared array), we are
making use of the shared array so it should be marked as touched.

Subsequently pulling an element from the cpu array and allocating it should
also touch the cpu array, but that is taken care of after the alloc_done label.
(So yes, the cpu array was getting touched = 1 twice).

So revert this logic to how it worked in earlier kernels.

This also affects the behaviour in __drain_alien_cache, which would previously
'touch' the shared array and now does not. I think it is more logical not to
touch there, because we are pushing objects into the shared array rather than
pulling them off. So there is no good reason to postpone reaping them -- if the
shared array is getting utilized, then it will get 'touched' in the alloc path
(where this patch now restores the touch).

Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
</content>
</entry>
<entry>
<title>slab: initialize unused alien cache entry as NULL at alloc_alien_cache().</title>
<updated>2010-01-11T16:56:07Z</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=f3186a9c51eabe75b2780153ed7f07778d78b16e'/>
<id>urn:sha1:f3186a9c51eabe75b2780153ed7f07778d78b16e</id>
<content type='text'>
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;
</content>
</entry>
<entry>
<title>SLAB: Fix lockdep annotation breakage</title>
<updated>2009-12-28T18:57:27Z</updated>
<author>
<name>Pekka Enberg</name>
</author>
<published>2009-12-27T12:33:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=00afa758067ac1c947149ef766adcdfe30c44d7d'/>
<id>urn:sha1:00afa758067ac1c947149ef766adcdfe30c44d7d</id>
<content type='text'>
Commit ce79ddc8e2376a9a93c7d42daf89bfcbb9187e62 ("SLAB: Fix lockdep annotations
for CPU hotplug") broke init_node_lock_keys() off-slab logic which causes
lockdep false positives.

Fix that up by reverting the logic back to original while keeping CPU hotplug
fixes intact.

Reported-and-tested-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Reported-and-tested-by: Andi Kleen &lt;andi@firstfloor.org&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
</content>
</entry>
<entry>
<title>Merge branch 'cpumask-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus</title>
<updated>2009-12-18T01:00:20Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2009-12-18T01:00:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=55db493b65c7b6bb5d7bd3dd3c8a2fe13f5dc09c'/>
<id>urn:sha1:55db493b65c7b6bb5d7bd3dd3c8a2fe13f5dc09c</id>
<content type='text'>
* 'cpumask-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
  cpumask: rename tsk_cpumask to tsk_cpus_allowed
  cpumask: don't recommend set_cpus_allowed hack in Documentation/cpu-hotplug.txt
  cpumask: avoid dereferencing struct cpumask
  cpumask: convert drivers/idle/i7300_idle.c to cpumask_var_t
  cpumask: use modern cpumask style in drivers/scsi/fcoe/fcoe.c
  cpumask: avoid deprecated function in mm/slab.c
  cpumask: use cpu_online in kernel/perf_event.c
</content>
</entry>
<entry>
<title>Merge branch 'kmemleak' of git://linux-arm.org/linux-2.6</title>
<updated>2009-12-18T00:00:19Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2009-12-18T00:00:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dcc7cd011220d7425a265c9bbf04c5731dacec1b'/>
<id>urn:sha1:dcc7cd011220d7425a265c9bbf04c5731dacec1b</id>
<content type='text'>
* 'kmemleak' of git://linux-arm.org/linux-2.6:
  kmemleak: fix kconfig for crc32 build error
  kmemleak: Reduce the false positives by checking for modified objects
  kmemleak: Show the age of an unreferenced object
  kmemleak: Release the object lock before calling put_object()
  kmemleak: Scan the _ftrace_events section in modules
  kmemleak: Simplify the kmemleak_scan_area() function prototype
  kmemleak: Do not use off-slab management with SLAB_NOLEAKTRACE
</content>
</entry>
<entry>
<title>cpumask: avoid deprecated function in mm/slab.c</title>
<updated>2009-12-17T01:13:13Z</updated>
<author>
<name>Rusty Russell</name>
</author>
<published>2009-12-17T17:43:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=58463c1fe25f7c4183f30f06a5a86cb6cd9d8231'/>
<id>urn:sha1:58463c1fe25f7c4183f30f06a5a86cb6cd9d8231</id>
<content type='text'>
These days we use cpumask_empty() which takes a pointer.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
</content>
</entry>
</feed>
