From patchwork Thu Apr 27 17:55:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ferruh Yigit X-Patchwork-Id: 23978 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 4EB85298F; Thu, 27 Apr 2017 19:55:47 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 730AB1077 for ; Thu, 27 Apr 2017 19:55:45 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP; 27 Apr 2017 10:55:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,384,1488873600"; d="scan'208";a="850513779" Received: from sivswdev02.ir.intel.com ([10.237.217.46]) by FMSMGA003.fm.intel.com with ESMTP; 27 Apr 2017 10:55:43 -0700 From: Ferruh Yigit To: Thomas Monjalon Cc: dev@dpdk.org, Ferruh Yigit Date: Thu, 27 Apr 2017 18:55:37 +0100 Message-Id: <20170427175537.26147-1-ferruh.yigit@intel.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20170426115810.495-1-ferruh.yigit@intel.com> References: <20170426115810.495-1-ferruh.yigit@intel.com> Subject: [dpdk-dev] [PATCH v2] usertools: add status-dev argument to devbind X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Script displays status for all device types and output is much longer than it used to be. This makes harder to read script output. This patch adds new --status-dev argument to the script to select a device group to display status. Supported device groups: net crypto event mempool Sample usage: ./usertools/dpdk-devbind.py --status-dev mempool Signed-off-by: Ferruh Yigit --- v2: * new --status-dev long option added instead of --type that will work together with existing status flag. Existing --status option behavior kept untouched. --- usertools/dpdk-devbind.py | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py index bb4d536..1e8ed1f 100755 --- a/usertools/dpdk-devbind.py +++ b/usertools/dpdk-devbind.py @@ -86,7 +86,8 @@ def usage(): Display usage information and quit -s, --status: - Print the current status of all known network and crypto devices. + Print the current status of all known network, crypto, event + and mempool devices. For each device, it displays the PCI domain, bus, slot and function, along with a text description of the device. Depending upon whether the device is being used by a kernel driver, the igb_uio driver, or no @@ -99,6 +100,10 @@ def usage(): status display will always occur after the other operations have taken place. + --status-dev: + Print the status of given device group. Supported device groups are: + "net", "crypto", "event" and "mempool" + -b driver, --bind=driver: Select the driver to use or \"none\" to unbind the device @@ -119,6 +124,9 @@ def usage(): To display current device status: %(argv0)s --status +To display current network device status: + %(argv0)s --status-dev net + To bind eth1 from the current driver and move to use igb_uio %(argv0)s --bind=igb_uio eth1 @@ -598,16 +606,24 @@ def show_status(): Displays to the user what devices are bound to the igb_uio driver, the kernel driver or to no driver''' - show_device_status(network_devices, "Network") - show_device_status(crypto_devices, "Crypto") - show_device_status(eventdev_devices, "Eventdev") - show_device_status(mempool_devices, "Mempool") + if status_dev == "net" or status_dev == "all": + show_device_status(network_devices, "Network") + + if status_dev == "crypto" or status_dev == "all": + show_device_status(crypto_devices, "Crypto") + + if status_dev == "event" or status_dev == "all": + show_device_status(eventdev_devices, "Eventdev") + + if status_dev == "mempool" or status_dev == "all": + show_device_status(mempool_devices, "Mempool") def parse_args(): '''Parses the command-line arguments given by the user and takes the appropriate action for each''' global b_flag global status_flag + global status_dev global force_flag global args if len(sys.argv) <= 1: @@ -616,8 +632,8 @@ def parse_args(): try: opts, args = getopt.getopt(sys.argv[1:], "b:us", - ["help", "usage", "status", "force", - "bind=", "unbind"]) + ["help", "usage", "status", "status-dev=", + "force", "bind=", "unbind", ]) except getopt.GetoptError as error: print(str(error)) print("Run '%s --usage' for further information" % sys.argv[0]) @@ -627,8 +643,12 @@ def parse_args(): if opt == "--help" or opt == "--usage": usage() sys.exit(0) + if opt == "--status-dev": + status_flag = True + status_dev = arg if opt == "--status" or opt == "-s": status_flag = True + status_dev = "all" if opt == "--force": force_flag = True if opt == "-b" or opt == "-u" or opt == "--bind" or opt == "--unbind":