Re: [PATCH v2] percpu, x86: don't use PMD_SIZE as embedded atom_size on 32bit

H. Peter Anvin
2012-04-27T17:52:04Z

On 04/27/2012 10:39 AM, Tejun Heo wrote:
> With the embed percpu first chunk allocator, x86 uses either PAGE_SIZE
> or PMD_SIZE for atom_size. PMD_SIZE is used when CPU supports PSE so
> that percpu areas are aligned to PMD mappings and possibly allow using
> PMD mappings in vmalloc areas in the future. Using larger atom_size
> doesn't waste actual memory; however, it does require larger vmalloc
> space allocation later on for !first chunks.
>
> With reasonably sized vmalloc area, PMD_SIZE shouldn't be a problem
> but x86_32 at this point is anything but reasonable in terms of
> address space and using larger atom_size reportedly leads to frequent
> percpu allocation failures on certain setups.
>
> As there is no reason to not use PMD_SIZE on x86_64 as vmalloc space
> is aplenty and most x86_64 configurations support PSE, fix the issue
> by always using PMD_SIZE on x86_64 and PAGE_SIZE on x86_32.
>
> v2: drop cpu_has_pse test and make x86_64 always use PMD_SIZE and
> x86_32 PAGE_SIZE as suggested by hpa.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Reported-by: Yanmin Zhang <yanmin.zhang@intel.com>
> Reported-by: ShuoX Liu <shuox.liu@intel.com>
> Acked-by: H. Peter Anvin <hpa@zytor.com>
> LKML-Reference: <4F97BA98.6010001@intel.com>
> Cc: stable@vger.kernel.org

You're carrying this, or should I?

-hpa