The multiphysical buffer pool is an area of memory that can be
allocated to various tasks associated with moving data between
memory and physical devices:
16KB scatter-gather buffers are used
to transfer contiguous blocks of data
on disk to and from the buffer cache. This mechanism is normally
only used if the disk controller does not support scatter-gather
in hardware.
If no buffers are available, a process will normally sleep.
1KB copy request buffers (or copy buffers)
are used to move data to and from
buffers in the buffer cache that lie in memory above 16MB.
Copy buffers are necessary for DMA and peripheral
controllers that cannot address memory above 16MB as shown in
Figure 5-3.
If a copy buffer is not available, a process sleeps until one
becomes available.
4KB transfer buffers are used for moving data between memory
and peripheral devices on behalf of applications whose data may
lie in memory above the first 16MB.
These buffers are only necessary for DMA and peripheral
controllers that cannot address memory above 16MB.
If no transfer buffers are available, the process is put to sleep.
The value of the NMPBUF kernel parameter controls
the number of 4KB memory
pages
used for scatter-gather, copy request, and transfer buffers.
The number of pages of memory reserved for these buffers is tuned
automatically if NMPBUF is set to 0.
You can check if sufficient memory
has been assigned as described in
``Tuning the number of multiphysical buffers''.
The system dynamically allocates memory to the following data structures
which are used in performing certain I/O operations:
Scatter-gather buffer headers are used to control scatter-gather
requests if the disk hardware supports scatter-gather. If no
headers are available, the requests are sent to the disk
controller one at a time.
Control blocks are used to send raw disk I/O (AIO)
requests including access to
swap space.
If no control blocks are available, the process is put to sleep.
Figure 5-3 How the system uses multiphysical buffers to overcome 24-bit addressing limitations