PIM_UNMAPPED question

Konstantin Belousov kostikbel at gmail.com
Sun Aug 2 13:39:16 UTC 2015


On Sun, Aug 02, 2015 at 03:21:41PM +0300, Max Gurtovoy wrote:
> However, I noticed that the bio_ma vector consists of physically 
> contiguous addresses. I expected that user-space
> allocations would not be physically contiguous. Is it possible that I'm 
> still not seeing the user IO buffers?

Large enough userspace allocations, on a machine with enough free or
reusable memory, most likely trigger reservations to allow the mappings
to be promoted to superpages.  This means that on amd64 aligned
2M chunks are often contiguous.

You could verify the guess by looking at the procstat(1) -v output
for your process. In particular, look for the S flag for the i/o memory
mapping.

There may be other reasons why you see physically contiguous bio_ma's,
but the explanation above is the most straightforward.


More information about the freebsd-scsi mailing list