<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/mm/slob.c, branch linux-3.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-07-12T07:13:22Z</updated>
<entry>
<title>slob: Fix early boot kernel crash</title>
<updated>2012-07-12T07:13:22Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-07-10T23:31:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=44a8bdea19dff1abcdc4528e5f7e038b18ee5255'/>
<id>urn:sha1:44a8bdea19dff1abcdc4528e5f7e038b18ee5255</id>
<content type='text'>
Commit fd3142a59af2012a7c5dc72ec97a4935ff1c5fc6 broke
slob since a piece of a change for a later patch slipped into
it.

Fengguang Wu writes:

  The commit crashes the kernel w/o any dmesg output (the attached one is
  created by the script as a summary for that run). This is very
  reproducible in kvm for the attached config.

Reported-by: Fengguang Wu &lt;fengguang.wu@intel.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>mm, sl[aou]b: Common definition for boot state of the slab allocators</title>
<updated>2012-07-09T09:13:35Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-07-06T20:25:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=97d06609158e61f6bdf538c4a6788e2de492236f'/>
<id>urn:sha1:97d06609158e61f6bdf538c4a6788e2de492236f</id>
<content type='text'>
All allocators have some sort of support for the bootstrap status.

Setup a common definition for the boot states and make all slab
allocators use that definition.

Reviewed-by: Glauber Costa &lt;glommer@parallels.com&gt;
Reviewed-by: Joonsoo Kim &lt;js1304@gmail.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>mm, sl[aou]b: Extract common code for kmem_cache_create()</title>
<updated>2012-07-09T09:13:30Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-07-06T20:25:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=039363f38bfe5f6281e9eae5e0518b11577d9d50'/>
<id>urn:sha1:039363f38bfe5f6281e9eae5e0518b11577d9d50</id>
<content type='text'>
Kmem_cache_create() does a variety of sanity checks but those
vary depending on the allocator. Use the strictest tests and put them into
a slab_common file. Make the tests conditional on CONFIG_DEBUG_VM.

This patch has the effect of adding sanity checks for SLUB and SLOB
under CONFIG_DEBUG_VM and removes the checks in SLAB for !CONFIG_DEBUG_VM.

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: Extract common fields from struct kmem_cache</title>
<updated>2012-06-14T06:20:16Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-06-13T15:24:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3b0efdfa1e719303536c04d9abca43abeb40f80a'/>
<id>urn:sha1:3b0efdfa1e719303536c04d9abca43abeb40f80a</id>
<content type='text'>
Define a struct that describes common fields used in all slab allocators.
A slab allocator either uses the common definition (like SLOB) or is
required to provide members of kmem_cache with the definition given.

After that it will be possible to share code that
only operates on those fields of kmem_cache.

The patch basically takes the slob definition of kmem cache and
uses the field namees for the other allocators.

It also standardizes the names used for basic object lengths in
allocators:

object_size	Struct size specified at kmem_cache_create. Basically
		the payload expected to be used by the subsystem.

size		The size of memory allocator for each object. This size
		is larger than object_size and includes padding, alignment
		and extra metadata for each object (f.e. for debugging
		and rcu).

Signed-off-by: Christoph Lameter &lt;cl@linux.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
<entry>
<title>slob: Remove various small accessors</title>
<updated>2012-06-14T06:19:52Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-06-13T15:24:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5568280c9b9162b384be9d447013b74d682d4b3'/>
<id>urn:sha1:b5568280c9b9162b384be9d447013b74d682d4b3</id>
<content type='text'>
Those have become so simple that they are no longer needed.

Reviewed-by: Joonsoo Kim &lt;js1304@gmail.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.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>slob: No need to zero mapping since it is no longer in use</title>
<updated>2012-06-14T06:19:50Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-06-13T15:24:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=690d5777392180fdc05a82c0c7979e50e8d93de8'/>
<id>urn:sha1:690d5777392180fdc05a82c0c7979e50e8d93de8</id>
<content type='text'>
Reviewed-by: Joonsoo Kim &lt;js1304@gmail.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.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>slob: Define page struct fields used in mm_types.h</title>
<updated>2012-06-14T06:19:47Z</updated>
<author>
<name>Christoph Lameter</name>
</author>
<published>2012-06-13T15:24:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8c24c4aef94b1f0daafb450363fef13a1163780'/>
<id>urn:sha1:b8c24c4aef94b1f0daafb450363fef13a1163780</id>
<content type='text'>
Define the fields used by slob in mm_types.h and use struct page instead
of struct slob_page in slob. This cleans up numerous of typecasts in slob.c and
makes readers aware of slob's use of page struct fields.

