DPDK patches and discussions
 help / color / mirror / Atom feed
* [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

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git