eal/linux: map pci memory resources after hugepages
authorAnatoly Burakov <anatoly.burakov@intel.com>
Tue, 11 Nov 2014 10:09:25 +0000 (10:09 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 25 Nov 2014 17:16:41 +0000 (18:16 +0100)
commitc4f136db8ec532c3c930be5698cc84321c64192d
treeedfa8f917ad6e0230ffae3bafdb5eeda612278d1
parentb91c67e5a693211862aa7dc3b78630b4e856c2af
eal/linux: map pci memory resources after hugepages

Multi-process DPDK application must mmap hugepages and PCI resources
into the same virtual address space. By default the virtual addresses
are chosen by the primary process automatically when calling the mmap.
But sometimes the chosen virtual addresses aren't usable in secondary
process - for example, secondary process is linked with more libraries
than primary process, and the library occupies the same address space
that the primary process has requested for PCI mappings.

This patch makes EAL try and map PCI BARs right after the hugepages
(instead of location chosen by mmap) in virtual memory, so that PCI BARs
have less chance of ending up in random places in virtual memory.

Signed-off-by: Liang Xu <liang.xu@cinfotech.cn>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_eal/linuxapp/eal/eal_pci.c
lib/librte_eal/linuxapp/eal/eal_pci_init.h
lib/librte_eal/linuxapp/eal/eal_pci_uio.c
lib/librte_eal/linuxapp/eal/eal_pci_vfio.c