RFC Optional ZONE_DMA
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest8 patches 11 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | Add CONFIG_ZONE_DMA to all archesMarch/ arch/ arch/ +7 more | +39 | 3 replies | |
| 2/8 | slab allocator: Make DMA support configurableinclude/ mm/ | +24 | 0 replies | |
| 3/8 | eventcounters: Optional ZONE_DMAinclude/ mm/ | +23 | 0 replies | |
| 4/8 | page allocator: Optional ZONE_DMAinclude/ mm/ mm/ | +18 | 2 replies | |
| 5/8 | x86_64 without ZONE_DMAarch/ arch/ arch/ | +29 | 4 replies | |
| 6/8 | i386 without ZONE_DMAarch/ arch/ arch/ | +17 | 0 replies | |
| 7/8 | Single zone optimizationsinclude/ kernel/ mm/ +1 more | +33 | 1 reply | |
| 8/8 | Optimize mempolicies for a single zoneinclude/ mm/ | +8 | 1 reply |
Reviews trailers per patch
None of the 8 patches has a Reviewed-by or Acked-by.
| Patch | Christoph Lameter |
|---|---|
| 1/8 | |
| 2/8 | |
| 3/8 | |
| 4/8 | |
| 5/8 | |
| 6/8 | |
| 7/8 | |
| 8/8 | Siged-off-by |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [RFC 0/8] Optional ZONE_DMA
Optional ZONE_DMA
ZONE_DMA is usually used for ISA DMA devices. Typically modern hardware does not have any of these anymore. We frequently do not need the zone anymore.
This patch allows to make the configuration of the kernel for ZONE_DMA dependend on the user choosing to support ISA DMA. If ISA DMA is not supported then i386 systems f.e. can be configured using a single ZONE_NORMAL. The overhead of maintaining multiple zones and balancing page use between the different zone is then gone. My i386 system now runs with a single zone.
On x86_64 systems also usually we do not need ZONE_DMA since there are barely any ISA DMA devices around (or are you still using a floppy?). So for most cases the zone can be dropped. Also if the x86_64 systems has less than 4G RAM or DMA controllers that actually can do 64 bit then we also do not need ZONE_DMA32. My x86_64 system has 1G of memory therefore I can run with a single zone.
SGI's ia64 systems only use one zone. A numa system with a single zone will have one zone per node which makes the association between nodes and zones simpler.
This patchset is build on top of the "Reduce Zones" patchset V1 that was posted earlier today. It will make ZONE_DMA configurable like the other zones. Then it introduces a SINGLE_ZONE macro that is set if the system has only a single zone.
Single zone systems do no need the loops over all zones. We can also return constants for a lot of important VM macros. Finally the policy zone determination in the mempolicy layer becomes trivial.
Note that this is an RFC only. In order for this to work cleanly we need to mark all device drives according to what type of DMA controller they support. If its a ISA DMA controller then we would need to enable ZONE_DMA. If its a 32 bit controller and we support >4G of memory then we need to enable ZONE_DMA32.
This was tested on i386 and x86_64 in UP and SMP mode.