Commit Graph

35 Commits

Author SHA1 Message Date
Thadeu Lima de Souza Cascardo
e114696200 tools: allow binding to other network class devices
dpdk_nic_bind will only handle Ethernet devices, but Mellanox ConnectX-3 Pro,
for example, is a Network class device, but not an Ethernet one. Even though
this allows other devices in the list, like Wireless devices, this should not be
a problem.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com>
2016-05-19 12:24:18 +02:00
Jerin Jacob
4e72892c33 tools: fix setup with built-in kernel modules
probe the kernel module existence through /sys/module/ to make it work
with both module and inbuilt kernel module

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2016-03-24 22:04:10 +01:00
Jerin Jacob
080358a315 tools: fix setup with huge page size other than 2MB
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2016-03-24 22:04:10 +01:00
Mauricio Vasquez B
b610787fb9 tools: fix flake8 warnings in bind script
flake8 checks were run for both python 2.7 and 3.4

There were some style issues as:
- Line width > 79
- No double blank line before function definition
- No double blank space before inline comment
- Some other minor issues

Signed-off-by: Mauricio Vasquez B <mauricio.vasquezbernal@studenti.polito.it>
Acked-by: John McNamara <john.mcnamara@intel.com>
2016-03-24 22:04:10 +01:00
Keith Wiles
0f0ae3f1b0 tools: remove extra blank lines in CPU layout
The output for the core list included an extra linefeed making
the number of lines displayed much larger then required.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
2016-03-24 22:04:10 +01:00
Kamil Rytarowski
bb9f408550 tools: support binding to built-in kernel modules
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>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-02-09 16:03:46 +01:00
Dawid Jurczak
16c1814c80 tools: support Python 3 in bind script
This patch fixes syntax errors during binding ethernet device
on systems where Python 3 is default.
Backward compatibility with Python 2 is preserved.

Signed-off-by: Dawid Jurczak <dawid_jurek@vp.pl>
2016-02-09 12:54:09 +01:00
Jeff Shaw
da82ee17e6 tools: fix unbinding failure handling
We should call sys.exit(), not divide sys by exit().

Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2016-02-09 12:54:09 +01:00
Thomas Monjalon
27f356c48d mk: remove multi-target install
The multi-target install create some subdirectories with the target name
which is not standard for a "make install" procedure.

The uninstall procedure cannot be applied properly (without removing
all files in a directory). It would need to pre-compute paths.
As it is a packaging issue, it is removed from the build system capabilities.

The variable BUILD_DIR is also renamed to RTE_OUTPUT used in other files.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
2015-12-06 15:41:04 +01:00
Harry van Haaren
8c91541188 tools: add short alias -s to NIC binding status
This patch adds -s as an alias to --status in dpdk_nic_bind.py,
providing a convenient shorthand.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2015-12-06 01:02:51 +01:00
John McNamara
992ecdd839 tools: exit setup script without prompt
Exit tools/setup.sh script without prompting "Press enter to continue".

The script can now be exited by typing the option number, "quit" or "q".

Signed-off-by: John McNamara <john.mcnamara@intel.com>
2015-12-04 16:32:00 +01:00
Stephen Hemminger
8ea56fadc9 tools: fix comment in bind script
The function documentation was obviously copied and not updated.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2015-08-03 19:22:42 +02:00
Andre Richter
25a6912796 tools: fix vfio support
This patch fixes several minor issues in setup.sh:

     - show_nics() would not display the current Ethernet settings if
       the user only loads the vfio-pci module, b/c it only checks for
       presence of igb_uio. Fix this by adding a check for vfio-pci.

     - unbind_nics(): Fix option naming and string inside function.

     - Exchange a forgotten "igb_uio" with "vfio-pci" in a comment.

Signed-off-by: Andre Richter <andre.o.richter@gmail.com>
2015-03-23 14:29:31 +01:00
Andre Richter
83246086ab tools: remove absolute path of chmod for vfio setup
setup.sh uses /usr/bin/chmod, but depending on distribution, it is not always there.
For example, Ubuntu has /bin/chmod. Fix this by removing the absolute path, like it is
done e.g. with grep.

Signed-off-by: Andre Richter <andre.o.richter@gmail.com>
2015-03-17 22:58:21 +01:00
Ouyang Changchun
92ff8cf229 tools: fix binding to unsupported driver
The dpdk_nic_bind script will not allow ports to be bound or unbound if none of the
kernel modules supported by DPDK is loaded. This patch relaxes this restriction by
checking if a DPDK module is actually requested. The example below illustrates this
problem:

In virtio test, on the guest
1. Bind virtio port to igb_uio driver;
2. Remove igb_uio module;
3. Bind virtio port to virtio-pci driver, it fails and reports:
   "Error - no supported modules are loaded"

The script should check the to-be-bound driver flag, if it is dpdk driver(igb_uio, vfio etc),
and the corresponding module is not loaded, then exit, otherwise, just report a warning,
and continue to bind the non-dpdk driver(like virtio-pci) to dev.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Tested-by: Qian Xu <qian.q.xu@intel.com>
Acked-by: Michael Qiu <michael.qiu@intel.com>
2015-03-05 21:33:53 +01:00
Danny Zhou
1dee76c032 tools: enable binding device to uio_pci_generic
Add uio_pci_generic to the list of supported kernel drivers.

