Hi, My hope was that packet segments would all be smaller than one page (either normal pages or huge pages) to guarantee physical memory continuity which is needed by some drivers (read non vfio drivers for PCI).
Francois Ozog's experience (with dpdk)shows that this hope will fail in some case: not all platforms support the required huge page size. And it would be nice to be able to run even in the absence of huge pages. I am therefore planning to expand drvshm to include a flag requesting contiguous physical memory. But sadly, from user space, this is nothing we can guarantee... So when this flag is set, the allocator will allocate untill physical memory "happens to be continuous". This is a bit like the DPDK approach (try & error), which I dislike, but there aren't many alternatives from user space. This would be triggered only in case huge page allocation failed, or if the requested size exceed the HP size. Last alternative would be to have a kernel module to do this kind of allocation, but I guess we don't really want to depend on that... Any comment?