On Wed, Oct 30, 2024 at 09:34:51AM +0100, David Hildenbrand wrote:
The unusual thing is not the amount of system memory we are pinning but *how
many* pages we try pinning in the single call.
If you stare at vfio_pin_pages_remote, we seem to be batching it.
long req_pages = min_t(long, npage, batch->capacity);
Which is
#define VFIO_BATCH_MAX_CAPACITY (PAGE_SIZE / sizeof(struct page *))
So you can fix this in your driver ;)
Yeah, everything batches that I'm aware of. RDMA also uses a 4k batch
size, and iommufd uses 64k.
Jason