Signed-off-by: Danny Zhou <danny.zhou@intel.com>
Tested-by: Qun Wan <qun.wan@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2015-02-20 23:34:44 +01:00
Daniel Mrzyglod
ee1a5470fa tools: fix setup script for Fedora 21
script was expecting /lib/modules/$(uname -r)/kernel/drivers/uio/uio.ko
but in fedora 21 there are Compressed kernel modules - xz (LZMA)

Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2014-10-10 17:50:31 +02:00
Bruce richardson
604f829fb3 tools: allow nic status query without igb_uio
Allow the nic bind/unbind script to print out its status messages even
if the igb_uio driver is not loaded. For binding and unbinding NICs, the
behaviour is the same, and the igb_uio driver still needs to be loaded.

Signed-off-by: Bruce richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-27 03:08:18 +02:00
Anatoly Burakov
49c5044a36 tools: unbind ports that were erroneously bound
When binding devices to a generic driver (i.e. one that doesn't have a
PCI ID table, some devices that are not bound to any other driver could
be bound even if no one has asked them to. hence, we check the list of
drivers again, and see if some of the previously-unbound devices were
erroneously bound. if such devices are found, they are unbound back.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-27 02:39:45 +02:00
Shannon Zhao
f1445721a9 tools: fix alignment of cpu layout output
Bug: when "core id" is greater than 9, the cpu_layout.py output doesn't align.

        Socket 0        Socket 1
        ---------       ---------
Core 9  [4, 16]         [10, 22]

Core 10         [5, 17]         [11, 23]

Solution: adjust output format to align based on the maximum length of the "core id" and "processor"

        Socket 0        Socket 1
        --------        --------
Core 9  [4, 16]         [10, 22]

Core 10 [5, 17]         [11, 23]

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2014-06-19 00:57:50 +02:00
Anatoly Burakov
e88b42f818 tools: add vfio support to setup script
Support for loading/unloading VFIO drivers, binding/unbinding devices
to/from VFIO, also setting up correct userspace permissions.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: HuilongX Xu <huilongx.xu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-16 15:02:11 +02:00
Anatoly Burakov
d7e6689981 tools: support vfio in dpdk_nic_bind
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: HuilongX Xu <huilongx.xu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-16 15:02:11 +02:00
Anatoly Burakov
f0e14c5f66 tools: rename igb_uio_bind to dpdk_nic_bind
Renaming the igb_uio_bind script to dpdk_nic_bind to have a generic name
before supporting two drivers.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-16 15:02:11 +02:00
Anatoly Burakov
629395b063 igb_uio: remove PCI id table
Removing PCI ID list to make igb_uio more similar to a generic driver
like vfio-pci or pci_uio_generic. This is done to make it easier for
the binding script to support multiple drivers.

Note that since igb_uio no longer has a PCI ID list, it can now be
bound to any device, not just those explicitly supported by DPDK. In
other words, it now behaves similar to PCI stub, VFIO and other generic
PCI drivers.

Therefore to bind a new device to igb_uio, the user will now have to
first write its PCI ID to "new_id" file inside the igb_uio driver
directory, and only then write the PCI ID to "bind". This is reflected
in changes to PCI binding script as well.

There's a weird behaviour of sysfs when a new device ID is added to
new_id. Subsequent writing to "bind" will result in IOError on
closing the file. This error is harmless but it triggers the
exception anyway, so in order to work around that, we check if the
device was actually bound to the driver before raising an error.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: HuilongX Xu <huilongx.xu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-16 15:02:11 +02:00
Bruce Richardson
3031749c2d remove trailing whitespaces
This commit removes trailing whitespace from lines in files. Almost all
files are affected, as the BSD license copyright header had trailing
whitespace on 4 lines in it [hence the number of files reporting 8 lines
changed in the diffstat].

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
[Thomas: remove spaces before tabs in libs]
[Thomas: remove more trailing spaces in non-C files]
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2014-06-11 00:29:34 +02:00
Thomas Monjalon
ecdf5f53ff tools: rename pci_unbind script
In order to make this tool available among other system commands,
the name must be more specific.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Chris Wright <chrisw@redhat.com>
2014-03-20 17:50:51 +01:00
Bruce Richardson
e9d48c0072 update Intel copyright years to 2014
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2014-02-25 21:29:14 +01:00
Intel
1c1d4d7a92 doc: whitespace changes in licenses
Signed-off-by: Intel
2013-10-09 14:51:55 +02:00
Intel
a22f5ce8fc pci: don't unbind resources on exit
unbind operations must be done before starting eal application

Signed-off-by: Intel
2013-09-17 14:09:22 +02:00
Intel
b6df9fc871 update copyright date to 2013
Signed-off-by: Intel
2013-07-25 16:07:52 +02:00
Intel
d6537e6a74 pci: make it possible to keep devices bound to uio
Binding code has been refactored as well.

Signed-off-by: Intel
2013-07-25 15:23:28 +02:00
Intel
af89e7f85b eal: rework cpu information discovery
Signed-off-by: Intel
2013-07-25 15:23:26 +02:00
Intel
3fc5ca2f63 kni: initial import
Signed-off-by: Intel
2013-07-25 15:01:57 +02:00
Intel
dada9ef6ed remove version in all files
Signed-off-by: Intel
2013-07-05 11:59:50 +02:00
Intel
af75078fec first public release
version 1.2.3

Signed-off-by: Intel
2013-03-11 17:19:20 +01:00