[dpdk-dev] ethdev: Support VFs on the different PCI domains

Message ID 1476193766-19650-1-git-send-email-krytarowski@caviumnetworks.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Kamil Rytarowski Oct. 11, 2016, 1:49 p.m. UTC
  It's possible to have the same numbers for bus, device id and function,
therefore we need to differentiate on domain.

This enables DPDK with multiple VFs on ThunderX 2-socket hardware.

Signed-off-by: Maciej Czekaj <maciej.czekaj@caviumnetworks.com>
Signed-off-by: Kamil Rytarowski <kamil.rytarowski@caviumnetworks.com>
Signed-off-by: Zyta Szpak <zyta.szpak@semihalf.com>
Signed-off-by: Slawomir Rosek <slawomir.rosek@semihalf.com>
Signed-off-by: Radoslaw Biernacki <rad@semihalf.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 lib/librte_ether/rte_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

David Marchand Oct. 11, 2016, 4:52 p.m. UTC | #1
On Tue, Oct 11, 2016 at 3:49 PM, Kamil Rytarowski
<krytarowski@caviumnetworks.com> wrote:
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index 382c959..01d5fb0 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -225,7 +225,7 @@ rte_eth_dev_create_unique_device_name(char *name, size_t size,
>  {
>         int ret;
>
> -       ret = snprintf(name, size, "%d:%d.%d",
> +       ret = snprintf(name, size, "%d:%d:%d.%d", pci_dev->addr.domain,
>                         pci_dev->addr.bus, pci_dev->addr.devid,
>                         pci_dev->addr.function);
>         if (ret < 0)

This patch is obsolete since this part has been moved to eal.

Can you test with current master branch if there is still an issue ?
Thanks.
  
Kamil Rytarowski Oct. 12, 2016, 5:07 p.m. UTC | #2
W dniu 11.10.2016 o 18:52, David Marchand pisze:
> On Tue, Oct 11, 2016 at 3:49 PM, Kamil Rytarowski
> <krytarowski@caviumnetworks.com> wrote:
>> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
>> index 382c959..01d5fb0 100644
>> --- a/lib/librte_ether/rte_ethdev.c
>> +++ b/lib/librte_ether/rte_ethdev.c
>> @@ -225,7 +225,7 @@ rte_eth_dev_create_unique_device_name(char *name, size_t size,
>>   {
>>          int ret;
>>
>> -       ret = snprintf(name, size, "%d:%d.%d",
>> +       ret = snprintf(name, size, "%d:%d:%d.%d", pci_dev->addr.domain,
>>                          pci_dev->addr.bus, pci_dev->addr.devid,
>>                          pci_dev->addr.function);
>>          if (ret < 0)
> This patch is obsolete since this part has been moved to eal.
>
> Can you test with current master branch if there is still an issue ?
> Thanks.
>
>

I've tested DPDK master without this PCI domain patch and everything 
seems to work.

Thank you.
  

Patch

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index 382c959..01d5fb0 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -225,7 +225,7 @@  rte_eth_dev_create_unique_device_name(char *name, size_t size,
 {
 	int ret;
 
-	ret = snprintf(name, size, "%d:%d.%d",
+	ret = snprintf(name, size, "%d:%d:%d.%d", pci_dev->addr.domain,
 			pci_dev->addr.bus, pci_dev->addr.devid,
 			pci_dev->addr.function);
 	if (ret < 0)