Re: [PATCH v3] mm: make expand_downwards symmetrical toexpand_upwards

From: Christoph Lameter
Date: Wed Apr 20 2011 - 10:51:06 EST


On Wed, 20 Apr 2011, James Bottomley wrote:

> 1. We can look at what imposing NUMA on the DISCONTIGMEM archs
> would do ... the embedded ones are going to be hardest hit, but
> if it's not too much extra code, it might be palatable.
> 2. The other is that we can audit mm to look at all the node
> assumptions in the non-numa case. My suspicion is that
> accidentally or otherwise, it mostly works for the normal case,
> so there might not be much needed to pull it back to working
> properly for DISCONTIGMEM.

The older code may work. SLAB f.e. does not call page_to_nid() in the
!NUMA case but keeps special metadata structures around in each slab page
that records the node used for allocation. The problem is with new code
added/revised in the last 5 years or so that uses page_to_nid() and
allocates only a single structure for !NUMA. There are also VM_BUG_ONs in
the page allocator that should trigger if page_to_nid() returns strange
values. I wonder why that never occurred.

> 3. Finally we could look at deprecating DISCONTIGMEM in favour
of > SPARSEMEM, but we'd still need to fix -stable for that case.
> Especially as it will take time to convert all the architectures

The fix needed is to mark DISCONTIGMEM without NUMA as broken for now. We
need an audit of the core VM before removing that or making it contingent
on the configurations of various VM subsystems.

> I'm certainly with Matthew: DISCONTIGMEM is supposed to be a lightweight
> framework which allows machines with split physical memory ranges to
> work. That's a very common case nowadays. Numa is supposed to be a
> heavyweight framework to preserve node locality for non-uniform memory
> access boxes (which none of the DISCONTIGMEM && !NUMA systems are).

Well yes but we have SPARSE for that today. DISCONTIG with multiple per
pgdat structures in a !NUMA case is just weird and unexpected for many who
have done VM coding in the last years.

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