From 4af002e26d73d38c7a61dcf8414f4c3552f50a05 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 06 2019 16:54:14 +0000 Subject: import dpdk-18.11.2-1.el7 --- diff --git a/.dpdk.metadata b/.dpdk.metadata index 2f634f6..8677a15 100644 --- a/.dpdk.metadata +++ b/.dpdk.metadata @@ -1 +1 @@ -9f538fb3449205bccca93073d79176636134705b SOURCES/dpdk-18.11.tar.xz +6e04c3e3a82f91ebe0360b8067df59e2b774924d SOURCES/dpdk-18.11.2.tar.xz diff --git a/.gitignore b/.gitignore index be3a994..d90f2aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dpdk-18.11.tar.xz +SOURCES/dpdk-18.11.2.tar.xz diff --git a/SOURCES/0001-bus-vmbus-fix-race-in-subchannel-creation.patch b/SOURCES/0001-bus-vmbus-fix-race-in-subchannel-creation.patch deleted file mode 100644 index b8517cd..0000000 --- a/SOURCES/0001-bus-vmbus-fix-race-in-subchannel-creation.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 25363eb99bc43443bec354abea1e40db61280b30 Mon Sep 17 00:00:00 2001 -From: Stephen Hemminger -Date: Wed, 5 Dec 2018 14:11:56 -0800 -Subject: [PATCH 1/3] bus/vmbus: fix race in subchannel creation - -[ upstream commit 4970103e89f4f828669acf3b465e984fdc891e1e ] - -When using multiple queues, there was a race with the kernel -in setting up the second channel. This regression is due to a kernel change -which does not allow accessing sysfs files for Hyper-V channels that are not opened. - -The fix is simple, just move the logic to detect not ready -sub channels earlier in the existing loop. - -Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support") - -Reported-by: Mohammed Gamal -Signed-off-by: Stephen Hemminger -(cherry picked from commit ca17e6624251b05cf188997cffc3e1ab2e50561a) -Signed-off-by: Maxime Coquelin ---- - drivers/bus/vmbus/linux/vmbus_uio.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/drivers/bus/vmbus/linux/vmbus_uio.c b/drivers/bus/vmbus/linux/vmbus_uio.c -index 12e97e3a4..38df4d724 100644 ---- a/drivers/bus/vmbus/linux/vmbus_uio.c -+++ b/drivers/bus/vmbus/linux/vmbus_uio.c -@@ -357,6 +357,12 @@ int vmbus_uio_get_subchan(struct vmbus_channel *primary, - continue; - } - -+ if (!vmbus_isnew_subchannel(primary, relid)) -+ continue; /* Already know about you */ -+ -+ if (!vmbus_uio_ring_present(dev, relid)) -+ continue; /* Ring may not be ready yet */ -+ - snprintf(subchan_path, sizeof(subchan_path), "%s/%lu", - chan_path, relid); - err = vmbus_uio_sysfs_read(subchan_path, "subchannel_id", -@@ -370,12 +376,6 @@ int vmbus_uio_get_subchan(struct vmbus_channel *primary, - if (subid == 0) - continue; /* skip primary channel */ - -- if (!vmbus_isnew_subchannel(primary, relid)) -- continue; -- -- if (!vmbus_uio_ring_present(dev, relid)) -- continue; /* Ring may not be ready yet */ -- - err = vmbus_uio_sysfs_read(subchan_path, "monitor_id", - &monid, UINT8_MAX); - if (err) { --- -2.20.1 - diff --git a/SOURCES/0002-net-netvsc-enable-SR-IOV.patch b/SOURCES/0002-net-netvsc-enable-SR-IOV.patch deleted file mode 100644 index 393733c..0000000 --- a/SOURCES/0002-net-netvsc-enable-SR-IOV.patch +++ /dev/null @@ -1,38 +0,0 @@ -From da9c7a3059fb4cffef8d1101a247fafabd9be7bd Mon Sep 17 00:00:00 2001 -From: Stephen Hemminger -Date: Wed, 5 Dec 2018 14:11:57 -0800 -Subject: [PATCH 2/3] net/netvsc: enable SR-IOV - -[ upstream commit 825ab257b5ce8235ab0cdc260e5b7b757e102875 ] - -Make DPDK enable SRIOV flag in same way as Linux and FreeBSD. - -Fixes: dc7680e8597c ("net/netvsc: support integrated VF") - -Signed-off-by: Stephen Hemminger -(cherry picked from commit 21dc946c2b5524c7e6ec1fe4079864f3322dd483) -Signed-off-by: Maxime Coquelin ---- - drivers/net/netvsc/hn_nvs.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/net/netvsc/hn_nvs.c b/drivers/net/netvsc/hn_nvs.c -index 9690c5f8a..d58770e04 100644 ---- a/drivers/net/netvsc/hn_nvs.c -+++ b/drivers/net/netvsc/hn_nvs.c -@@ -326,9 +326,9 @@ hn_nvs_conf_ndis(struct hn_data *hv, unsigned int mtu) - conf.mtu = mtu + ETHER_HDR_LEN; - conf.caps = NVS_NDIS_CONF_VLAN; - -- /* TODO enable SRIOV */ -- //if (hv->nvs_ver >= NVS_VERSION_5) -- // conf.caps |= NVS_NDIS_CONF_SRIOV; -+ /* enable SRIOV */ -+ if (hv->nvs_ver >= NVS_VERSION_5) -+ conf.caps |= NVS_NDIS_CONF_SRIOV; - - /* NOTE: No response. */ - error = hn_nvs_req_send(hv, &conf, sizeof(conf)); --- -2.20.1 - diff --git a/SOURCES/0003-net-netvsc-disable-multi-queue-on-older-servers.patch b/SOURCES/0003-net-netvsc-disable-multi-queue-on-older-servers.patch deleted file mode 100644 index 6d055d4..0000000 --- a/SOURCES/0003-net-netvsc-disable-multi-queue-on-older-servers.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0598625d2e17374b7d5693972f5acb59fef25f63 Mon Sep 17 00:00:00 2001 -From: Stephen Hemminger -Date: Wed, 5 Dec 2018 14:11:58 -0800 -Subject: [PATCH 3/3] net/netvsc: disable multi-queue on older servers - -[ upstream commit afbc22bf51ab98b9b61b11eb6d38278a9d577111 ] - -NDIS multi-queue support is only in WS2012 or later. Check the NDIS -version to limit to single queue on older versions. Similar code -exists in Linux driver. - -Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device") - -Signed-off-by: Stephen Hemminger -(cherry picked from commit d387b7ae45a520970ff55ea6ce75b48d5e69c4d9) -Signed-off-by: Maxime Coquelin ---- - drivers/net/netvsc/hn_ethdev.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c -index b330bf3d7..1256fa399 100644 ---- a/drivers/net/netvsc/hn_ethdev.c -+++ b/drivers/net/netvsc/hn_ethdev.c -@@ -732,6 +732,7 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) - hv->chim_res = &vmbus->resource[HV_SEND_BUF_MAP]; - hv->port_id = eth_dev->data->port_id; - hv->latency = HN_CHAN_LATENCY_NS; -+ hv->max_queues = 1; - - err = hn_parse_args(eth_dev); - if (err) -@@ -770,6 +771,10 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) - if (err) - goto failed; - -+ /* Multi queue requires later versions of windows server */ -+ if (hv->nvs_ver < NVS_VERSION_5) -+ return 0; -+ - max_chan = rte_vmbus_max_channels(vmbus); - PMD_INIT_LOG(DEBUG, "VMBus max channels %d", max_chan); - if (max_chan <= 0) --- -2.20.1 - diff --git a/SOURCES/0004-net-virtio-set-offload-flag-for-jumbo-frames.patch b/SOURCES/0004-net-virtio-set-offload-flag-for-jumbo-frames.patch deleted file mode 100644 index dc39d4d..0000000 --- a/SOURCES/0004-net-virtio-set-offload-flag-for-jumbo-frames.patch +++ /dev/null @@ -1,63 +0,0 @@ -From a4b153795f55b303741ef4a2dd2205291ef2a79e Mon Sep 17 00:00:00 2001 -From: Jens Freimann -Date: Wed, 30 Jan 2019 08:19:32 -0500 -Subject: [PATCH] net/virtio: set offload flag for jumbo frames - -[ upstream commit 8b90e4358112b9e41f8eaa1ba14c783570307fea ] - -Port configuration fails because offload flags don't match the expected -value when max-pkt-len is set to a value that should enable receive port -offloading but doesn't. - -The .dev_infos_get callback can be called before the configure callback. -At that time we don't know the maximum packet size yet because it is -only set up when ports are started. So in virtio_dev_info_get() just -always set the jumbo packet offload flag. - -Check the maximum packet length at device configure time, because then we -have access to the max-pkt-len value provided by the user. If the -max-pkt-len exceeds the maximum MTU supported by the device we remove -the VIRTIO_NET_F_MTU flag from requested features. - -Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API") -Cc: stable@dpdk.org - -Signed-off-by: Jens Freimann ---- - drivers/net/virtio/virtio_ethdev.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c -index 7c4c1df00..7c2fe76f3 100644 ---- a/drivers/net/virtio/virtio_ethdev.c -+++ b/drivers/net/virtio/virtio_ethdev.c -@@ -1972,6 +1972,8 @@ virtio_dev_configure(struct rte_eth_dev *dev) - const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode; - const struct rte_eth_txmode *txmode = &dev->data->dev_conf.txmode; - struct virtio_hw *hw = dev->data->dev_private; -+ uint32_t ether_hdr_len = ETHER_HDR_LEN + VLAN_TAG_LEN + -+ hw->vtnet_hdr_size; - uint64_t rx_offloads = rxmode->offloads; - uint64_t tx_offloads = txmode->offloads; - uint64_t req_features; -@@ -1986,6 +1988,9 @@ virtio_dev_configure(struct rte_eth_dev *dev) - return ret; - } - -+ if (rxmode->max_rx_pkt_len > hw->max_mtu + ether_hdr_len) -+ req_features &= ~(1ULL << VIRTIO_NET_F_MTU); -+ - if (rx_offloads & (DEV_RX_OFFLOAD_UDP_CKSUM | - DEV_RX_OFFLOAD_TCP_CKSUM)) - req_features |= (1ULL << VIRTIO_NET_F_GUEST_CSUM); -@@ -2339,6 +2344,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) - - host_features = VTPCI_OPS(hw)->get_features(hw); - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; -+ dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME; - if (host_features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) { - dev_info->rx_offload_capa |= - DEV_RX_OFFLOAD_TCP_CKSUM | --- -2.20.1 - diff --git a/SPECS/dpdk.spec b/SPECS/dpdk.spec index b412a86..09e597a 100644 --- a/SPECS/dpdk.spec +++ b/SPECS/dpdk.spec @@ -8,10 +8,10 @@ #% define date 20181127 #% define shortcommit0 %(c=%{commit0}; echo ${c:0:7}) -%define ver 18.11 -%define rel 4 +%define ver 18.11.2 +%define rel 1 -%define srcname dpdk +%define srcname dpdk-stable Name: dpdk Version: %{ver} @@ -37,10 +37,7 @@ Source505: ppc_64-power8-linuxapp-gcc-config Source506: x86_64-native-linuxapp-gcc-config # Patches only in dpdk package -Patch0: 0001-bus-vmbus-fix-race-in-subchannel-creation.patch -Patch1: 0002-net-netvsc-enable-SR-IOV.patch -Patch2: 0003-net-netvsc-disable-multi-queue-on-older-servers.patch -Patch3: 0004-net-virtio-set-offload-flag-for-jumbo-frames.patch + Summary: Set of libraries and drivers for fast packet processing @@ -281,6 +278,9 @@ sed -i -e 's:-%{machine_tmpl}-:-%{machine}-:g' %{buildroot}/%{_sysconfdir}/profi %endif %changelog +* Thu Jun 27 2019 Timothy Redaelli - 18.11.2-1 +- Updated to DPDK 18.11.2 (#1713704) + * Mon Feb 18 2019 Jens Freimann - 18.11-4 - Set correct offload flags for virtio and allow jumbo frames (#1669355)