[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#541389: Use of CONFIG_NUMA_EMU



On Thu, 22 Oct 2009, Ben Hutchings wrote:

> The Debian kernel team received a request to enable this config option
> in our packaged kernels for x86-64, with reference to
> Documentation/x86/x86_64/fake-numa-for-cpusets.  This document seems to
> encourage the use this option in production.  However, the Kconfig help
> text for this says (as it has done from the beginning of git history):
> 
>           Enable NUMA emulation. A flat machine will be split
>           into virtual nodes when booted with "numa=fake=N", where N is the
>           number of nodes. This is only useful for debugging.
> 
> Please could you clarify whether you think this is really suitable for
> production use, in particular whether it would be sane to enable the
> config option in a distribution kernel?
> 

It's definitely sane to enable it because all it does is add init code 
that will be freed after boot even if NUMA emulation is in use.

The vast majority of the time, it's used for debugging VM code as it 
relates to NUMA architectures.  It's a nice way of ensuring your changes 
don't break NUMA machines even if you don't have one.  It's also a nice 
way to test different mempolicy and cpuset behavior.

With regard to the fake-numa-for-cpusets document, it _is_ a very 
effective way of getting coarse memory isolation without using the 
per-page memory controller.  You can use cpusets to isolate jobs to only 
be able to allocate from certain nodes; with a small enough node size, you 
can manage the memory resources available to applications on a fine 
granularity.  That's not a popular use case, but it is useful for 
application development and benchmarking.

I think it would be helpful to those particular users who are requesting 
it to enable it in Debian kernels since there is actually no cost 
associated with kernels that choose not to boot with numa=fake.



Reply to: