I hoped such a kernel module would already exist, but I am surprised that DPDK would not rely on it. Maybe there is a limitation I cannot see. I'll keep searching. Francois, maybe you know the answer?
On 10 November 2016 at 19:10, Mike Holmes <mike.hol...@linaro.org> wrote: > > > On 10 November 2016 at 12:52, Christophe Milard > <christophe.mil...@linaro.org> wrote: >> >> 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? > > > Would that module be launched from the implementations global init, or be an > independent expectation on some other support lib that existed and it had > installed the module ? > Feels like and external support lib would be reusable by all implementations > and not need re coding. > > > > > -- > Mike Holmes > Program Manager - Linaro Networking Group > Linaro.org │ Open source software for ARM SoCs > "Work should be fun and collaborative, the rest follows" > >