[dpdk-dev] [PATCH] net/mlx5: fix wrong use of vector instruction
2016-11-02 16:56, Adrien Mazarguil: > On Tue, Nov 01, 2016 at 08:13:27AM +, Elad Persiko wrote: > > Constraint alignment was not respected in Tx. > > > > Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path") > > > > Signed-off-by: Elad Persiko > > Acked-by: Adrien Mazarguil "wrong use of vector instruction" is the cause, not the issue. Reworded: "fix buffer alignment in Tx" It would have been valuable to describe the consequences. Applied
[dpdk-dev] [PATCH] net/mlx5: fix wrong use of vector instruction
On Tue, Nov 01, 2016 at 08:13:27AM +, Elad Persiko wrote: > Constraint alignment was not respected in Tx. > > Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path") > > Signed-off-by: Elad Persiko > --- > drivers/net/mlx5/mlx5_rxtx.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c > index 21164ba..ba8e202 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.c > +++ b/drivers/net/mlx5/mlx5_rxtx.c > @@ -309,7 +309,7 @@ mlx5_tx_dbrec(struct txq *txq) > *txq->qp_db = htonl(txq->wqe_ci); > /* Ensure ordering between DB record and BF copy. */ > rte_wmb(); > - rte_mov16(dst, (uint8_t *)data); > + memcpy(dst, (uint8_t *)data, 16); > txq->bf_offset ^= (1 << txq->bf_buf_size); > } > > @@ -449,7 +449,7 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, > uint16_t pkts_n) > wqe->eseg.mss = 0; > wqe->eseg.rsvd2 = 0; > /* Start by copying the Ethernet Header. */ > - rte_mov16((uint8_t *)raw, (uint8_t *)addr); > + memcpy((uint8_t *)raw, ((uint8_t *)addr), 16); > length -= MLX5_WQE_DWORD_SIZE; > addr += MLX5_WQE_DWORD_SIZE; > /* Replace the Ethernet type by the VLAN if necessary. */ > -- > 1.8.3.1 Acked-by: Adrien Mazarguil -- Adrien Mazarguil 6WIND
[dpdk-dev] [PATCH] net/mlx5: fix wrong use of vector instruction
On 11/1/2016 8:13 AM, Elad Persiko wrote: > Constraint alignment was not respected in Tx. > > Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path") > > Signed-off-by: Elad Persiko > --- > drivers/net/mlx5/mlx5_rxtx.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c > index 21164ba..ba8e202 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.c > +++ b/drivers/net/mlx5/mlx5_rxtx.c > @@ -309,7 +309,7 @@ mlx5_tx_dbrec(struct txq *txq) > *txq->qp_db = htonl(txq->wqe_ci); > /* Ensure ordering between DB record and BF copy. */ > rte_wmb(); > - rte_mov16(dst, (uint8_t *)data); > + memcpy(dst, (uint8_t *)data, 16); > txq->bf_offset ^= (1 << txq->bf_buf_size); > } > > @@ -449,7 +449,7 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, > uint16_t pkts_n) > wqe->eseg.mss = 0; > wqe->eseg.rsvd2 = 0; > /* Start by copying the Ethernet Header. */ > - rte_mov16((uint8_t *)raw, (uint8_t *)addr); > + memcpy((uint8_t *)raw, ((uint8_t *)addr), 16); > length -= MLX5_WQE_DWORD_SIZE; > addr += MLX5_WQE_DWORD_SIZE; > /* Replace the Ethernet type by the VLAN if necessary. */ > CC: Maintainers (Adrien Mazarguil )
[dpdk-dev] [PATCH] net/mlx5: fix wrong use of vector instruction
Constraint alignment was not respected in Tx. Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path") Signed-off-by: Elad Persiko --- drivers/net/mlx5/mlx5_rxtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 21164ba..ba8e202 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -309,7 +309,7 @@ mlx5_tx_dbrec(struct txq *txq) *txq->qp_db = htonl(txq->wqe_ci); /* Ensure ordering between DB record and BF copy. */ rte_wmb(); - rte_mov16(dst, (uint8_t *)data); + memcpy(dst, (uint8_t *)data, 16); txq->bf_offset ^= (1 << txq->bf_buf_size); } @@ -449,7 +449,7 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) wqe->eseg.mss = 0; wqe->eseg.rsvd2 = 0; /* Start by copying the Ethernet Header. */ - rte_mov16((uint8_t *)raw, (uint8_t *)addr); + memcpy((uint8_t *)raw, ((uint8_t *)addr), 16); length -= MLX5_WQE_DWORD_SIZE; addr += MLX5_WQE_DWORD_SIZE; /* Replace the Ethernet type by the VLAN if necessary. */ -- 1.8.3.1