Memory zones
The Linux kernel divides memory into memory zones. On a mainframe, three zones are used:
DMA
, Normal
, and Movable
.
- Memory in the
DMA
zone is below 2 GB, and some I/O operations require that memory buffers are located in this zone. - Memory in the
Normal
zone is above 2 GB, and it can be used for all memory allocations that do not require zone DMA. - Memory in the
Movable
zone cannot be used for arbitrary kernel allocations, but only for memory buffers that can easily be moved by the kernel, such as user memory allocations and page cache memory. Memory in theMovable
zone can more easily be taken offline than memory in other zones.
The zones that are available to a memory block are listed in the valid_zones sysfs attribute.