From: <krytarowski@caviumnetworks.com>
To: <dev@dpdk.org>
Subject: [PATCH v7 1/2] tools: Add support for handling built-in kernel modules
Date: Thu, 28 Jan 2016 14:13:53 +0100 [thread overview]
Message-ID: <1453986834-31128-1-git-send-email-krytarowski@caviumnetworks.com> (raw)
In-Reply-To: <1453283317-1078-1-git-send-email-krytarowski@caviumnetworks.com>
From: Kamil Rytarowski <Kamil.Rytarowski@caviumnetworks.com>
Currently dpdk_nic_bind.py detects Linux kernel modules via reading
/proc/modules. Built-in ones aren't listed there and therefore they are not
being found by the script.
Add support for checking built-in modules with parsing the sysfs files.
This commit obsoletes the /proc/modules parsing approach.
Signed-off-by: Kamil Rytarowski <Kamil.Rytarowski@caviumnetworks.com>
---
tools/dpdk_nic_bind.py | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/tools/dpdk_nic_bind.py b/tools/dpdk_nic_bind.py
index f02454e..85cb6f1 100755
--- a/tools/dpdk_nic_bind.py
+++ b/tools/dpdk_nic_bind.py
@@ -156,22 +156,32 @@ def check_modules():
'''Checks that igb_uio is loaded'''
global dpdk_drivers
- fd = file("/proc/modules")
- loaded_mods = fd.readlines()
- fd.close()
-
# list of supported modules
mods = [{"Name" : driver, "Found" : False} for driver in dpdk_drivers]
# first check if module is loaded
- for line in loaded_mods:
+ try:
+ # Get list of sysfs modules (both built-in and dynamically loaded)
+ sysfs_path = '/sys/module/'
+
+ # Get the list of directories in sysfs_path
+ sysfs_mods = [os.path.join(sysfs_path, o) for o
+ in os.listdir(sysfs_path)
+ if os.path.isdir(os.path.join(sysfs_path, o))]
+
+ # Extract the last element of '/sys/module/abc' in the array
+ sysfs_mods = [a.split('/')[-1] for a in sysfs_mods]
+
+ # special case for vfio_pci (module is named vfio-pci,
+ # but its .ko is named vfio_pci)
+ sysfs_mods = map(lambda a:
+ a if a != 'vfio_pci' else 'vfio-pci', sysfs_mods)
+
for mod in mods:
- if line.startswith(mod["Name"]):
- mod["Found"] = True
- # special case for vfio_pci (module is named vfio-pci,
- # but its .ko is named vfio_pci)
- elif line.replace("_", "-").startswith(mod["Name"]):
+ if mod["Name"] in sysfs_mods:
mod["Found"] = True
+ except:
+ pass
# check if we have at least one loaded module
if True not in [mod["Found"] for mod in mods] and b_flag is not None:
--
1.9.1
next prev parent reply other threads:[~2016-01-28 13:14 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1449499771-31466-1-git-send-email-Kamil.Rytarowski@caviumnetworks.com>
2015-12-07 16:57 ` [PATCH v2 1/2] tools: Add support for handling built-in kernel modules Kamil Rytarowski
2015-12-07 16:57 ` [PATCH v2 2/2] eal/linux: " Kamil Rytarowski
2015-12-07 17:14 ` David Marchand
2015-12-07 18:36 ` [PATCH v3 1/2] tools: " Kamil Rytarowski
2015-12-07 18:36 ` [PATCH v3 2/2] eal/linux: " Kamil Rytarowski
2015-12-07 20:45 ` David Marchand
2015-12-07 20:55 ` Stephen Hemminger
2015-12-08 7:25 ` Panu Matilainen
2015-12-08 13:08 ` Kamil Rytarowski
2015-12-08 15:33 ` [PATCH v4 1/2] tools: " Kamil Rytarowski
2015-12-08 15:33 ` [PATCH v4 2/2] eal/linux: " Kamil Rytarowski
2015-12-09 7:30 ` Panu Matilainen
2015-12-09 13:28 ` Kamil Rytarowski
2015-12-09 13:19 ` [PATCH v5 1/2] tools: " Kamil Rytarowski
2015-12-09 13:19 ` [PATCH v5 2/2] eal/linux: " Kamil Rytarowski
2015-12-09 16:38 ` Stephen Hemminger
2015-12-09 16:45 ` Kamil Rytarowski
2016-01-18 14:22 ` Yuanhan Liu
2016-01-19 16:38 ` Kamil Rytarowski
2015-12-16 14:14 ` [PATCH v5 1/2] tools: " Kamil Rytarowski
2016-01-18 9:26 ` Kamil Rytarowski
2016-01-18 14:21 ` Yuanhan Liu
2016-01-19 16:34 ` Kamil Rytarowski
2016-01-18 14:32 ` Thomas Monjalon
2016-01-19 16:35 ` Kamil Rytarowski
2016-01-26 15:12 ` Thomas Monjalon
2016-01-28 11:16 ` Kamil Rytarowski
2016-01-20 9:48 ` [PATCH v6 " krytarowski
2016-01-20 9:48 ` [PATCH v6 2/2] eal/linux: " krytarowski
2016-01-26 9:31 ` [PATCH v6 1/2] tools: " Kamil Rytarowski
2016-01-26 15:23 ` Thomas Monjalon
2016-01-28 11:17 ` Kamil Rytarowski
2016-01-28 11:22 ` Panu Matilainen
2016-01-28 12:54 ` Kamil Rytarowski
2016-01-28 13:52 ` Thomas Monjalon
2016-01-28 15:33 ` Kamil Rytarowski
2016-01-28 13:13 ` krytarowski [this message]
2016-01-28 13:13 ` [PATCH v7 2/2] eal/linux: " krytarowski
2016-02-09 14:56 ` Thomas Monjalon
2016-02-09 16:07 ` Kamil Rytarowski
2016-01-29 7:21 ` [PATCH v7 1/2] tools: " Yuanhan Liu
2016-02-08 22:14 ` Kamil Rytarowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1453986834-31128-1-git-send-email-krytarowski@caviumnetworks.com \
--to=krytarowski@caviumnetworks.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.