* [dpdk-dev] [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes
@ 2018-11-12 17:54 Anoob Joseph
2018-11-13 10:32 ` Jerin Jacob
0 siblings, 1 reply; 3+ messages in thread
From: Anoob Joseph @ 2018-11-12 17:54 UTC (permalink / raw)
To: Ferruh Yigit, Jacob, Jerin
Cc: Saxena, Nitin, Joseph, Anoob, Athreya, Narayana Prasad, dev, stable
From: Nitin Saxena <nitin.saxena@caviumnetworks.com>
When the priv_size of the mbuf is > 128 bytes, the mbuf would not be
properly constructed. This would lead to a corrupt mbuf.
This patch fixes the issue by accounting for
rte_pktmbuf_priv_size(pool) and RTE_PKTMBUF_HEADROOM
while configuring first skip register calculation.
Fixes: 197438ee9f18 ("net/octeontx: add Rx queue setup and release ops")
Cc: stable@dpdk.org
Suggested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Signed-off-by: Nitin Saxena <nitin.saxena@caviumnetworks.com>
---
drivers/net/octeontx/base/octeontx_pki_var.h | 13 +++++++++++--
drivers/net/octeontx/octeontx_ethdev.c | 3 ++-
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/net/octeontx/base/octeontx_pki_var.h b/drivers/net/octeontx/base/octeontx_pki_var.h
index c793b65..f4661d2 100644
--- a/drivers/net/octeontx/base/octeontx_pki_var.h
+++ b/drivers/net/octeontx/base/octeontx_pki_var.h
@@ -7,8 +7,17 @@
#include <rte_byteorder.h>
-#define OCTTX_PACKET_WQE_SKIP 128
-#define OCTTX_PACKET_FIRST_SKIP 240
+#define OCTTX_PACKET_WQE_SKIP 128
+#define OCTTX_PACKET_FIRST_SKIP_MAXREGVAL 496
+#define OCTTX_PACKET_FIRST_SKIP_MAXLEN 512
+#define OCTTX_PACKET_FIRST_SKIP_ADJUST(x) \
+ (RTE_MIN(x, OCTTX_PACKET_FIRST_SKIP_MAXREGVAL))
+#define OCTTX_PACKET_FIRST_SKIP_SUM(p) \
+ (OCTTX_PACKET_WQE_SKIP \
+ + rte_pktmbuf_priv_size(p) \
+ + RTE_PKTMBUF_HEADROOM)
+#define OCTTX_PACKET_FIRST_SKIP(p) \
+ OCTTX_PACKET_FIRST_SKIP_ADJUST(OCTTX_PACKET_FIRST_SKIP_SUM(p))
#define OCTTX_PACKET_LATER_SKIP 128
/* WQE descriptor */
diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
index 9c287df..b30defe 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -844,10 +844,11 @@ octeontx_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
pktbuf_conf.mmask.f_cache_mode = 1;
pktbuf_conf.wqe_skip = OCTTX_PACKET_WQE_SKIP;
- pktbuf_conf.first_skip = OCTTX_PACKET_FIRST_SKIP;
+ pktbuf_conf.first_skip = OCTTX_PACKET_FIRST_SKIP(mb_pool);
pktbuf_conf.later_skip = OCTTX_PACKET_LATER_SKIP;
pktbuf_conf.mbuff_size = (mb_pool->elt_size -
RTE_PKTMBUF_HEADROOM -
+ rte_pktmbuf_priv_size(mb_pool) -
sizeof(struct rte_mbuf));
pktbuf_conf.cache_mode = PKI_OPC_MODE_STF2_STT;
--
2.7.4
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes
2018-11-12 17:54 [dpdk-dev] [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes Anoob Joseph
@ 2018-11-13 10:32 ` Jerin Jacob
2018-11-13 11:53 ` Ferruh Yigit
0 siblings, 1 reply; 3+ messages in thread
From: Jerin Jacob @ 2018-11-13 10:32 UTC (permalink / raw)
To: Joseph, Anoob
Cc: Ferruh Yigit, Jacob, Jerin, Saxena, Nitin, Athreya,
Narayana Prasad, dev, stable
-----Original Message-----
> Date: Mon, 12 Nov 2018 23:24:09 +0530
> From: "Joseph, Anoob" <Anoob.Joseph@cavium.com>
> To: Ferruh Yigit <ferruh.yigit@intel.com>, "Jacob, Jerin"
> <Jerin.JacobKollanukkaran@cavium.com>
> CC: "Saxena, Nitin" <Nitin.Saxena@cavium.com>, "Joseph, Anoob"
> <Anoob.Joseph@cavium.com>, "Athreya, Narayana Prasad"
> <NarayanaPrasad.Athreya@cavium.com>, "dev@dpdk.org" <dev@dpdk.org>,
> "stable@dpdk.org" <stable@dpdk.org>
> Subject: [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes
>
> From: Nitin Saxena <nitin.saxena@caviumnetworks.com>
>
> When the priv_size of the mbuf is > 128 bytes, the mbuf would not be
> properly constructed. This would lead to a corrupt mbuf.
>
> This patch fixes the issue by accounting for
> rte_pktmbuf_priv_size(pool) and RTE_PKTMBUF_HEADROOM
> while configuring first skip register calculation.
>
> Fixes: 197438ee9f18 ("net/octeontx: add Rx queue setup and release ops")
> Cc: stable@dpdk.org
>
> Suggested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
> Signed-off-by: Nitin Saxena <nitin.saxena@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes
2018-11-13 10:32 ` Jerin Jacob
@ 2018-11-13 11:53 ` Ferruh Yigit
0 siblings, 0 replies; 3+ messages in thread
From: Ferruh Yigit @ 2018-11-13 11:53 UTC (permalink / raw)
To: Jerin Jacob, Joseph, Anoob
Cc: Jacob, Jerin, Saxena, Nitin, Athreya, Narayana Prasad, dev, stable
On 11/13/2018 10:32 AM, Jerin Jacob wrote:
> -----Original Message-----
>> Date: Mon, 12 Nov 2018 23:24:09 +0530
>> From: "Joseph, Anoob" <Anoob.Joseph@cavium.com>
>> To: Ferruh Yigit <ferruh.yigit@intel.com>, "Jacob, Jerin"
>> <Jerin.JacobKollanukkaran@cavium.com>
>> CC: "Saxena, Nitin" <Nitin.Saxena@cavium.com>, "Joseph, Anoob"
>> <Anoob.Joseph@cavium.com>, "Athreya, Narayana Prasad"
>> <NarayanaPrasad.Athreya@cavium.com>, "dev@dpdk.org" <dev@dpdk.org>,
>> "stable@dpdk.org" <stable@dpdk.org>
>> Subject: [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes
>>
>> From: Nitin Saxena <nitin.saxena@caviumnetworks.com>
>>
>> When the priv_size of the mbuf is > 128 bytes, the mbuf would not be
>> properly constructed. This would lead to a corrupt mbuf.
>>
>> This patch fixes the issue by accounting for
>> rte_pktmbuf_priv_size(pool) and RTE_PKTMBUF_HEADROOM
>> while configuring first skip register calculation.
>>
>> Fixes: 197438ee9f18 ("net/octeontx: add Rx queue setup and release ops")
>> Cc: stable@dpdk.org
>>
>> Suggested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>> Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
>> Signed-off-by: Nitin Saxena <nitin.saxena@caviumnetworks.com>
>
>
> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>
Applied to dpdk-next-net/master, thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-11-13 11:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-12 17:54 [dpdk-dev] [PATCH] net/octeontx: fix mbuf corruption with larger priv sizes Anoob Joseph
2018-11-13 10:32 ` Jerin Jacob
2018-11-13 11:53 ` Ferruh Yigit
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).