Jianfeng Tan [Fri, 2 Dec 2016 17:48:56 +0000 (17:48 +0000)]
eal: restrict cores auto detection
This patch uses pthread_getaffinity_np() to narrow down used
cores when none of below options is specified:
* coremask (-c)
* corelist (-l)
* and coremap (--lcores)
The purpose of this patch is to leave out these core related options
when DPDK applications are deployed under container env, so that
users do not need decide the core related parameters when developing
applications. Instead, when applications are deployed in containers,
use cpu-set to constrain which cores can be used inside this container
instance. And DPDK application inside containers just rely on this
auto detect mechanism to start polling threads.
Note: previously, some users are using isolated CPUs, which could
be excluded by default. Please add commands like taskset to use
those cores.
Test example:
$ taskset 0xc0000 ./examples/helloworld/build/helloworld -m 1024
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Aaron Conole [Thu, 8 Dec 2016 15:56:45 +0000 (10:56 -0500)]
eal: clarify the argc and argv documentation
It's been a source of confusion in the past, and even with this update
may continue to be a source of confusion. However, the original
language seems to imply that the DPDK EAL will take ownership of the
array passed in. Loosening the language up a bit might give a better
understanding for what is actually happening.
Qiming Yang [Tue, 22 Nov 2016 01:41:24 +0000 (09:41 +0800)]
examples/ethtool: fix driver information
Function pcmd_drvinfo_callback uses struct info to get
the ethtool information of each port. Struct info will
store the information of previous port until this
information be updated. This patch fixes this issue.
Remy Horton [Wed, 30 Nov 2016 02:47:29 +0000 (10:47 +0800)]
examples/ethtool: fix querying non-PCI devices
Doing a device information query on a non-PCI device such as
vhost was resulting in the dereferencing of a NULL pointer
(the absent PCI data), causing a segmentation fault.
Maxime Coquelin [Tue, 6 Dec 2016 12:24:40 +0000 (13:24 +0100)]
doc: introduce PVP reference benchmark
Having reference benchmarks is important in order to obtain
reproducible performance figures.
This patch describes required steps to configure a PVP setup
using testpmd in both host and guest.
Not relying on external vSwitch ease integration in a CI loop by
not being impacted by DPDK API changes.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Rasesh Mody [Wed, 7 Dec 2016 19:22:19 +0000 (11:22 -0800)]
maintainers: update for qede PMD and bnx2x PMD
Following Cavium's acquisition of QLogic we need to update all the
qlogic PMD maintainer's entries to point to our new e-mail addresses.
Update driver's maintainers as they are no longer working for Cavium.
Thanks to Sony Chacko for his support and development of our various
dpdk drivers.
Anatoly Burakov [Sat, 19 Nov 2016 13:10:11 +0000 (13:10 +0000)]
ethdev: fix port lookup if none
Aside from avoiding doing useless work, this also fixes a segfault
when calling rte_eth_dev_get_port_by_name() whenever no devices
were found yet, and therefore rte_eth_dev_data wasn't yet allocated.
Fixes: 9c5b8d8b9feb ("ethdev: clean port id retrieval when attaching") Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Robin Jarry [Fri, 25 Nov 2016 12:22:17 +0000 (13:22 +0100)]
kni: avoid using lsb_release script
The lsb_release script is part of an optional package which is not
always installed. On the other hand, /etc/lsb-release is always present
even on minimal Ubuntu installations.
Thomas Monjalon [Sun, 4 Dec 2016 22:08:45 +0000 (23:08 +0100)]
config: remove insecure warnings
There was an option CONFIG_RTE_INSECURE_FUNCTION_WARNING (disabled by
default), which prevents from using some libc functions:
sprintf, snprintf, vsnprintf, strcpy, strncpy, strcat, strncat, sscanf,
strtok, strsep and strlen.
It's all about using them at the right place with the right precautions.
However, it is neither really possible nor a good advice to disable them.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Baruch Siach [Tue, 6 Dec 2016 08:25:25 +0000 (10:25 +0200)]
doc: fix description of attach to indirect mbuf
Since commit 4a96e8b652181 ("mbuf: allow to clone an indirect mbuf")
attaching to an indirect mbuf creates a clone of that mbuf. Update the mbuf
documentation to match.
Signed-off-by: Baruch Siach <baruch@tkos.co.il> Acked-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Sun, 4 Dec 2016 16:47:37 +0000 (16:47 +0000)]
doc: fix relative path of NIC table input file
Fix relative path between sphinx conf.py file and Nic table file
to allow automatic build on ReadTheDocs.
Fixes: 9db3f52126fb ("doc: generate NIC overview table from ini files") Signed-off-by: John McNamara <john.mcnamara@intel.com> Tested-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Wei Zhao [Mon, 5 Dec 2016 03:40:00 +0000 (11:40 +0800)]
mempool: remove a redundant word in comment
There is a redundant repetition word "for" in comment line of the
file rte_mempool.h after the definition of RTE_MEMPOOL_OPS_NAMESIZE.
The word "for" appears twice in line 359 and 360. One of them is
redundant, so delete it.
Fixes: 449c49b93a6b ("mempool: support handler operations") Signed-off-by: Wei Zhao <wei.zhao1@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
Wei Zhao [Mon, 5 Dec 2016 03:39:04 +0000 (11:39 +0800)]
mempool: remove redundant socket id assignment
There is a redundant repetition mempool socket_id assignment in the
file rte_mempool.c in function rte_mempool_create_empty. The
statement "mp->socket_id = socket_id;"appear twice in line 821
and 824. One of them is redundant, so delete it.
Fixes: 85226f9c526b ("mempool: introduce a function to create an empty pool") Signed-off-by: Wei Zhao <wei.zhao1@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
David Marchand [Wed, 23 Nov 2016 10:55:26 +0000 (11:55 +0100)]
app/testpmd: display port driver name
This makes it easier to check which driver name is reported through ethdev
rte_eth_dev_info_get().
Example:
./build/app/testpmd -c 0x6 --vdev net_af_packet0,iface=mgmt0 --
-i --total-num-mbufs 2049
[snip]
testpmd> show port info all
********************* Infos for port 0 *********************
MAC address: DE:AD:DE:01:02:03
Driver name: net_af_packet
Connect to socket: 0
memory allocation on the socket: 0
Signed-off-by: David Marchand <david.marchand@6wind.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Bert van Leeuwen [Mon, 21 Nov 2016 09:59:38 +0000 (09:59 +0000)]
ethdev: check maximum number of queues for statistics
Arrays inside rte_eth_stats have size=RTE_ETHDEV_QUEUE_STAT_CNTRS.
Some devices report more queues than that and this code blindly uses
the reported number of queues by the device to fill those arrays up.
This patch fixes the problem using MIN between the reported number of
queues and RTE_ETHDEV_QUEUE_STAT_CNTRS.
Fixes: ce757f5c9a4d ("ethdev: new method to retrieve extended statistics") Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com> Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
Wei Dai [Thu, 17 Nov 2016 06:47:15 +0000 (14:47 +0800)]
pci: fix check of mknod
In function pci_mknod_uio_dev() in lib/librte_eal/eal/eal_pci_uio.c,
The return value of mknod() is ret, not f got by fopen().
So the value of ret should be checked for mknod().
Fixes: f7f97c16048e ("pci: add option --create-uio-dev to run without hotplug") Signed-off-by: Wei Dai <wei.dai@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Wed, 23 Nov 2016 15:34:25 +0000 (16:34 +0100)]
log: do not drop debug logs at compile time
Today, all logs whose level is lower than INFO are dropped at
compile-time. This prevents from enabling debug logs at runtime using
--log-level=8.
The rationale was to remove debug logs from the data path at
compile-time, avoiding a test at run-time.
This patch changes the behavior of RTE_LOG() to avoid the compile-time
optimization, and introduces the RTE_LOG_DP() macro that has the same
behavior than the previous RTE_LOG(), for the rare cases where debug
logs are in the data path.
So it is now possible to enable debug logs at run-time by just
specifying --log-level=8. Some drivers still have special compile-time
options to enable more debug log. Maintainers may consider to
remove/reduce them.
Neil Horman [Fri, 18 Nov 2016 18:47:52 +0000 (13:47 -0500)]
pmdinfogen: fix endianness with cross-compilation
pmdinfogen has a bug in which, during build, it pulls in rte_byteorder.h to
obtain the rte macros for byteswapping between the cpu byte order and big or
little endian. Unfortunately, pmdinfogen is a tool that is only meant to be run
during the build of dpdk components, and so, it runs on the host. In cross
compile environments however, the rte_byteorder.h is configured using a target
cpu, who's endianness may differ from that of the host, leading to improper
swapping.
The fix is to use host system defined byte swapping routines rather than the
dpdk provided routines. Note that we are using non posix compliant routines, as
the posix compliant api only addresses 16 and 32 bit swaps, and we also need 64
bit swaps. Those macros exist (via endian.h), but BSD and Linux put that header
in different locations so some ifdeffery is required.
Tested successfully by myself on Linux and BSD systems.
Fixes: 98b0fdb0ffc6 ("pmdinfogen: add buildtools and pmdinfogen utility") Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com>
Thomas Monjalon [Mon, 21 Nov 2016 22:43:14 +0000 (23:43 +0100)]
scripts: check cc stable mailing list in commit
Add a check for commits fixing a released bug.
Such commits are found thanks to scripts/git-log-fixes.sh.
They must be sent CC: stable@dpdk.org.
In order to avoid forgetting CC, this mail header can be written
in the git commit message.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Thomas Monjalon [Mon, 21 Nov 2016 22:42:41 +0000 (23:42 +0100)]
scripts: fix checkpatch from standard input
When checking a valid patch from standard input,
the footer lines of the report are not filtered out.
The function check is called outside of any loop,
so the statement continue can have no effect and the footer is printed.
More precisons about possible behaviours
- with dash, the 'continue' acts like a return in that case
- with bash, it displays an error:
"continue: only meaningful in a `for', `while', or `until' loop"
- with bash --posix, the 'continue' is ignored
Fixes: 8005feef421d ("scripts: add standard input to checkpatch") Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
Jingjing Wu [Tue, 29 Nov 2016 07:58:50 +0000 (15:58 +0800)]
maintainers: replace testpmd maintainer
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Wed, 9 Nov 2016 15:37:58 +0000 (16:37 +0100)]
improve git diff
Sometimes git does not print the name of the function being changed
after @@. It happens especially after a goto label which is not indented.
Giving a hint about the languages of files .c, .h and .py
will improve hunk headers of "git diff" rendering.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
The _rte_eth_dev_call_process function will change to return "int"
and a fourth parameter "void* ret_param" will be added. This change
targets release 17.02.
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Jianfeng Tan [Thu, 22 Sep 2016 05:44:05 +0000 (05:44 +0000)]
doc: announce iomem and ioport removal from igb_uio
In igb_uio, iomem is mapped, and both ioport and io mem are recorded
into uio framework (then into sysfs files), which is duplicated with
what Linux has already provided for user space, and makes the code
too complex.
For iomem, DPDK user space code never opens or reads files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/. Instead,
/sys/pci/bus/devices/xxxx:xx:xx.x/resourceY are used to map device
memory.
For ioport, non-x86 platforms cannot read from files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/ directly, because
non-x86 platforms need to map port region for access in user space,
see non-x86 version pci_uio_ioport_map(). x86 platforms can use the
the same way as uio_pci_generic.
This will remove iomem and ioport mapping in igb_uio kernel module,
and adjusts the iomem implementation in both igb_uio and
uio_pci_generic:
- for x86 platform, get ports info from /proc/ioports;
- for non-x86 platform, map and get ports info by pci_uio_ioport_map().
Note: this will affect those applications who are using files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/ and
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/.
Reshma Pattan [Thu, 10 Nov 2016 16:29:40 +0000 (16:29 +0000)]
pdump: fix log messages
The ethdev Rx/Tx remove callback apis doesn't set rte_errno during
failures, instead they just return negative error number, so using
that number in logs instead of rte_errno upon Rx and Tx callback
removal failures.
Fixes: 278f9454 ("pdump: add new library for packet capture") Signed-off-by: Reshma Pattan <reshma.pattan@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Nipun Gupta [Fri, 11 Nov 2016 15:47:10 +0000 (21:17 +0530)]
mempool: fix leak if populate fails
This patch fixes the issue of memzone not being freed incase the
rte_mempool_populate_phys fails in the rte_mempool_populate_default
This issue was identified when testing with OVS ~2.6
- configure the system with low memory (e.g. < 500 MB)
- add bridge and dpdk interfaces
- delete brigde
- keep on repeating the above sequence.
Fixes: d1d914ebbc25 ("mempool: allocate in several memory chunks by default") Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
Harish Patil [Fri, 11 Nov 2016 17:41:36 +0000 (09:41 -0800)]
net/qede: fix speed capability
- Fix to use bitmapped values in NVM configuration for speed capability
advertisement. This issue is specific to 25G NIC since it is capable
of 25G and 10G speeds.
Wei Zhao [Wed, 9 Nov 2016 07:00:28 +0000 (15:00 +0800)]
net/ixgbe: fix link up with X552
The links never coming up when bring up x552 NIC, device id is 15ac.
This is caused by delete some code which casing
removes X550em SFP iXFI setup for the drivers in function
ixgbe_setup_mac_link_sfp_x550em().
Fix method is recover the deleted code.
Jerin Jacob [Tue, 8 Nov 2016 06:31:25 +0000 (12:01 +0530)]
net/thunderx: disable L3 alignment padding
Based on the packet type(IPv4 or IPv6), the nicvf HW aligns
L3 data to the 64bit memory address.
The alignment creates a hole in mbuf(between the
end of headroom and packet data start).
The new revision of the HW provides an option to disable
the L3 alignment feature and make mbuf layout looks
more like other NICs. For better application compatibility,
disabling l3 alignment feature on the hardware revisions it supports.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Jerin Jacob [Tue, 8 Nov 2016 03:32:56 +0000 (09:02 +0530)]
doc: add ARM profiling methods
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Signed-off-by: John McNamara <john.mcnamara@intel.com> Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
Thomas Monjalon [Wed, 9 Nov 2016 22:27:30 +0000 (23:27 +0100)]
doc: postpone ABI changes for Tx prepare
The changes for the feature "Tx prepare" should be made in version 17.02.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Tomasz Kulasek <tomaszx.kulasek@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jianfeng Tan [Mon, 7 Nov 2016 07:38:46 +0000 (07:38 +0000)]
maintainers: claim responsability for Xen
As some users are still using xen as the hypervisor, I suggest to
continue support for xen in DPDK. And from 16.11, I will be the
maintainer of all xen-related files.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Pablo de Lara [Fri, 4 Nov 2016 12:48:17 +0000 (12:48 +0000)]
doc: add limitation for l3fwd-power sample
L3fwd-power app needs vector mode to be disabled in order to work
properly. The app used to work previously, because it was using
Rx scalar function, but now it uses vector function.
Vector mode needs to be disabled to make the app works,
which has been documented in release notes.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Wei Dai [Fri, 26 Aug 2016 10:08:24 +0000 (18:08 +0800)]
ethdev: comment statistics field support
Add comments to describe that not all statistics fields in
struct rte_eth_stats are supported by any type of network
interface card. If any statistics field is not supported,
its value is 0.
Wenzhuo Lu [Sun, 6 Nov 2016 17:16:14 +0000 (12:16 -0500)]
ip_frag: fix IP reassembly regression
After changing pkt[0] to pkt[], the example IP reassembly is not working.
It's weird because this change is fine. There should be no difference
between them.
As a workaround, revert this change.
Fixes: 347a1e037fd3 ("lib: use C99 syntax for zero-size arrays") Reported-by: Huilong Xu <huilongx.xu@intel.com> Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Yong Wang [Wed, 26 Oct 2016 17:45:07 +0000 (10:45 -0700)]
net/vmxnet3: fix mbuf release on reset/stop
During device reset/stop, vmxnet3 releases all mbufs in tx and
rx cmd ring. For rx, we should go over all ring descriptors and
free using rte_pktmbuf_free_seg() instead of rte_pktmbuf_free()
as the metadata of the mbuf might not be properly initialized
(initialization after mempool creation is done in the rx routine)
and the mbuf should always be a single-segment one when populated.
For tx, we can use the existing way as mbuf, if any, will be a
valid one stashed in the eop.
Fixes: dfaff37fc46d ("vmxnet3: import new vmxnet3 poll mode driver implementation") Signed-off-by: Yong Wang <yongwang@vmware.com>
Ajit Khaparde [Mon, 7 Nov 2016 15:11:39 +0000 (09:11 -0600)]
net/bnxt: remove support for few devices
Some of the production parts will arrive after the 16.11 release.
Back off support for those devices. We will add these IDs again
at an appropriate time.
Nelio Laranjeiro [Thu, 27 Oct 2016 15:04:22 +0000 (17:04 +0200)]
doc: add speed capabilities feature for mlx5
Fixes: 75ef62a94301 ("net/mlx5: fix link speed capability information") Fixes: 188408719888 ("net/mlx5: fix support for newer link speeds") Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: John McNamara <john.mcnamara@intel.com>
John Daley [Tue, 1 Nov 2016 18:08:28 +0000 (11:08 -0700)]
net/enic: fix max packet length check
When the device was configured with an explicit maximum packet length,
it would fail if the value was greater than MTU configured in CIMC/UCSM
(plus L2 header length). It should have been compared against maximum
allowed by the device.
Fixes: bb34ffb848a0 ("net/enic: determine max egress packet size and max MTU") Signed-off-by: John Daley <johndale@cisco.com>
Jakub Palider [Sat, 29 Oct 2016 01:06:14 +0000 (03:06 +0200)]
net/ena: use unmasked head and tail
The next_to_clean and next_to_use ring pointers sometimes were kept
wrapped around ring size, sometimes used beyond this limit. From now
on we increment them without regard to ring size limits, but when
reading the values they are wrapped accordingly. Moreover unit16_t
are unsed whenever possible.
Signed-off-by: Tal Avraham <talavr@annapurnalabs.com> Signed-off-by: Jakub Palider <jpa@semihalf.com>
Qiming Yang [Fri, 4 Nov 2016 09:10:51 +0000 (17:10 +0800)]
net/i40e: fix VF bonded device link down
If VF device is used as slave of a bond device, it will be polled
periodically through alarm. Interrupt is involved here. And then
VF will send I40E_VIRTCHNL_OP_GET_LINK_STAT message to
PF to query the status. The response is handled by interrupt
callback. Interrupt is involved here again. That's why bond
device cannot bring up.
This patch removes I40E_VIRTCHNL_OP_GET_LINK_STAT
message. Link status in VF driver will be updated when PF driver
notify it, and VF stores this link status locally. VF driver just
returns the local status when being required.
Fixes: 4861cde46116 ("i40e: new poll mode driver") Signed-off-by: Qiming Yang <qiming.yang@intel.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Qiming Yang [Fri, 4 Nov 2016 09:10:50 +0000 (17:10 +0800)]
net/i40e: fix link status change interrupt
Previously, link status interrupt in i40e is achieved by checking
LINK_STAT_CHANGE_MASK in PFINT_ICR0 register which is provided only
for diagnostic use. Instead, drivers need to get the link status
change notification by using LSE (Link Status Event).
This patch enables LSE and calls LSC callback when the event is
received. This patch also removes the processing on
LINK_STAT_CHANGE_MASK.
Fixes: 4861cde46116 ("i40e: new poll mode driver") Signed-off-by: Qiming Yang <qiming.yang@intel.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Beilei Xing [Fri, 4 Nov 2016 11:08:08 +0000 (19:08 +0800)]
net/i40e: fix floating VEB
Turning off S-TAG identification will impact floating VEB,
VFs can't communicate with each other.
This patch fixes this issue by judging whether floating
VEB is enabled, S-TAG identification will be turned off
only when floating VEB is disabled.
Jingjing Wu [Fri, 4 Nov 2016 05:42:33 +0000 (13:42 +0800)]
net/i40e: fix DCB configuration
Removing stopping LLDP in firmware is a workaround for a
known errata which can cause Rx hang. But the changing will
cause DCB configuration fails. That is because when LLDP is
enabled, the return value of i40e_init_dcb is success. But
following check just considered the case when LLDP agent
is disabled.
This patch fixes this issue.
Fixes: fcbd40d4327b ("net/i40e: fix Rx hang when disable LLDP") Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: Beilei Xing <beilei.xing@intel.com>