Date: Sun, 2 Aug 2015 16:39:10 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Max Gurtovoy <maxg@mellanox.com> Cc: freebsd-scsi@freebsd.org Subject: Re: PIM_UNMAPPED question Message-ID: <20150802133910.GS2072@kib.kiev.ua> In-Reply-To: <55BE0B55.8070807@mellanox.com> References: <VI1PR05MB1440A7BED8C6434EE01360CFDE880@VI1PR05MB1440.eurprd05.prod.outlook.com> <55BE0B55.8070807@mellanox.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150802133910.GS2072>