All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Gospodarek <andy@greyhouse.net>
To: netdev@vger.kernel.org
Cc: mchan@broadcom.com, saeedm@mellanox.com,
	Andy Gospodarek <gospo@broadcom.com>
Subject: [RFC 1/9] mlx5_en: move interrupt moderation structs to new file
Date: Mon,  6 Nov 2017 00:44:48 -0500	[thread overview]
Message-ID: <1509947098-10148-3-git-send-email-andy@greyhouse.net> (raw)
In-Reply-To: <1509947098-10148-1-git-send-email-andy@greyhouse.net>

From: Andy Gospodarek <gospo@broadcom.com>

Create new header file to prepare to move code that handles irq
moderation to a library.

Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en.h       | 32 +---------
 drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.h | 74 ++++++++++++++++++++++
 include/linux/mlx5/mlx5_ifc.h                      |  6 --
 3 files changed, 75 insertions(+), 37 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.h

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
index e613ce0..1bde086 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -49,6 +49,7 @@
 #include "wq.h"
 #include "mlx5_core.h"
 #include "en_stats.h"
+#include "en_rx_am.h"
 
 #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v)
 
@@ -209,11 +210,6 @@ enum mlx5e_priv_flag {
 #define MLX5E_MAX_BW_ALLOC 100 /* Max percentage of BW allocation */
 #endif
 
-struct mlx5e_cq_moder {
-	u16 usec;
-	u16 pkts;
-};
-
 struct mlx5e_params {
 	u8  log_sq_size;
 	u8  rq_wq_type;
@@ -449,32 +445,6 @@ struct mlx5e_mpw_info {
 	u16 skbs_frags[MLX5_MPWRQ_PAGES_PER_WQE];
 };
 
-struct mlx5e_rx_am_stats {
-	int ppms; /* packets per msec */
-	int bpms; /* bytes per msec */
-	int epms; /* events per msec */
-};
-
-struct mlx5e_rx_am_sample {
-	ktime_t	time;
-	u32	pkt_ctr;
-	u32	byte_ctr;
-	u16	event_ctr;
-};
-
-struct mlx5e_rx_am { /* Adaptive Moderation */
-	u8					state;
-	struct mlx5e_rx_am_stats		prev_stats;
-	struct mlx5e_rx_am_sample		start_sample;
-	struct work_struct			work;
-	u8					profile_ix;
-	u8					mode;
-	u8					tune_state;
-	u8					steps_right;
-	u8					steps_left;
-	u8					tired;
-};
-
 /* a single cache unit is capable to serve one napi call (for non-striding rq)
  * or a MPWQE (for striding rq).
  */
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.h b/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.h
new file mode 100644
index 0000000..176a732
--- /dev/null
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2013-2015, Mellanox Technologies, Ltd.  All rights reserved.
+ * Copyright (c) 2017, Broadcom Limited
+ *
+ * This software is available to you under a choice of one of two
+ * licenses.  You may choose to be licensed under the terms of the GNU
+ * General Public License (GPL) Version 2, available from the file
+ * COPYING in the main directory of this source tree, or the
+ * OpenIB.org BSD license below:
+ *
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted provided that the following
+ *     conditions are met:
+ *
+ *      - Redistributions of source code must retain the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer.
+ *
+ *      - Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials
+ *        provided with the distribution.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+*/
+
+#ifndef MLX5_AM_H
+#define MLX5_AM_H
+
+struct mlx5e_cq_moder {
+	u16 usec;
+	u16 pkts;
+};
+
+struct mlx5e_rx_am_sample {
+	ktime_t time;
+	u32     pkt_ctr;
+	u32     byte_ctr;
+	u16     event_ctr;
+};
+
+struct mlx5e_rx_am_stats {
+	int ppms; /* packets per msec */
+	int bpms; /* bytes per msec */
+	int epms; /* events per msec */
+};
+
+struct mlx5e_rx_am { /* Adaptive Moderation */
+	u8                                      state;
+	struct mlx5e_rx_am_stats                prev_stats;
+	struct mlx5e_rx_am_sample               start_sample;
+	struct work_struct                      work;
+	u8                                      profile_ix;
+	u8                                      mode;
+	u8                                      tune_state;
+	u8                                      steps_right;
+	u8                                      steps_left;
+	u8                                      tired;
+};
+
+enum {
+	MLX5_CQ_PERIOD_MODE_START_FROM_EQE = 0x0,
+	MLX5_CQ_PERIOD_MODE_START_FROM_CQE = 0x1,
+	MLX5_CQ_PERIOD_NUM_MODES
+};
+
+#endif /* MLX5_AM_H */
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 6977234..716528d 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -2912,12 +2912,6 @@ enum {
 	MLX5_CQC_ST_FIRED                                 = 0xa,
 };
 
-enum {
-	MLX5_CQ_PERIOD_MODE_START_FROM_EQE = 0x0,
-	MLX5_CQ_PERIOD_MODE_START_FROM_CQE = 0x1,
-	MLX5_CQ_PERIOD_NUM_MODES
-};
-
 struct mlx5_ifc_cqc_bits {
 	u8         status[0x4];
 	u8         reserved_at_4[0x4];
-- 
2.7.4

  parent reply	other threads:[~2017-11-06  5:45 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-06  5:44 [RFC 0/9] net: create adaptive software irq moderation library Andy Gospodarek
2017-11-06  5:44 ` Andy Gospodarek
2017-11-06  5:44 ` Andy Gospodarek [this message]
2017-11-06  5:44 ` [RFC 2/9] mlx5_en: move interrupt moderation forward declarations Andy Gospodarek
2017-11-06  5:44 ` [RFC 2/9] mlx5_en: move interrupt moderation forward delcarations Andy Gospodarek
2017-11-06  5:44 ` [RFC 3/9] mlx5_en: remove rq references in mlx5e_rx_am Andy Gospodarek
2017-11-06  5:44 ` [RFC 4/9] mlx5_en: move AM logic enums Andy Gospodarek
2017-11-06  5:44 ` [RFC 5/9] mlx5_en: move generic functions to new file Andy Gospodarek
2017-11-06  5:44 ` [RFC 6/9] mlx5_en: rename en_rx_am.h to net_rx_am.h Andy Gospodarek
2017-11-06  5:44 ` [RFC 7/9] mlx5_en: remove Mellanox references in AM code Andy Gospodarek
2017-11-06  5:44 ` [RFC 8/9] net: move adaptive interrupt coalescing code to lib/ Andy Gospodarek
2017-11-06  5:44 ` [RFC 8/9] net: move adaptive interrpt " Andy Gospodarek
2017-11-06  5:44 ` [RFC 9/9] bnxt_en: add support for software adaptive interrupt moderation Andy Gospodarek
2017-11-06 21:26   ` Michael Chan
2017-11-07  1:05 ` [RFC 0/9] net: create adaptive software irq moderation library Saeed Mahameed
2017-11-24 12:05 ` Saeed Mahameed
2017-11-24 12:20   ` Saeed Mahameed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1509947098-10148-3-git-send-email-andy@greyhouse.net \
    --to=andy@greyhouse.net \
    --cc=gospo@broadcom.com \
    --cc=mchan@broadcom.com \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.