RFC Reduce MAX_NR_ZONES and remove useless zones.
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest8 patches 23 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | Rework mmzone.h: Make DMA32 and HIGHMEM optionalarch/ arch/ include/ +3 more | +108 | 1 reply | |
| 2/8 | Make display of highmem counters conditional on CONFIG_HIGHMEMdrivers/ fs/ mm/ | +12 | 0 replies | |
| 3/8 | Move HIGHMEM counter into highmem.c/.hinclude/ include/ mm/ +2 more | +5 | 6 replies | |
| 4/8 | Remove display of counters for not available zonesinclude/ mm/ | +28 | 0 replies | |
| 5/8 | swap_prefetch: Make use of ZONE_HIGHMEM dependend on CONFIG_HIGHMEMmm/ | +4 | 0 replies | |
| 6/8 | Fix MAX_NR_ZONES array initializations in various archesarch/ arch/ arch/ +8 more | +11 | 0 replies | |
| 7/8 | Fix strange uses of MAX_NR_ZONESarch/ arch/ | +2 | 0 replies | |
| 8/8 | Fix i386 SRAT check for MAX_NR_ZONESmm/ | +4 | 2 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [RFC 0/8] Reduce MAX_NR_ZONES and remove useless zones.
I keep seeing zones on various platforms that are never used and wonder why we compile support for them into the kernel.
IA64 on SGI for example only uses ZONE_DMA other IA64 platforms can also use ZONE_NORMAL. So we have 50% useless zones. Large amounts of memory go to waste with systems with a few hundred nodes and a few hundred processors.
My x86_64 system seems to only use ZONE_DMA and ZONE_DMA32. I never see pages in ZONE_NORMAL (probably because I have less than 4G memory).
And ZONE_HIGHMEM on a 64 bit system? We can address all memory. I keep seeing all the highmem counters as zero on ia64 and x86_64 and even on i386 systems.
Then it seems that ZONE_DMA32 is only used on x86_64 but we compile it into the kernel for all platforms.
This patch makes ZONE_DMA32 and ZONE_HIGHMEM support optional. MAX_NR_ZONES will be 2 for most non i386 platforms and even for i386 without CONFIG_HIGHMEM set.
I tested this on IA64 and x86_64. Compiles fine on i386 with and without CONFIG_HIGHMEM set.
The patchset consists of 8 patches that are following this message.
One could go even further than this patchset and also make ZONE_DMA optional because some platforms do not need a separate DMA zone and can do DMA to all of memory. This could reduce MAX_NR_ZONES to 1.