net/mlx5e: Add UDP GSO remaining counter
authorBoris Pismenny <borisp@mellanox.com>
Mon, 11 Jun 2018 14:24:58 +0000 (17:24 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 28 Jun 2018 21:44:14 +0000 (14:44 -0700)
This patch adds a counter for tx UDP GSO packets that contain a segment
that is not aligned to MSS - remaining segment.

Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/rxtx.c
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h

index 4bb1f3b12b9695040de6a2567a76a3ac7e8606bd..7b7ec3998e842a4f8b811f41f3dfd40597f8b7f6 100644 (file)
@@ -92,6 +92,7 @@ struct sk_buff *mlx5e_udp_gso_handle_tx_skb(struct net_device *netdev,
        if (!remaining)
                return skb;
 
        if (!remaining)
                return skb;
 
+       sq->stats->udp_seg_rem++;
        nskb = alloc_skb(max_t(int, headlen, headlen + remaining - skb->data_len), GFP_ATOMIC);
        if (unlikely(!nskb)) {
                sq->stats->dropped++;
        nskb = alloc_skb(max_t(int, headlen, headlen + remaining - skb->data_len), GFP_ATOMIC);
        if (unlikely(!nskb)) {
                sq->stats->dropped++;
index 1646859974ce2b8fc76798693a193e8b40d9e158..7e7155b4e0f06dd12c35959a34ed0d97d21ddc61 100644 (file)
@@ -68,6 +68,7 @@ static const struct counter_desc sw_stats_desc[] = {
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_xmit_more) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_recover) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_queue_wake) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_xmit_more) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_recover) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_queue_wake) },
+       { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_udp_seg_rem) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_cqe_err) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_wqe_err) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_mpwqe_filler) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, tx_cqe_err) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_wqe_err) },
        { MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_mpwqe_filler) },
@@ -159,6 +160,7 @@ void mlx5e_grp_sw_update_stats(struct mlx5e_priv *priv)
                        s->tx_added_vlan_packets += sq_stats->added_vlan_packets;
                        s->tx_queue_stopped     += sq_stats->stopped;
                        s->tx_queue_wake        += sq_stats->wake;
                        s->tx_added_vlan_packets += sq_stats->added_vlan_packets;
                        s->tx_queue_stopped     += sq_stats->stopped;
                        s->tx_queue_wake        += sq_stats->wake;
+                       s->tx_udp_seg_rem       += sq_stats->udp_seg_rem;
                        s->tx_queue_dropped     += sq_stats->dropped;
                        s->tx_cqe_err           += sq_stats->cqe_err;
                        s->tx_recover           += sq_stats->recover;
                        s->tx_queue_dropped     += sq_stats->dropped;
                        s->tx_cqe_err           += sq_stats->cqe_err;
                        s->tx_recover           += sq_stats->recover;
index 643153bb360722375c822f7f530e670c31c7f736..d416bb86e74790daa2a7cbc0033f79713566bbc2 100644 (file)
@@ -79,6 +79,7 @@ struct mlx5e_sw_stats {
        u64 tx_xmit_more;
        u64 tx_recover;
        u64 tx_queue_wake;
        u64 tx_xmit_more;
        u64 tx_recover;
        u64 tx_queue_wake;
+       u64 tx_udp_seg_rem;
        u64 tx_cqe_err;
        u64 rx_wqe_err;
        u64 rx_mpwqe_filler;
        u64 tx_cqe_err;
        u64 rx_wqe_err;
        u64 rx_mpwqe_filler;
@@ -196,6 +197,7 @@ struct mlx5e_sq_stats {
        u64 csum_partial_inner;
        u64 added_vlan_packets;
        u64 nop;
        u64 csum_partial_inner;
        u64 added_vlan_packets;
        u64 nop;
+       u64 udp_seg_rem;
 #ifdef CONFIG_MLX5_EN_TLS
        u64 tls_ooo;
        u64 tls_resync_bytes;
 #ifdef CONFIG_MLX5_EN_TLS
        u64 tls_ooo;
        u64 tls_resync_bytes;