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: