Commit 8960b389 authored by Tal Gilboa's avatar Tal Gilboa Committed by Saeed Mahameed

linux/dim: Rename externally used net_dim members

Removed 'net' prefix from functions and structs used by external drivers.
Signed-off-by: default avatarTal Gilboa <talgi@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
parent e5b6ab02
...@@ -612,7 +612,7 @@ static int bcm_sysport_set_coalesce(struct net_device *dev, ...@@ -612,7 +612,7 @@ static int bcm_sysport_set_coalesce(struct net_device *dev,
struct ethtool_coalesce *ec) struct ethtool_coalesce *ec)
{ {
struct bcm_sysport_priv *priv = netdev_priv(dev); struct bcm_sysport_priv *priv = netdev_priv(dev);
struct net_dim_cq_moder moder; struct dim_cq_moder moder;
u32 usecs, pkts; u32 usecs, pkts;
unsigned int i; unsigned int i;
...@@ -995,7 +995,7 @@ static int bcm_sysport_poll(struct napi_struct *napi, int budget) ...@@ -995,7 +995,7 @@ static int bcm_sysport_poll(struct napi_struct *napi, int budget)
{ {
struct bcm_sysport_priv *priv = struct bcm_sysport_priv *priv =
container_of(napi, struct bcm_sysport_priv, napi); container_of(napi, struct bcm_sysport_priv, napi);
struct net_dim_sample dim_sample; struct dim_sample dim_sample;
unsigned int work_done = 0; unsigned int work_done = 0;
work_done = bcm_sysport_desc_rx(priv, budget); work_done = bcm_sysport_desc_rx(priv, budget);
...@@ -1019,8 +1019,8 @@ static int bcm_sysport_poll(struct napi_struct *napi, int budget) ...@@ -1019,8 +1019,8 @@ static int bcm_sysport_poll(struct napi_struct *napi, int budget)
} }
if (priv->dim.use_dim) { if (priv->dim.use_dim) {
net_dim_update_sample(priv->dim.event_ctr, priv->dim.packets, dim_update_sample(priv->dim.event_ctr, priv->dim.packets,
priv->dim.bytes, &dim_sample); priv->dim.bytes, &dim_sample);
net_dim(&priv->dim.dim, dim_sample); net_dim(&priv->dim.dim, dim_sample);
} }
...@@ -1090,13 +1090,13 @@ static void bcm_sysport_resume_from_wol(struct bcm_sysport_priv *priv) ...@@ -1090,13 +1090,13 @@ static void bcm_sysport_resume_from_wol(struct bcm_sysport_priv *priv)
static void bcm_sysport_dim_work(struct work_struct *work) static void bcm_sysport_dim_work(struct work_struct *work)
{ {
struct net_dim *dim = container_of(work, struct net_dim, work); struct dim *dim = container_of(work, struct dim, work);
struct bcm_sysport_net_dim *ndim = struct bcm_sysport_net_dim *ndim =
container_of(dim, struct bcm_sysport_net_dim, dim); container_of(dim, struct bcm_sysport_net_dim, dim);
struct bcm_sysport_priv *priv = struct bcm_sysport_priv *priv =
container_of(ndim, struct bcm_sysport_priv, dim); container_of(ndim, struct bcm_sysport_priv, dim);
struct net_dim_cq_moder cur_profile = struct dim_cq_moder cur_profile = net_dim_get_rx_moderation(dim->mode,
net_dim_get_rx_moderation(dim->mode, dim->profile_ix); dim->profile_ix);
bcm_sysport_set_rx_coalesce(priv, cur_profile.usec, cur_profile.pkts); bcm_sysport_set_rx_coalesce(priv, cur_profile.usec, cur_profile.pkts);
dim->state = DIM_START_MEASURE; dim->state = DIM_START_MEASURE;
...@@ -1449,7 +1449,7 @@ static void bcm_sysport_init_dim(struct bcm_sysport_priv *priv, ...@@ -1449,7 +1449,7 @@ static void bcm_sysport_init_dim(struct bcm_sysport_priv *priv,
static void bcm_sysport_init_rx_coalesce(struct bcm_sysport_priv *priv) static void bcm_sysport_init_rx_coalesce(struct bcm_sysport_priv *priv)
{ {
struct bcm_sysport_net_dim *dim = &priv->dim; struct bcm_sysport_net_dim *dim = &priv->dim;
struct net_dim_cq_moder moder; struct dim_cq_moder moder;
u32 usecs, pkts; u32 usecs, pkts;
usecs = priv->rx_coalesce_usecs; usecs = priv->rx_coalesce_usecs;
......
...@@ -705,7 +705,7 @@ struct bcm_sysport_net_dim { ...@@ -705,7 +705,7 @@ struct bcm_sysport_net_dim {
u16 event_ctr; u16 event_ctr;
unsigned long packets; unsigned long packets;
unsigned long bytes; unsigned long bytes;
struct net_dim dim; struct dim dim;
}; };
/* Software view of the TX ring */ /* Software view of the TX ring */
......
...@@ -2128,12 +2128,12 @@ static int bnxt_poll(struct napi_struct *napi, int budget) ...@@ -2128,12 +2128,12 @@ static int bnxt_poll(struct napi_struct *napi, int budget)
} }
} }
if (bp->flags & BNXT_FLAG_DIM) { if (bp->flags & BNXT_FLAG_DIM) {
struct net_dim_sample dim_sample; struct dim_sample dim_sample;
net_dim_update_sample(cpr->event_ctr, dim_update_sample(cpr->event_ctr,
cpr->rx_packets, cpr->rx_packets,
cpr->rx_bytes, cpr->rx_bytes,
&dim_sample); &dim_sample);
net_dim(&cpr->dim, dim_sample); net_dim(&cpr->dim, dim_sample);
} }
return work_done; return work_done;
......
...@@ -809,7 +809,7 @@ struct bnxt_cp_ring_info { ...@@ -809,7 +809,7 @@ struct bnxt_cp_ring_info {
u64 rx_bytes; u64 rx_bytes;
u64 event_ctr; u64 event_ctr;
struct net_dim dim; struct dim dim;
union { union {
struct tx_cmp *cp_desc_ring[MAX_CP_PAGES]; struct tx_cmp *cp_desc_ring[MAX_CP_PAGES];
......
...@@ -21,7 +21,7 @@ static ssize_t debugfs_dim_read(struct file *filep, ...@@ -21,7 +21,7 @@ static ssize_t debugfs_dim_read(struct file *filep,
char __user *buffer, char __user *buffer,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
struct net_dim *dim = filep->private_data; struct dim *dim = filep->private_data;
int len; int len;
char *buf; char *buf;
...@@ -61,7 +61,7 @@ static const struct file_operations debugfs_dim_fops = { ...@@ -61,7 +61,7 @@ static const struct file_operations debugfs_dim_fops = {
.read = debugfs_dim_read, .read = debugfs_dim_read,
}; };
static struct dentry *debugfs_dim_ring_init(struct net_dim *dim, int ring_idx, static struct dentry *debugfs_dim_ring_init(struct dim *dim, int ring_idx,
struct dentry *dd) struct dentry *dd)
{ {
static char qname[16]; static char qname[16];
......
...@@ -13,15 +13,14 @@ ...@@ -13,15 +13,14 @@
void bnxt_dim_work(struct work_struct *work) void bnxt_dim_work(struct work_struct *work)
{ {
struct net_dim *dim = container_of(work, struct net_dim, struct dim *dim = container_of(work, struct dim, work);
work);
struct bnxt_cp_ring_info *cpr = container_of(dim, struct bnxt_cp_ring_info *cpr = container_of(dim,
struct bnxt_cp_ring_info, struct bnxt_cp_ring_info,
dim); dim);
struct bnxt_napi *bnapi = container_of(cpr, struct bnxt_napi *bnapi = container_of(cpr,
struct bnxt_napi, struct bnxt_napi,
cp_ring); cp_ring);
struct net_dim_cq_moder cur_moder = struct dim_cq_moder cur_moder =
net_dim_get_rx_moderation(dim->mode, dim->profile_ix); net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
cpr->rx_ring_coal.coal_ticks = cur_moder.usec; cpr->rx_ring_coal.coal_ticks = cur_moder.usec;
......
...@@ -643,7 +643,7 @@ static void bcmgenet_set_rx_coalesce(struct bcmgenet_rx_ring *ring, ...@@ -643,7 +643,7 @@ static void bcmgenet_set_rx_coalesce(struct bcmgenet_rx_ring *ring,
static void bcmgenet_set_ring_rx_coalesce(struct bcmgenet_rx_ring *ring, static void bcmgenet_set_ring_rx_coalesce(struct bcmgenet_rx_ring *ring,
struct ethtool_coalesce *ec) struct ethtool_coalesce *ec)
{ {
struct net_dim_cq_moder moder; struct dim_cq_moder moder;
u32 usecs, pkts; u32 usecs, pkts;
ring->rx_coalesce_usecs = ec->rx_coalesce_usecs; ring->rx_coalesce_usecs = ec->rx_coalesce_usecs;
...@@ -1898,7 +1898,7 @@ static int bcmgenet_rx_poll(struct napi_struct *napi, int budget) ...@@ -1898,7 +1898,7 @@ static int bcmgenet_rx_poll(struct napi_struct *napi, int budget)
{ {
struct bcmgenet_rx_ring *ring = container_of(napi, struct bcmgenet_rx_ring *ring = container_of(napi,
struct bcmgenet_rx_ring, napi); struct bcmgenet_rx_ring, napi);
struct net_dim_sample dim_sample; struct dim_sample dim_sample;
unsigned int work_done; unsigned int work_done;
work_done = bcmgenet_desc_rx(ring, budget); work_done = bcmgenet_desc_rx(ring, budget);
...@@ -1909,8 +1909,8 @@ static int bcmgenet_rx_poll(struct napi_struct *napi, int budget) ...@@ -1909,8 +1909,8 @@ static int bcmgenet_rx_poll(struct napi_struct *napi, int budget)
} }
if (ring->dim.use_dim) { if (ring->dim.use_dim) {
net_dim_update_sample(ring->dim.event_ctr, ring->dim.packets, dim_update_sample(ring->dim.event_ctr, ring->dim.packets,
ring->dim.bytes, &dim_sample); ring->dim.bytes, &dim_sample);
net_dim(&ring->dim.dim, dim_sample); net_dim(&ring->dim.dim, dim_sample);
} }
...@@ -1919,12 +1919,12 @@ static int bcmgenet_rx_poll(struct napi_struct *napi, int budget) ...@@ -1919,12 +1919,12 @@ static int bcmgenet_rx_poll(struct napi_struct *napi, int budget)
static void bcmgenet_dim_work(struct work_struct *work) static void bcmgenet_dim_work(struct work_struct *work)
{ {
struct net_dim *dim = container_of(work, struct net_dim, work); struct dim *dim = container_of(work, struct dim, work);
struct bcmgenet_net_dim *ndim = struct bcmgenet_net_dim *ndim =
container_of(dim, struct bcmgenet_net_dim, dim); container_of(dim, struct bcmgenet_net_dim, dim);
struct bcmgenet_rx_ring *ring = struct bcmgenet_rx_ring *ring =
container_of(ndim, struct bcmgenet_rx_ring, dim); container_of(ndim, struct bcmgenet_rx_ring, dim);
struct net_dim_cq_moder cur_profile = struct dim_cq_moder cur_profile =
net_dim_get_rx_moderation(dim->mode, dim->profile_ix); net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
bcmgenet_set_rx_coalesce(ring, cur_profile.usec, cur_profile.pkts); bcmgenet_set_rx_coalesce(ring, cur_profile.usec, cur_profile.pkts);
...@@ -2094,7 +2094,7 @@ static void bcmgenet_init_dim(struct bcmgenet_rx_ring *ring, ...@@ -2094,7 +2094,7 @@ static void bcmgenet_init_dim(struct bcmgenet_rx_ring *ring,
static void bcmgenet_init_rx_coalesce(struct bcmgenet_rx_ring *ring) static void bcmgenet_init_rx_coalesce(struct bcmgenet_rx_ring *ring)
{ {
struct bcmgenet_net_dim *dim = &ring->dim; struct bcmgenet_net_dim *dim = &ring->dim;
struct net_dim_cq_moder moder; struct dim_cq_moder moder;
u32 usecs, pkts; u32 usecs, pkts;
usecs = ring->rx_coalesce_usecs; usecs = ring->rx_coalesce_usecs;
......
...@@ -581,7 +581,7 @@ struct bcmgenet_net_dim { ...@@ -581,7 +581,7 @@ struct bcmgenet_net_dim {
u16 event_ctr; u16 event_ctr;
unsigned long packets; unsigned long packets;
unsigned long bytes; unsigned long bytes;
struct net_dim dim; struct dim dim;
}; };
struct bcmgenet_rx_ring { struct bcmgenet_rx_ring {
......
...@@ -238,9 +238,9 @@ struct mlx5e_params { ...@@ -238,9 +238,9 @@ struct mlx5e_params {
u16 num_channels; u16 num_channels;
u8 num_tc; u8 num_tc;
bool rx_cqe_compress_def; bool rx_cqe_compress_def;
struct net_dim_cq_moder rx_cq_moderation;
struct net_dim_cq_moder tx_cq_moderation;
bool tunneled_offload_en; bool tunneled_offload_en;
struct dim_cq_moder rx_cq_moderation;
struct dim_cq_moder tx_cq_moderation;
bool lro_en; bool lro_en;
u8 tx_min_inline_mode; u8 tx_min_inline_mode;
bool vlan_strip_disable; bool vlan_strip_disable;
...@@ -356,7 +356,7 @@ struct mlx5e_txqsq { ...@@ -356,7 +356,7 @@ struct mlx5e_txqsq {
/* dirtied @completion */ /* dirtied @completion */
u16 cc; u16 cc;
u32 dma_fifo_cc; u32 dma_fifo_cc;
struct net_dim dim; /* Adaptive Moderation */ struct dim dim; /* Adaptive Moderation */
/* dirtied @xmit */ /* dirtied @xmit */
u16 pc ____cacheline_aligned_in_smp; u16 pc ____cacheline_aligned_in_smp;
...@@ -595,7 +595,7 @@ struct mlx5e_rq { ...@@ -595,7 +595,7 @@ struct mlx5e_rq {
int ix; int ix;
unsigned int hw_mtu; unsigned int hw_mtu;
struct net_dim dim; /* Dynamic Interrupt Moderation */ struct dim dim; /* Dynamic Interrupt Moderation */
/* XDP */ /* XDP */
struct bpf_prog *xdp_prog; struct bpf_prog *xdp_prog;
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include "en.h" #include "en.h"
static void static void
mlx5e_complete_dim_work(struct net_dim *dim, struct net_dim_cq_moder moder, mlx5e_complete_dim_work(struct dim *dim, struct dim_cq_moder moder,
struct mlx5_core_dev *mdev, struct mlx5_core_cq *mcq) struct mlx5_core_dev *mdev, struct mlx5_core_cq *mcq)
{ {
mlx5_core_modify_cq_moderation(mdev, mcq, moder.usec, moder.pkts); mlx5_core_modify_cq_moderation(mdev, mcq, moder.usec, moder.pkts);
...@@ -43,9 +43,9 @@ mlx5e_complete_dim_work(struct net_dim *dim, struct net_dim_cq_moder moder, ...@@ -43,9 +43,9 @@ mlx5e_complete_dim_work(struct net_dim *dim, struct net_dim_cq_moder moder,
void mlx5e_rx_dim_work(struct work_struct *work) void mlx5e_rx_dim_work(struct work_struct *work)
{ {
struct net_dim *dim = container_of(work, struct net_dim, work); struct dim *dim = container_of(work, struct dim, work);
struct mlx5e_rq *rq = container_of(dim, struct mlx5e_rq, dim); struct mlx5e_rq *rq = container_of(dim, struct mlx5e_rq, dim);
struct net_dim_cq_moder cur_moder = struct dim_cq_moder cur_moder =
net_dim_get_rx_moderation(dim->mode, dim->profile_ix); net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
mlx5e_complete_dim_work(dim, cur_moder, rq->mdev, &rq->cq.mcq); mlx5e_complete_dim_work(dim, cur_moder, rq->mdev, &rq->cq.mcq);
...@@ -53,9 +53,9 @@ void mlx5e_rx_dim_work(struct work_struct *work) ...@@ -53,9 +53,9 @@ void mlx5e_rx_dim_work(struct work_struct *work)
void mlx5e_tx_dim_work(struct work_struct *work) void mlx5e_tx_dim_work(struct work_struct *work)
{ {
struct net_dim *dim = container_of(work, struct net_dim, work); struct dim *dim = container_of(work, struct dim, work);
struct mlx5e_txqsq *sq = container_of(dim, struct mlx5e_txqsq, dim); struct mlx5e_txqsq *sq = container_of(dim, struct mlx5e_txqsq, dim);
struct net_dim_cq_moder cur_moder = struct dim_cq_moder cur_moder =
net_dim_get_tx_moderation(dim->mode, dim->profile_ix); net_dim_get_tx_moderation(dim->mode, dim->profile_ix);
mlx5e_complete_dim_work(dim, cur_moder, sq->cq.mdev, &sq->cq.mcq); mlx5e_complete_dim_work(dim, cur_moder, sq->cq.mdev, &sq->cq.mcq);
......
...@@ -466,7 +466,7 @@ static int mlx5e_set_channels(struct net_device *dev, ...@@ -466,7 +466,7 @@ static int mlx5e_set_channels(struct net_device *dev,
int mlx5e_ethtool_get_coalesce(struct mlx5e_priv *priv, int mlx5e_ethtool_get_coalesce(struct mlx5e_priv *priv,
struct ethtool_coalesce *coal) struct ethtool_coalesce *coal)
{ {
struct net_dim_cq_moder *rx_moder, *tx_moder; struct dim_cq_moder *rx_moder, *tx_moder;
if (!MLX5_CAP_GEN(priv->mdev, cq_moderation)) if (!MLX5_CAP_GEN(priv->mdev, cq_moderation))
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -521,7 +521,7 @@ mlx5e_set_priv_channels_coalesce(struct mlx5e_priv *priv, struct ethtool_coalesc ...@@ -521,7 +521,7 @@ mlx5e_set_priv_channels_coalesce(struct mlx5e_priv *priv, struct ethtool_coalesc
int mlx5e_ethtool_set_coalesce(struct mlx5e_priv *priv, int mlx5e_ethtool_set_coalesce(struct mlx5e_priv *priv,
struct ethtool_coalesce *coal) struct ethtool_coalesce *coal)
{ {
struct net_dim_cq_moder *rx_moder, *tx_moder; struct dim_cq_moder *rx_moder, *tx_moder;
struct mlx5_core_dev *mdev = priv->mdev; struct mlx5_core_dev *mdev = priv->mdev;
struct mlx5e_channels new_channels = {}; struct mlx5e_channels new_channels = {};
int err = 0; int err = 0;
......
...@@ -1569,7 +1569,7 @@ static void mlx5e_destroy_cq(struct mlx5e_cq *cq) ...@@ -1569,7 +1569,7 @@ static void mlx5e_destroy_cq(struct mlx5e_cq *cq)
} }
static int mlx5e_open_cq(struct mlx5e_channel *c, static int mlx5e_open_cq(struct mlx5e_channel *c,
struct net_dim_cq_moder moder, struct dim_cq_moder moder,
struct mlx5e_cq_param *param, struct mlx5e_cq_param *param,
struct mlx5e_cq *cq) struct mlx5e_cq *cq)
{ {
...@@ -1774,7 +1774,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix, ...@@ -1774,7 +1774,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix,
struct mlx5e_channel **cp) struct mlx5e_channel **cp)
{ {
int cpu = cpumask_first(mlx5_comp_irq_get_affinity_mask(priv->mdev, ix)); int cpu = cpumask_first(mlx5_comp_irq_get_affinity_mask(priv->mdev, ix));
struct net_dim_cq_moder icocq_moder = {0, 0}; struct dim_cq_moder icocq_moder = {0, 0};
struct net_device *netdev = priv->netdev; struct net_device *netdev = priv->netdev;
struct mlx5e_channel *c; struct mlx5e_channel *c;
unsigned int irq; unsigned int irq;
...@@ -4411,9 +4411,9 @@ static bool slow_pci_heuristic(struct mlx5_core_dev *mdev) ...@@ -4411,9 +4411,9 @@ static bool slow_pci_heuristic(struct mlx5_core_dev *mdev)
link_speed > MLX5E_SLOW_PCI_RATIO * pci_bw; link_speed > MLX5E_SLOW_PCI_RATIO * pci_bw;
} }
static struct net_dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode) static struct dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
{ {
struct net_dim_cq_moder moder; struct dim_cq_moder moder;
moder.cq_period_mode = cq_period_mode; moder.cq_period_mode = cq_period_mode;
moder.pkts = MLX5E_PARAMS_DEFAULT_TX_CQ_MODERATION_PKTS; moder.pkts = MLX5E_PARAMS_DEFAULT_TX_CQ_MODERATION_PKTS;
...@@ -4424,9 +4424,9 @@ static struct net_dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode) ...@@ -4424,9 +4424,9 @@ static struct net_dim_cq_moder mlx5e_get_def_tx_moderation(u8 cq_period_mode)
return moder; return moder;
} }
static struct net_dim_cq_moder mlx5e_get_def_rx_moderation(u8 cq_period_mode) static struct dim_cq_moder mlx5e_get_def_rx_moderation(u8 cq_period_mode)
{ {
struct net_dim_cq_moder moder; struct dim_cq_moder moder;
moder.cq_period_mode = cq_period_mode; moder.cq_period_mode = cq_period_mode;
moder.pkts = MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_PKTS; moder.pkts = MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_PKTS;
......
...@@ -48,24 +48,24 @@ static inline bool mlx5e_channel_no_affinity_change(struct mlx5e_channel *c) ...@@ -48,24 +48,24 @@ static inline bool mlx5e_channel_no_affinity_change(struct mlx5e_channel *c)
static void mlx5e_handle_tx_dim(struct mlx5e_txqsq *sq) static void mlx5e_handle_tx_dim(struct mlx5e_txqsq *sq)
{ {
struct mlx5e_sq_stats *stats = sq->stats; struct mlx5e_sq_stats *stats = sq->stats;
struct net_dim_sample dim_sample; struct dim_sample dim_sample;
if (unlikely(!test_bit(MLX5E_SQ_STATE_AM, &sq->state))) if (unlikely(!test_bit(MLX5E_SQ_STATE_AM, &sq->state)))
return; return;
net_dim_update_sample(sq->cq.event_ctr, stats->packets, stats->bytes, &dim_sample); dim_update_sample(sq->cq.event_ctr, stats->packets, stats->bytes, &dim_sample);
net_dim(&sq->dim, dim_sample); net_dim(&sq->dim, dim_sample);
} }
static void mlx5e_handle_rx_dim(struct mlx5e_rq *rq) static void mlx5e_handle_rx_dim(struct mlx5e_rq *rq)
{ {
struct mlx5e_rq_stats *stats = rq->stats; struct mlx5e_rq_stats *stats = rq->stats;
struct net_dim_sample dim_sample; struct dim_sample dim_sample;
if (unlikely(!test_bit(MLX5E_RQ_STATE_AM, &rq->state))) if (unlikely(!test_bit(MLX5E_RQ_STATE_AM, &rq->state)))
return; return;
net_dim_update_sample(rq->cq.event_ctr, stats->packets, stats->bytes, &dim_sample); dim_update_sample(rq->cq.event_ctr, stats->packets, stats->bytes, &dim_sample);
net_dim(&rq->dim, dim_sample); net_dim(&rq->dim, dim_sample);
} }
......
...@@ -14,13 +14,13 @@ ...@@ -14,13 +14,13 @@
#define BIT_GAP(bits, end, start) ((((end) - (start)) + BIT_ULL(bits)) \ #define BIT_GAP(bits, end, start) ((((end) - (start)) + BIT_ULL(bits)) \
& (BIT_ULL(bits) - 1)) & (BIT_ULL(bits) - 1))
struct net_dim_cq_moder { struct dim_cq_moder {
u16 usec; u16 usec;
u16 pkts; u16 pkts;
u8 cq_period_mode; u8 cq_period_mode;
}; };
struct net_dim_sample { struct dim_sample {
ktime_t time; ktime_t time;
u32 pkt_ctr; u32 pkt_ctr;
u32 byte_ctr; u32 byte_ctr;
...@@ -33,10 +33,10 @@ struct dim_stats { ...@@ -33,10 +33,10 @@ struct dim_stats {
int epms; /* events per msec */ int epms; /* events per msec */
}; };
struct net_dim { /* Dynamic Interrupt Moderation */ struct dim { /* Dynamic Interrupt Moderation */
u8 state; u8 state;
struct dim_stats prev_stats; struct dim_stats prev_stats;
struct net_dim_sample start_sample; struct dim_sample start_sample;
struct work_struct work; struct work_struct work;
u8 profile_ix; u8 profile_ix;
u8 mode; u8 mode;
...@@ -77,7 +77,7 @@ enum { ...@@ -77,7 +77,7 @@ enum {
DIM_ON_EDGE, DIM_ON_EDGE,
}; };
static inline bool dim_on_top(struct net_dim *dim) static inline bool dim_on_top(struct dim *dim)
{ {
switch (dim->tune_state) { switch (dim->tune_state) {
case DIM_PARKING_ON_TOP: case DIM_PARKING_ON_TOP:
...@@ -90,7 +90,7 @@ static inline bool dim_on_top(struct net_dim *dim) ...@@ -90,7 +90,7 @@ static inline bool dim_on_top(struct net_dim *dim)
} }
} }
static inline void dim_turn(struct net_dim *dim) static inline void dim_turn(struct dim *dim)
{ {
switch (dim->tune_state) { switch (dim->tune_state) {
case DIM_PARKING_ON_TOP: case DIM_PARKING_ON_TOP:
...@@ -107,7 +107,7 @@ static inline void dim_turn(struct net_dim *dim) ...@@ -107,7 +107,7 @@ static inline void dim_turn(struct net_dim *dim)
} }
} }
static inline void dim_park_on_top(struct net_dim *dim) static inline void dim_park_on_top(struct dim *dim)
{ {
dim->steps_right = 0; dim->steps_right = 0;
dim->steps_left = 0; dim->steps_left = 0;
...@@ -115,7 +115,7 @@ static inline void dim_park_on_top(struct net_dim *dim) ...@@ -115,7 +115,7 @@ static inline void dim_park_on_top(struct net_dim *dim)
dim->tune_state = DIM_PARKING_ON_TOP; dim->tune_state = DIM_PARKING_ON_TOP;
} }
static inline void dim_park_tired(struct net_dim *dim) static inline void dim_park_tired(struct dim *dim)
{ {
dim->steps_right = 0; dim->steps_right = 0;
dim->steps_left = 0; dim->steps_left = 0;
...@@ -123,8 +123,7 @@ static inline void dim_park_tired(struct net_dim *dim) ...@@ -123,8 +123,7 @@ static inline void dim_park_tired(struct net_dim *dim)
} }
static inline void static inline void
net_dim_update_sample(u16 event_ctr, u64 packets, u64 bytes, dim_update_sample(u16 event_ctr, u64 packets, u64 bytes, struct dim_sample *s)
struct net_dim_sample *s)
{ {
s->time = ktime_get(); s->time = ktime_get();
s->pkt_ctr = packets; s->pkt_ctr = packets;
...@@ -133,7 +132,7 @@ net_dim_update_sample(u16 event_ctr, u64 packets, u64 bytes, ...@@ -133,7 +132,7 @@ net_dim_update_sample(u16 event_ctr, u64 packets, u64 bytes,
} }
static inline void static inline void
dim_calc_stats(struct net_dim_sample *start, struct net_dim_sample *end, dim_calc_stats(struct dim_sample *start, struct dim_sample *end,
struct dim_stats *curr_stats) struct dim_stats *curr_stats)
{ {
/* u32 holds up to 71 minutes, should be enough */ /* u32 holds up to 71 minutes, should be enough */
......
...@@ -77,28 +77,28 @@ ...@@ -77,28 +77,28 @@
{64, 32} \ {64, 32} \
} }
static const struct net_dim_cq_moder static const struct dim_cq_moder
rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = {
NET_DIM_RX_EQE_PROFILES, NET_DIM_RX_EQE_PROFILES,
NET_DIM_RX_CQE_PROFILES, NET_DIM_RX_CQE_PROFILES,
}; };
static const struct net_dim_cq_moder static const struct dim_cq_moder
tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = {
NET_DIM_TX_EQE_PROFILES, NET_DIM_TX_EQE_PROFILES,
NET_DIM_TX_CQE_PROFILES, NET_DIM_TX_CQE_PROFILES,
}; };
static inline struct net_dim_cq_moder static inline struct dim_cq_moder
net_dim_get_rx_moderation(u8 cq_period_mode, int ix) net_dim_get_rx_moderation(u8 cq_period_mode, int ix)
{ {
struct net_dim_cq_moder cq_moder = rx_profile[cq_period_mode][ix]; struct dim_cq_moder cq_moder = rx_profile[cq_period_mode][ix];
cq_moder.cq_period_mode = cq_period_mode; cq_moder.cq_period_mode = cq_period_mode;
return cq_moder; return cq_moder;
} }
static inline struct net_dim_cq_moder static inline struct dim_cq_moder
net_dim_get_def_rx_moderation(u8 cq_period_mode) net_dim_get_def_rx_moderation(u8 cq_period_mode)
{ {
u8 profile_ix = cq_period_mode == DIM_CQ_PERIOD_MODE_START_FROM_CQE ? u8 profile_ix = cq_period_mode == DIM_CQ_PERIOD_MODE_START_FROM_CQE ?
...@@ -107,16 +107,16 @@ net_dim_get_def_rx_moderation(u8 cq_period_mode) ...@@ -107,16 +107,16 @@ net_dim_get_def_rx_moderation(u8 cq_period_mode)
return net_dim_get_rx_moderation(cq_period_mode, profile_ix); return net_dim_get_rx_moderation(cq_period_mode, profile_ix);
} }
static inline struct net_dim_cq_moder static inline struct dim_cq_moder
net_dim_get_tx_moderation(u8 cq_period_mode, int ix) net_dim_get_tx_moderation(u8 cq_period_mode, int ix)
{ {
struct net_dim_cq_moder cq_moder = tx_profile[cq_period_mode][ix]; struct dim_cq_moder cq_moder = tx_profile[cq_period_mode][ix];
cq_moder.cq_period_mode = cq_period_mode; cq_moder.cq_period_mode = cq_period_mode;
return cq_moder; return cq_moder;
} }
static inline struct net_dim_cq_moder static inline struct dim_cq_moder
net_dim_get_def_tx_moderation(u8 cq_period_mode) net_dim_get_def_tx_moderation(u8 cq_period_mode)
{ {
u8 profile_ix = cq_period_mode == DIM_CQ_PERIOD_MODE_START_FROM_CQE ? u8 profile_ix = cq_period_mode == DIM_CQ_PERIOD_MODE_START_FROM_CQE ?
...@@ -125,7 +125,7 @@ net_dim_get_def_tx_moderation(u8 cq_period_mode) ...@@ -125,7 +125,7 @@ net_dim_get_def_tx_moderation(u8 cq_period_mode)
return net_dim_get_tx_moderation(cq_period_mode, profile_ix); return net_dim_get_tx_moderation(cq_period_mode, profile_ix);
} }
static inline int net_dim_step(struct net_dim *dim) static inline int net_dim_step(struct dim *dim)
{ {
if (dim->tired == (NET_DIM_PARAMS_NUM_PROFILES * 2)) if (dim->tired == (NET_DIM_PARAMS_NUM_PROFILES * 2))
return DIM_TOO_TIRED; return DIM_TOO_TIRED;
...@@ -152,7 +152,7 @@ static inline int net_dim_step(struct net_dim *dim) ...@@ -152,7 +152,7 @@ static inline int net_dim_step(struct net_dim *dim)
return DIM_STEPPED; return DIM_STEPPED;
} }
static inline void net_dim_exit_parking(struct net_dim *dim) static inline void net_dim_exit_parking(struct dim *dim)
{ {
dim->tune_state = dim->profile_ix ? DIM_GOING_LEFT : dim->tune_state = dim->profile_ix ? DIM_GOING_LEFT :
DIM_GOING_RIGHT; DIM_GOING_RIGHT;
...@@ -189,7 +189,7 @@ static inline int net_dim_stats_compare(struct dim_stats *curr, ...@@ -189,7 +189,7 @@ static inline int net_dim_stats_compare(struct dim_stats *curr,
} }
static inline bool net_dim_decision(struct dim_stats *curr_stats, static inline bool net_dim_decision(struct dim_stats *curr_stats,
struct net_dim *dim) struct dim *dim)
{ {
int prev_state = dim->tune_state; int prev_state = dim->tune_state;
int prev_ix = dim->profile_ix; int prev_ix = dim->profile_ix;
...@@ -240,8 +240,8 @@ static inline bool net_dim_decision(struct dim_stats *curr_stats, ...@@ -240,8 +240,8 @@ static inline bool net_dim_decision(struct dim_stats *curr_stats,
return dim->profile_ix != prev_ix; return dim->profile_ix != prev_ix;
} }
static inline void net_dim(struct net_dim *dim, static inline void net_dim(struct dim *dim,
struct net_dim_sample end_sample) struct dim_sample end_sample)
{ {
struct dim_stats curr_stats; struct dim_stats curr_stats;
u16 nevents; u16 nevents;
...@@ -261,8 +261,8 @@ static inline void net_dim(struct net_dim *dim, ...@@ -261,8 +261,8 @@ static inline void net_dim(struct net_dim *dim,
} }
/* fall through */ /* fall through */
case DIM_START_MEASURE: case DIM_START_MEASURE:
net_dim_update_sample(end_sample.event_ctr, end_sample.pkt_ctr, dim_update_sample(end_sample.event_ctr, end_sample.pkt_ctr,
end_sample.byte_ctr, &dim->start_sample); end_sample.byte_ctr, &dim->start_sample);
dim->state = DIM_MEASURE_IN_PROGRESS; dim->state = DIM_MEASURE_IN_PROGRESS;
break; break;
case DIM_APPLY_NEW_PROFILE: case DIM_APPLY_NEW_PROFILE:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment