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?

Reply via email to