OK, now think about a NUMA-with-small-n system like AMD Hammer.
One of the CPUs will want to allocate from HIGHMEM zone A while
another CPU will start allocating at HIGHMEM zone B. Of course,
with memory access time between the "nodes" being not too different
you'll want to fall back to the "other" HIGHMEM zone before falling
back to the (single) NORMAL and DMA zones.
This could be expressed as:
"node A" HIGHMEM A -> HIGHMEM B -> NORMAL -> DMA
"node B" HIGHMEM B -> HIGHMEM A -> NORMAL -> DMA
How would you express this situation in classzone ?
> > As for kswapd going crazy, that is nicely fixed by having
> > per zone lru lists... ;)
>
> I don't see how per-zone lru lists are related to the kswapd deadlock.
> as soon as the ZONE_DMA will be filled with filedescriptors or with
> pagetables (or whatever non pageable/shrinkable kernel datastructure you
> prefer) kswapd will go mad without classzone, period.
So why would kswapd not go mad _with_ classzone ?
I bet the workaround for that problem has very little
to do with classzones...
regards,
Rik
-- "Linux holds advantages over the single-vendor commercial OS" -- Microsoft's "Competing with Linux" documenthttp://www.surriel.com/ http://distro.conectiva.com/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/