[dpdk-dev] [PATCH v2] tools: fix issue with virtio interfaces

souvikdey33 sodey at sonusnet.com
Fri Aug 26 07:50:49 CEST 2016


This change is required to have the interface name for virtio interfaces.
When we execute the status command the for virtio inerfaces we get
Sample output without the change:
0000:00:04.0 'Virtio network device' if= drv=virtio-pci unused=virtio_pci,igb_uio
Though for other drivers this works.
Sample output with the change:
0000:00:04.0 'Virtio network device' if=eth0 drv=virtio-pci unused=virtio_pci,igb_uio

souvikdey33 (1):
  Signed-off-by: Souvik Dey <sodey at sonusnet.com>
  Fixes: 3da038604009 ("Signed-off-by: Souvik Dey <sodey at sonusnet.com>")
  
 tools/dpdk-devbind.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

-- 
>From 3da0386040092fcd54ee333ceff8c427a36c6b45 Mon Sep 17 00:00:00 2001
From: souvikdey33 <sodey at sonusnet.com>
Date: Thu, 25 Aug 2016 23:31:28 -0400
Subject: [PATCH v2] Signed-off-by: Souvik Dey <sodey at sonusnet.com>

When we execute the status command the for virtio inerfaces the interface name is not shown.
Sample output without the change.
0000:00:04.0 'Virtio network device' if= drv=virtio-pci unused=virtio_pci,igb_uio
Though for other this works.
---
 tools/dpdk-devbind.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/tools/dpdk-devbind.py b/tools/dpdk-devbind.py
index 9829e25..c0b46ee 100755
--- a/tools/dpdk-devbind.py
+++ b/tools/dpdk-devbind.py
@@ -36,7 +36,6 @@ import sys
 import os
 import getopt
 import subprocess
-import commands
 
 from os.path import exists, abspath, dirname, basename
 
@@ -224,14 +223,18 @@ def get_pci_device_details(dev_id):
         device[name] = value
     # check for a unix interface name
     sys_path = "/sys/bus/pci/devices/%s/net/" % dev_id
-    #The path for virtio devices are different. Get the correct path.
-	virtio = "/sys/bus/pci/devices/%s/" % dev_id
-    cmd = " ls %s | grep 'virt' " %virtio
-    virtio = commands.getoutput(cmd)
-    virtio_sys_path = "/sys/bus/pci/devices/%s/%s/net/" % (dev_id,virtio)
+    # the path for virtio devices are different, so get the correct path
+    virtio = "/sys/bus/pci/devices/%s/" % dev_id
+    ls = subprocess.Popen(['ls', virtio], stdout=subprocess.PIPE)
+    grep = subprocess.Popen('grep virt'.split(), stdin=ls.stdout,
+                            stdout=subprocess.PIPE)
+    ls.stdout.close()
+    virtio = grep.communicate()[0].rstrip()
+    ls.wait()
+    virtio_sys_path = "/sys/bus/pci/devices/%s/%s/net/" % (dev_id, virtio)
     if exists(sys_path):
         device["Interface"] = ",".join(os.listdir(sys_path))
-    elif exists(virt_path):
+    elif exists(virtio_sys_path):
         device["Interface"] = ",".join(os.listdir(virtio_sys_path))
     else:
         device["Interface"] = ""
-- 
2.9.3.windows.1





More information about the dev mailing list