summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2018-03-26 21:04:47 +0000
committerhselasky <hselasky@FreeBSD.org>2018-03-26 21:04:47 +0000
commita25e46b262a153085c528bdcb96133e052e8d24f (patch)
tree7784e4beeb8f012fbad5fa04983406596da23f8b
parentc13ebd3912c502d563c09cbd783d449a57211957 (diff)
downloadFreeBSD-src-a25e46b262a153085c528bdcb96133e052e8d24f.zip
FreeBSD-src-a25e46b262a153085c528bdcb96133e052e8d24f.tar.gz
MFC r330659:
Avoid more LFENCE/SFENCe on x86 in mlx5en(4), by using the FreeBSD native fences. Submitted by: kib@ Sponsored by: Mellanox Technologies
-rw-r--r--sys/dev/mlx5/mlx5_en/mlx5_en_main.c2
-rw-r--r--sys/dev/mlx5/mlx5_en/mlx5_en_tx.c2
-rw-r--r--sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
index c70cf247..33e62b4 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
@@ -1256,7 +1256,7 @@ mlx5e_sq_send_nops_locked(struct mlx5e_sq *sq, int can_sleep)
}
/* send a single NOP */
mlx5e_send_nop(sq, 1);
- wmb();
+ atomic_thread_fence_rel();
}
done:
/* Check if we need to write the doorbell */
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c b/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
index 69b0a01..b15d2c2 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
@@ -429,7 +429,7 @@ mlx5e_poll_tx_cq(struct mlx5e_sq *sq, int budget)
mlx5_cqwq_update_db_record(&sq->cq.wq);
/* Ensure cq space is freed before enabling more cqes */
- wmb();
+ atomic_thread_fence_rel();
sq->cc = sqcc;
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c b/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c
index 43bc059..771b4c6 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c
@@ -38,7 +38,7 @@ mlx5e_get_cqe(struct mlx5e_cq *cq)
return (NULL);
/* ensure cqe content is read after cqe ownership bit */
- rmb();
+ atomic_thread_fence_acq();
return (cqe);
}
OpenPOWER on IntegriCloud