lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 11 Jun 2009 17:06:34 +0300
From:	Pekka Enberg <penberg@...helsinki.fi>
To:	Christoph Lameter <cl@...ux-foundation.org>
Cc:	Linus Torvalds <torvalds@...ux-foundation.org>,
	linux-kernel@...r.kernel.org, akpm@...ux-foundation.org,
	hannes@...xchg.org, mingo@...e.hu, mpm@...enic.com,
	npiggin@...e.de, yinghai@...nel.org
Subject: Re: [GIT PULL v2] Early boot SLAB for 2.6.31

Hi Christoph,

On Thu, Jun 11, 2009 at 4:58 PM, Christoph
Lameter<cl@...ux-foundation.org> wrote:
>> @@ -645,14 +657,10 @@ asmlinkage void __init start_kernel(void)
>>               initrd_start = 0;
>>       }
>>  #endif
>> -     vmalloc_init();
>> -     vfs_caches_init_early();
>>       cpuset_init_early();
>>       page_cgroup_init();
>> -     mem_init();
>>       enable_debug_pagealloc();
>>       cpu_hotplug_init();
>> -     kmem_cache_init();
>>       kmemtrace_init();
>>       debug_objects_mem_init();
>>       idr_init_cache();
>
> Therefore potential breakage is in cpusets, hotplug and control groups.
> Have any of these been tested with these patches? NUMA?

Yinghai has done some testing. Control groups should to be fine:

http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=7d63de6b4c7798a6a1c6504a65c327aaf76ef2d5

I have not tested hotplug and cpuset_init_early() does indeed needs to
be switched over to slab (it does that via fallback now).

>> diff --git a/mm/slub.c b/mm/slub.c
>> index 5e805a6..c1815a6 100644
>> --- a/mm/slub.c
>> +++ b/mm/slub.c
>> @@ -2557,13 +2557,16 @@ static struct kmem_cache *create_kmalloc_cache(struct kmem_cache *s,
>>       if (gfp_flags & SLUB_DMA)
>>               flags = SLAB_CACHE_DMA;
>>
>> -     down_write(&slub_lock);
>> +     /*
>> +      * This function is called with IRQs disabled during early-boot on
>> +      * single CPU so there's no need to take slub_lock here.
>> +      */
>>       if (!kmem_cache_open(s, gfp_flags, name, size, ARCH_KMALLOC_MINALIGN,
>
> This function is also called later when kmalloc caches are
> created on demand.

Where? AFAICT, only kmem_cache_init() calls the function.

                                      Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