[Also cleans up some bitrot in slob.c. The page struct field layout
in slob.c is an old layout and does not match the one in mm_types.h]

Reviewed-by: Glauber Costa &lt;glommer@parallels.com&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Reviewed-by: Joonsoo Kim &lt;js1304@gmail.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>mm: Map most files to use export.h instead of module.h</title>
<updated>2011-10-31T13:20:12Z</updated>
<author>
<name>Paul Gortmaker</name>
</author>
<published>2011-10-16T06:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b95f1b31b75588306e32b2afd32166cad48f670b'/>
<id>urn:sha1:b95f1b31b75588306e32b2afd32166cad48f670b</id>
<content type='text'>
The files changed within are only using the EXPORT_SYMBOL
macro variants.  They are not using core modular infrastructure
and hence don't need module.h but only the export.h header.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>atomic: use &lt;linux/atomic.h&gt;</title>
<updated>2011-07-26T23:49:47Z</updated>
<author>
<name>Arun Sharma</name>
</author>
<published>2011-07-26T23:09:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=60063497a95e716c9a689af3be2687d261f115b4'/>
<id>urn:sha1:60063497a95e716c9a689af3be2687d261f115b4</id>
<content type='text'>
This allows us to move duplicated code in &lt;asm/atomic.h&gt;
(atomic_inc_not_zero() for now) to &lt;linux/atomic.h&gt;

Signed-off-by: Arun Sharma &lt;asharma@fb.com&gt;
Reviewed-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: Mike Frysinger &lt;vapier@gentoo.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>slob/lockdep: Fix gfp flags passed to lockdep</title>
<updated>2011-06-07T18:38:07Z</updated>
<author>
<name>Steven Rostedt</name>
</author>
<published>2011-06-07T11:18:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bd50cfa89153a67429935a15e577a5eb5f10dd1b'/>
<id>urn:sha1:bd50cfa89153a67429935a15e577a5eb5f10dd1b</id>
<content type='text'>
Doing a ktest.pl randconfig, I stumbled across the following bug
on boot up:

------------[ cut here ]------------
WARNING: at /home/rostedt/work/autotest/nobackup/linux-test.git/kernel/lockdep.c:2649 lockdep_trace_alloc+0xed/0x100()
Hardware name:
Modules linked in:
Pid: 0, comm: swapper Not tainted 3.0.0-rc1-test-00054-g1d68b67 #1
Call Trace:
 [&lt;ffffffff810626ad&gt;] warn_slowpath_common+0xad/0xf0
 [&lt;ffffffff8106270a&gt;] warn_slowpath_null+0x1a/0x20
 [&lt;ffffffff810b537d&gt;] lockdep_trace_alloc+0xed/0x100
 [&lt;ffffffff81182fb0&gt;] __kmalloc_node+0x30/0x2f0
 [&lt;ffffffff81153eda&gt;] pcpu_mem_alloc+0x13a/0x180
 [&lt;ffffffff82be022c&gt;] percpu_init_late+0x48/0xc2
 [&lt;ffffffff82bd630c&gt;] ? mem_init+0xd8/0xe3
 [&lt;ffffffff82bbcc73&gt;] start_kernel+0x1c2/0x449
 [&lt;ffffffff82bbc35c&gt;] x86_64_start_reservations+0x163/0x167
 [&lt;ffffffff82bbc493&gt;] x86_64_start_kernel+0x133/0x142^M
---[ end trace a7919e7f17c0a725 ]---

Then I ran a ktest.pl config_bisect and it came up with this config
as the problem:

  CONFIG_SLOB

Looking at what is different between SLOB and SLAB and SLUB, I found
that the gfp flags are masked against gfp_allowed_mask in
SLAB and SLUB, but not SLOB.

On boot up, interrupts are disabled and lockdep will warn if some flags
are set in gfp and interrupts are disabled. But these flags are masked
off with the gfp_allowed_mask during boot. Because SLOB does not
mask the flags against gfp_allowed_mask it triggers the warn on.

Adding this mask fixes the bug. I also found that kmem_cache_alloc_node()
was missing both the mask and the lockdep check, and that was added too.

Acked-by: Matt Mackall &lt;mpm@selenic.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Nick Piggin &lt;npiggin@kernel.dk&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Signed-off-by: Pekka Enberg &lt;penberg@kernel.org&gt;
</content>
</entry>
</feed>
