From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <prvs=2050b901fc=gmussar@ciena.com> Received: from mx0a-00103a01.pphosted.com (mx0b-00103a01.pphosted.com [67.231.152.227]) by dpdk.org (Postfix) with ESMTP id 0EF9D2956 for <dev@dpdk.org>; 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" <gmussar@ciena.com> To: "Dey, Souvik" <sodey@sonusnet.com>, Stephen Hemminger <stephen@networkplumber.org> CC: "nhorman@tuxdriver.com" <nhorman@tuxdriver.com>, "dev@dpdk.org" <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: <C281A17C31CFD745B242416D0E96EC63AB81F629@ONWVEXCHMB04.ciena.com> References: <20160825022546.96468-1-sodey@sonusnet.com> <20160826085500.5691e07d@xeon-e3> <BN6PR03MB2740E7E9FFD9EC7D093A3442DAEF0@BN6PR03MB2740.namprd03.prod.outlook.com> <C281A17C31CFD745B242416D0E96EC63AB81F535@ONWVEXCHMB04.ciena.com> <BN6PR03MB27402670D815D01FE58D3E38DAE10@BN6PR03MB2740.namprd03.prod.outlook.com> In-Reply-To: <BN6PR03MB27402670D815D01FE58D3E38DAE10@BN6PR03MB2740.namprd03.prod.outlook.com> 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 <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=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 <sodey@sonusnet.com>; Stephen Hemminger <stephen@networkplu= mber.org> 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 <sodey@sonusnet.com> 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 <sodey@sonusnet.com> 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.