Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Sep 2016 08:31:38 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r306248 - stable/10/sys/dev/mlx5/mlx5_en
Message-ID:  <201609230831.u8N8VcBp053962@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Fri Sep 23 08:31:38 2016
New Revision: 306248
URL: https://svnweb.freebsd.org/changeset/base/306248

Log:
  MFC r305871:
  mlx5en: Optimise away duplicate UAR pointers.
  
  This change also reduces the size of the mlx5e_sq structure so that the last
  queue_state element will fit into the previous cacheline and then the mlx5e_sq
  structure becomes one cacheline less for amd64.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/10/sys/dev/mlx5/mlx5_en/en.h
  stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/mlx5/mlx5_en/en.h
==============================================================================
--- stable/10/sys/dev/mlx5/mlx5_en/en.h	Fri Sep 23 08:30:53 2016	(r306247)
+++ stable/10/sys/dev/mlx5/mlx5_en/en.h	Fri Sep 23 08:31:38 2016	(r306248)
@@ -538,8 +538,7 @@ struct mlx5e_sq {
 
 	/* read only */
 	struct	mlx5_wq_cyc wq;
-	void	__iomem *uar_map;
-	void	__iomem *uar_bf_map;
+	struct	mlx5_uar uar;
 	struct	ifnet *ifp;
 	u32	sqn;
 	u32	bf_buf_size;
@@ -548,7 +547,6 @@ struct mlx5e_sq {
 
 	/* control path */
 	struct	mlx5_wq_ctrl wq_ctrl;
-	struct	mlx5_uar uar;
 	struct	mlx5e_priv *priv;
 	int	tc;
 	unsigned int queue_state;
@@ -790,13 +788,13 @@ mlx5e_tx_notify_hw(struct mlx5e_sq *sq, 
 	wmb();
 
 	if (bf_sz) {
-		__iowrite64_copy(sq->uar_bf_map + ofst, wqe, bf_sz);
+		__iowrite64_copy(sq->uar.bf_map + ofst, wqe, bf_sz);
 
 		/* flush the write-combining mapped buffer */
 		wmb();
 
 	} else {
-		mlx5_write64(wqe, sq->uar_map + ofst, NULL);
+		mlx5_write64(wqe, sq->uar.map + ofst, NULL);
 	}
 
 	sq->bf_offset ^= sq->bf_buf_size;

Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Sep 23 08:30:53 2016	(r306247)
+++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Sep 23 08:31:38 2016	(r306248)
@@ -962,8 +962,6 @@ mlx5e_create_sq(struct mlx5e_channel *c,
 		goto err_unmap_free_uar;
 
 	sq->wq.db = &sq->wq.db[MLX5_SND_DBR];
-	sq->uar_map = sq->uar.map;
-	sq->uar_bf_map = sq->uar.bf_map;
 	sq->bf_buf_size = (1 << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2;
 
 	err = mlx5e_alloc_sq_db(sq);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609230831.u8N8VcBp053962>