[dpdk-dev] [PATCH v2] bus/pci: resolve multiple NICs address conflicts

Burakov, Anatoly anatoly.burakov at intel.com
Wed Nov 6 11:35:05 CET 2019


On 06-Nov-19 7:37 AM, David Marchand wrote:
> On Wed, Nov 6, 2019 at 7:16 AM Wangyu (Eric) <seven.wangyu at huawei.com> wrote:
>>
>>
>> In 64K pagesize system, DPDK will read the size NIC need in uio/uio1/maps/map1/size,  when the size small than pagesize(e.g.,82599 is 16K), dev->mem_resource[i].len will be 16K, but the mmap function applies for at least 1 page size, which is 64K.
>> Then second NIC mmap, start address is first NIC address + 16K, which already used by first NIC.
> 
> Do you see this issue with vfio?
> 
> 
>> So if change the size to first NIC address + 64K, problem solved.
> 
> You are hacking a description of the device resources to workaround a problem.
> This patch is a no go for me.
> 
> Maybe there is something to do with the hint passed to mmap in uio case.
> Adding Anatoly to the loop.
> 

We map BAR's with arbitrary addresses, so i don't think we can do much 
here - if mmap() returns page-unaligned addresses on platforms with 64K 
sizes, it's not our fault.

That said, we could simply page-align mapping requests.

-- 
Thanks,
Anatoly


More information about the dev mailing list