OSDN Git Service

s390/qeth: add stats counter for RX csum offload
authorKittipon Meesompop <kmeesomp@linux.vnet.ibm.com>
Thu, 26 Apr 2018 07:42:19 +0000 (09:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Apr 2018 17:38:48 +0000 (13:38 -0400)
This matches the statistics we gather for the TX offload path.

Signed-off-by: Kittipon Meesompop <kmeesomp@linux.vnet.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c

index 2cfeae4..e8108f6 100644 (file)
@@ -148,6 +148,7 @@ struct qeth_perf_stats {
        unsigned int tx_csum;
        unsigned int tx_lin;
        unsigned int tx_linfail;
+       unsigned int rx_csum;
 };
 
 /* Routing stuff */
@@ -868,10 +869,13 @@ static inline void qeth_rx_csum(struct qeth_card *card, struct sk_buff *skb,
                                u8 flags)
 {
        if ((card->dev->features & NETIF_F_RXCSUM) &&
-           (flags & QETH_HDR_EXT_CSUM_TRANSP_REQ))
+           (flags & QETH_HDR_EXT_CSUM_TRANSP_REQ)) {
                skb->ip_summed = CHECKSUM_UNNECESSARY;
-       else
+               if (card->options.performance_stats)
+                       card->perf_stats.rx_csum++;
+       } else {
                skb->ip_summed = CHECKSUM_NONE;
+       }
 }
 
 static inline void qeth_tx_csum(struct sk_buff *skb, u8 *flags)
index 7feb50a..b90f38d 100644 (file)
@@ -6005,7 +6005,8 @@ static struct {
        {"tx lin"},
        {"tx linfail"},
        {"cq handler count"},
-       {"cq handler time"}
+       {"cq handler time"},
+       {"rx csum"}
 };
 
 int qeth_core_get_sset_count(struct net_device *dev, int stringset)
@@ -6067,6 +6068,7 @@ void qeth_core_get_ethtool_stats(struct net_device *dev,
        data[35] = card->perf_stats.tx_linfail;
        data[36] = card->perf_stats.cq_cnt;
        data[37] = card->perf_stats.cq_time;
+       data[38] = card->perf_stats.rx_csum;
 }
 EXPORT_SYMBOL_GPL(qeth_core_get_ethtool_stats);