Extended Shared Memory (EXTSHM)
By default, each shared memory region (whatever its size),
always consumes a 256 MB region of address space.
Operating system version 4.2.1 and later implements
Extended Shared Memory, which allows for more granular
shared memory regions that can be in size of 1 byte up to
256 MB. However, the address space consumption will be
rounded up to the next page (4096 byte) boundary.
Extended Shared Memory essentially removes the limitation
of only 11 shared memory regions.
This feature is available to processes that have the
variable EXTSHM set to ON (EXTSHM=ON) in their process
environment. There is no limit on the number of
shared memory regions that a process can attach. File
mapping is supported as before, but still consumes
address space that is a multiple of 256 MB (segment size).
Resizing a shared memory region is not supported in
this mode. Kernel processes will still have the
same behavior. Without this environment variable set,
eleven 256 MB regions are available.
Extended Shared Memory has the following restrictions:
I/O support is restricted in the same manner as for
memory-mapped regions.
Only uphysio() type of I/O is supported (no raw I/O).
These shared memory regions cannot be used as
I/O buffers where the unpinning of the buffer occurs
in an interrupt handler. For example, these regions
cannot be used for async I/O buffers.
The segments cannot be pinned using the plock()
subroutine because memory-mapped segments cannot
be pinned with the plock() subroutine.
Not sure if this helps or not...didn't actually answer your
question directly...