From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00103a01.pphosted.com (mx0b-00103a01.pphosted.com [67.231.152.227]) by dpdk.org (Postfix) with ESMTP id 0EF9D2956 for ; Tue, 30 Aug 2016 15:12:54 +0200 (CEST) Received: from pps.filterd (m0002317.ppops.net [127.0.0.1]) by mx0b-00103a01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u7UDBUjq022640; Tue, 30 Aug 2016 09:12:54 -0400 Received: from vawvcgsie2k1301.ciena.com (lin1-118-36-35.ciena.com [63.118.36.35]) by mx0b-00103a01.pphosted.com with ESMTP id 25373eree5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 30 Aug 2016 09:12:53 -0400 Received: from VAWVE2K13MBX01.ciena.com (10.4.156.87) by VAWVCGSIE2K1301.ciena.com (10.4.62.15) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 30 Aug 2016 09:12:53 -0400 Received: from ONWVEXCHHT02.ciena.com (10.128.6.17) by VAWVE2K13MBX01.ciena.com (10.4.156.87) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 30 Aug 2016 09:12:46 -0400 Received: from ONWVEXCHMB04.ciena.com ([::1]) by ONWVEXCHHT02.ciena.com ([::1]) with mapi; Tue, 30 Aug 2016 09:12:46 -0400 From: "Mussar, Gary" To: "Dey, Souvik" , Stephen Hemminger CC: "nhorman@tuxdriver.com" , "dev@dpdk.org" Date: Tue, 30 Aug 2016 09:12:44 -0400 Thread-Topic: [dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue. Thread-Index: AQHR/ngJrYBSlPHhJUWN6RhK2Yt0WKBbZ3YAgACM9VCABBxAUIAAiEwAgADnIXA= Message-ID: References: <20160825022546.96468-1-sodey@sonusnet.com> <20160826085500.5691e07d@xeon-e3> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-08-30_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1608300129 Subject: Re: [dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2016 13:12:55 -0000 -----Original Message----- From: Dey, Souvik [mailto:sodey@sonusnet.com]=20 Sent: Monday, August 29, 2016 7:17 PM To: Mussar, Gary; Stephen Hemminger Cc: nhorman@tuxdriver.com; dev@dpdk.org Subject: RE: [dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue. Hi, I already followed the 100% python way and submitted the v3 of this patch. = http://dpdk.org/dev/patchwork/patch/15378/ How will your patch be different in solving the issue. There will always be= multiple ways to solving things right. GM> When I first tackled this problem I used Popen() and got the exact same= feedback about using 100% python. The version I posted yesterday satisfied= the internal reviewers.=20 V3 of my submitted patch: diff --git a/tools/dpdk-devbind.py b/tools/dpdk-devbind.py index b69ca2a..c= 0b46ee 100755 --- a/tools/dpdk-devbind.py +++ b/tools/dpdk-devbind.py @@ -36,6 +36,7 @@ import sys import os import getopt import subprocess + from os.path import exists, abspath, dirname, basename =20 # The PCI base class for NETWORK devices @@ -222,8 +223,19 @@ def get_pci= _device_details(dev_id): device[name] =3D value # check for a unix interface name sys_path =3D "/sys/bus/pci/devices/%s/net/" % dev_id + # the path for virtio devices are different, so get the correct path + virtio =3D "/sys/bus/pci/devices/%s/" % dev_id + ls =3D subprocess.Popen(['ls', virtio], stdout=3Dsubprocess.PIPE) + grep =3D subprocess.Popen('grep virt'.split(), stdin=3Dls.stdout, + stdout=3Dsubprocess.PIPE) + ls.stdout.close() + virtio =3D grep.communicate()[0].rstrip() + ls.wait() + virtio_sys_path =3D "/sys/bus/pci/devices/%s/%s/net/" % (dev_id,=20 + virtio) if exists(sys_path): device["Interface"] =3D ",".join(os.listdir(sys_path)) + elif exists(virtio_sys_path): + device["Interface"] =3D ",".join(os.listdir(virtio_sys_path)) else: device["Interface"] =3D "" # check if a port is used for ssh connection -----Original Message----- From: Mussar, Gary [mailto:gmussar@ciena.com] Sent: Monday, August 29, 2016 11:10 AM To: Dey, Souvik ; Stephen Hemminger Cc: nhorman@tuxdriver.com; dev@dpdk.org Subject: RE: [dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue. We did this slightly differently. This is 100% python and is a bit more gen= eral. We search for the first "net" directory under the specific device dir= ectory. ------------------------------------------- --- tools/dpdk-devbind.py 2016-08-29 11:02:35.594202888 -0400 +++ ../dpdk/tools/dpdk-devbind.py 2016-08-29 11:00:34.897677233 -0400 @@ -221,11 +221,11 @@ name =3D name.strip(":") + "_str" device[name] =3D value # check for a unix interface name - sys_path =3D "/sys/bus/pci/devices/%s/net/" % dev_id - if exists(sys_path): - device["Interface"] =3D ",".join(os.listdir(sys_path)) - else: - device["Interface"] =3D "" + device["Interface"] =3D "" + for base, dirs, files in os.walk("/sys/bus/pci/devices/%s/" % dev_id): + if "net" in dirs: + device["Interface"] =3D ",".join(os.listdir(os.path.join(base,= "net"))) + break # check if a port is used for ssh connection device["Ssh_if"] =3D False device["Active"] =3D "" ------------------------------------------- Gary -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Dey, Souvik Sent: Friday, August 26, 2016 8:21 PM To: Stephen Hemminger Cc: nhorman@tuxdriver.com; dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue. Hi , I have already updated it and have re submitted the patch v3. Can you plea= se check that http://dpdk.org/dev/patchwork/patch/15378/ -- Regards, Souvik -----Original Message----- From: Stephen Hemminger [mailto:stephen@networkplumber.org] Sent: Friday, August 26, 2016 11:55 AM To: Dey, Souvik Cc: nhorman@tuxdriver.com; dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v1] dpdk-devbind.py: Virtio interface issue. On Wed, 24 Aug 2016 22:25:46 -0400 souvikdey33 wrote: > + #The path for virtio devices are different. Get the correct path. > + virtio =3D "/sys/bus/pci/devices/%s/" % dev_id > + cmd =3D " ls %s | grep 'virt' " %virtio > + virtio =3D commands.getoutput(cmd) > + virtio_sys_path =3D "/sys/bus/pci/devices/%s/%s/net/" % > +(dev_id,virtio) > if exists(sys_path): > device["Interface"] =3D ",".join(os.listdir(sys_path)) There should be a way to do this in python without going out to shell. This would be safer and more secure. The code already uses os.listdir() (which is the python library version of = ls) in later section. Why not use that here to check for virtio bus.