From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0070.outbound.protection.outlook.com [104.47.36.70]) by dpdk.org (Postfix) with ESMTP id 0EBEBC304 for ; Tue, 21 Feb 2017 10:30:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=oKiCpYpZV5L1opoLxmjtIGuQF2S/q5ve1UhTWZ6WfRc=; b=bmKouW1XOprgRZvyjrhuxPP78aXtdDkgievZ3akCmv+NT5YMsU9kWlyutHbFPoXUGRCfVCKBYdEy/63Cm6bKPrInAoY03Vm0/CnX2jgJ1yAJWGhk3WSzJzluCSUUBguk2E2uBS4t/QqlbH6BKefB4ZH4fF2YB3ZgBPpkNEvYZOQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Shijith.Thotton@cavium.com; Received: from lio357.in.caveonetworks.com (14.140.2.178) by SN1PR07MB2285.namprd07.prod.outlook.com (10.164.47.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Tue, 21 Feb 2017 09:30:23 +0000 From: Shijith Thotton To: dev@dpdk.org Cc: Jerin Jacob , Derek Chickles , Venkat Koppula , Mallesham Jatharakonda Date: Tue, 21 Feb 2017 14:57:00 +0530 Message-Id: <1487669225-30091-46-git-send-email-shijith.thotton@caviumnetworks.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com> References: <1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: MA1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM (10.174.56.29) To SN1PR07MB2285.namprd07.prod.outlook.com (10.164.47.155) X-MS-Office365-Filtering-Correlation-Id: 7c60b2db-4ab9-4434-3676-08d45a3c442e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR07MB2285; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 3:e085YWbs4tgKAiNBZvntdD+dPS0kPRRs4cSHKUUQqs/tifuoUC4d74Qx4sdwtpCHNqGNLpxJsJAkztnGx3Drl8i+tDVuSGEVqBQaroP0Etg7rUUVQkIliCOVLrvzYXJWC7z4Bgc+FIunoKxkcPJtn7z6CL1Y1hlW4+hmePWDmwMkhCW1Y7v4TMspz9cpFFcjS1NQCbClfAo9tGEhDoIiIpFrNKuKCZwzVS+8IxHs0r4nZpnCjEpqDTtw8v8xijUIKFXpF4zIcOyTQEQhgOJ9oA==; 25:iNRIBS5fIVekOQZYZytiDw05QL07isKN5//zWQD2R2qc/CPZCUbqOf4NkT4EURZEjF/EhBOddO/f5ujiWDLRldEiBmVRiUtjNu00mxdqPqZCbpu7d6aCbSXwrDYvjT53chNRmHRJzkc5q7LvkST/ifQp4nDgCsxCOh6CyrI7bGJ97+pu9Ld9DRJcrQytto2uq+NhQ8Q0WZiAMU0nCpNHZW180SB9s7+OZ99JCE4akKxeIRjvUCwRecpPlwBnkDdyHNNY38oafpyTnIV+x+JDjZpSUMiTZlV1dNbN644acZ2eDLhNHTK7I0PAuSFsuU9aZVXuDVO5biCN7mvBXgij/U5VrGQ004r+nJrIgM3z5sZIArnhHdlxzrgkutS/U5sEI31dn8w+OmhJMQAlxQrn3B9YECLXqVcuLGrwWGM/rjLlEdsx8I7DaBpbLXHJmLiH4EOWbM3KtBiHsxriW+TLAA== X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 31:rt+nKZaCRrVjF3dBQ70i7r7yDNG3Fk0VrA2cxb8rOSS5OpvENe1fC+sMCW9V0mkYbJD6obyoioET9esFsLnD4/MEzrWCIcJ/D+qqO0t874mQ/wl5EDdVRlewZn9fgKiVL2lnZqi++6vv/azJPHVOCerzEtJDgjtssJhfctm1r0lfkJmIsCqyubWfdX5Eh85ZsKIShOeqDwUQOb2a1vDx/sq70Ry5Uxrpme3xRjff09nbxwGqew1umFrFwoGACctB; 20:MPhSqk6L6CFlqQwSBPGghucwHBRpbTWMaJ0wzoFGOqqKtYJ6XXSjuB+6cBNqLGjWhzJaOhFiCOqwEHu5kPaPv3Wc7xnSKZxp/awQKNFkq3P+FFN16c3d6cyzWrFwlK/FIe/WDXo04qlrfsm8Q+WLPqWbNdcDpwvKFGlmWKlLuuXUXzuA6GCTUf/ziuC844Ia0R1b/gItv8MH1VxSJFlGPfDMI77czoWEFqzJ7wAbDtcVIP9YRZ/Si8rKx7cHDCZB+4jUEdb23AG02VGKfNnMZsRNcSVqXb5DtTsCpL/sku4rMJ0oK2B/9llSIws9iUDzKwQKkQHfiXeVU7MmUoJHPGIkOawR5l5P9Bq0DdICf70eecVduLk10sLju7hV3FGpOtVC/FWiFt1KOv+7vq2cWuWVcoxgbxkzEVs4djo4kMrmcrGUzkZykstoj99QUc0eMnRTiOzLyZS/ulyri34PqIHzTSUkjfkQBX0JT43aV1fhrlK33UH4jg6qLnhWwjgg8Dm13zox5N8Unc9xSZjcASFrNVCU+vPLtWotRXwtfHeUhepR228IpMnP5ohf5mjcrpdc5cKbM7E4lKE5ukDXcWIS5DDPUEnuJ7+ZeCZp5GM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(20161123558025)(6072148); SRVR:SN1PR07MB2285; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2285; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 4:N6V0hbvh/lPyrd0b3teuqrBQuqzptEawo7uP4s+FnH0Sj1jPitJ7nO91sEFSs9tTXf+JP8lth7IhM94ouY5QD9NZMfaFWDo965n9T7zzpUb7Co5aiLcb1LpYi1M9/fckKOtJG2keAWGKoTGH6ipCpN0RgsP6APhYvui34qV+JmRq4/OUjhBOAywRKmZpsOqw8q0JHvnyWKdo2mCdT2fOjIHK3sdsEbV5EQ6jNzgiDMxTbYxIFz7i9WiCptaUEKz2PQhgL9+7fvEMdtk2Ou+zRrehQXOGhT3q6pU2f3AtyZFnQGKARX4AeIPcfMojtiEXKaXy5YqDE09VbpTcn3+QZ8z4PUYvFTaZIzSEV2ZZ1B+gMV8mA5oW6lVcrLr1xTWKKSpwdBY0fVpLanQhDPAZ7VjyS6CK1sz8jtxPknMoQH3ZsXe3PqjOgfZTUXGDw+g9Aq2d8YBUdPN60k9xk6npfksvdN0ZW1KbFo/O76YmzZ3pL/ltunMh6jDNA2KbV5VC5Gj+JSA98upe3gWNju30yTHdX3JC+jnoeOhrkn4dD1sOMz+6nzd7lB/3D3+pbsdLfiRp3N/CpuOcqum5gV4VrmbQV2QCgHN6KSVQ6q0UJ9c= X-Forefront-PRVS: 0225B0D5BC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(199003)(50226002)(81166006)(42186005)(2361001)(101416001)(81156014)(305945005)(3846002)(6116002)(5009440100003)(8676002)(105586002)(7736002)(53936002)(36756003)(110136004)(106356001)(6506006)(25786008)(38730400002)(2351001)(92566002)(48376002)(6486002)(97736004)(50466002)(5003940100001)(189998001)(68736007)(2906002)(4326007)(33646002)(76176999)(54906002)(5660300001)(6666003)(6916009)(50986999)(2950100002)(6512007)(4720700003)(42882006)(66066001)(47776003)(7099028)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2285; H:lio357.in.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR07MB2285; 23:BMpYk4ZxLcnJMvJVmlUsl4b4mJBnIFPdsuH+mmrwy?= =?us-ascii?Q?WlNwnm8XzcXTFGFk+lDo/tSFZAFCNZlDjzFyShi+VnKiPt6MbEEK88wLWc/a?= =?us-ascii?Q?eV4Ro6ukLVJp97HxsZwaui7yeNlulJ/zluhcrv1BIpxtrnIwmliQILTLm/63?= =?us-ascii?Q?zhQXV9d5HbKuRiEuwS76wK9TWJfKPIdxqv8dpXVy2T1XP3iuO+OBeEJKLNyK?= =?us-ascii?Q?G34A0VCFnUaAUBs+dRFbUUbdUEU9wr1hcyevRwVfSAW6kb6Vv8IUKpOd8NZu?= =?us-ascii?Q?CPcSPGCfNBb5zSigcIMfruFvcRa++TTKYoVW9GDFd3AtHEV4eR7IyMZwrS3e?= =?us-ascii?Q?BxdknXtQCmVhIbs/Gi2w/WXIXsu04/HdwiiBScUnZqb9HRLz9Mf3bnFM32/H?= =?us-ascii?Q?Ak97sM3cVi1o9ZzwIaGGqz4Kle8uoNLb5r4lnl4W4dr2micpLPuxv5ws5Ke7?= =?us-ascii?Q?Xg9G0/cFHwbsXp0xFYjVfsxLP8w211fScJzd6JPpZQmvZv5VejqCvoXIcGDW?= =?us-ascii?Q?/TvamoTLHjXX002MTz65fav8CKOt1wvkSHjcHL9AGWlxMjUBM0Ipcz2ais/v?= =?us-ascii?Q?gb3gTkmpO15jwv5DpyHUyaalJ/PpFx5osC5zjBgmCNzItOPrL2+jilwqm+zB?= =?us-ascii?Q?tixhvRm+wzW5PxM+kqvxhxSrg/O0osf9hxT04/79fe3JbBiJR8+5cz0ii+xC?= =?us-ascii?Q?rmCysksUCLuxendRjyLqT3s/4Seh2wvoisji16KPZeQeN5/Lq/CbP3qreZMk?= =?us-ascii?Q?Iu7SxZ2E8i4qO+kw7bJWYhFmIQIEWl45w9nRtpaA9UNEtuHQ84jaOwb/Pf8F?= =?us-ascii?Q?FzpsxqZ3Bq7ZqkHwr4mcKUkrW97PQxIGi92dK+ixTnnA/IqkVI0zJL0OvElW?= =?us-ascii?Q?FBwBNJrT4676Xs+xkXfrrS7+WUIcjfu71R5xi6mVlmOf91QlRPxDT4harhLu?= =?us-ascii?Q?PQ/XAGm9WB0doel2+t/G4KmWw4PHmxZcXcnkU1vWtCkJ1MliiYTj/6thOm5q?= =?us-ascii?Q?ccNntrl8BBTlL7HpErlujnW9MPc2+pCAD3EKFLNAaqDxDo/bfi5q9v6SKNHz?= =?us-ascii?Q?mRmbDSYpBnslhZtBRBDOoNhQw8GZZJxgMCXSd9yz1wZRF9eBoZhJ5hz4iwhC?= =?us-ascii?Q?045QXYUabnQKwDNNZdQMJDqYwZxpRK2JvhWOsyJM0ogCygX1EaKODk7ii7qR?= =?us-ascii?Q?gTwgIPrj9j4LIOL/gsutvWqU1thA4f5WfA0Fl89g6SxPo2020ozg3injdV3s?= =?us-ascii?Q?hzmzVkjGpccGQyqYWtMUvn7X1Vh7G3Z3a8i39Q/P3kBp9V3iH282vRhEXJBO?= =?us-ascii?Q?Q6uyw+Y5YE0nQXBZbOrV2w=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 6:DHa2dWkXPutrnopqx+qj483VXol4esqW+B2aM6EX7MMol82AkLRWNwvV219k4Vi3IQpvJSL65lkvCfqeYOK5wuwqhMnuF6ZsAbn4GMWHm2pr8OCHY8XEajVG91zevND1pQMIAXr3eoQlXVqubrOGeYV1LZ9PV03qrzkRelxV72gQ9C/r6+CeMPmMHlGvnXO/ZLd9nJGP5eCXNrhvq1w/zoLE4qMBheimHB8QKgCSnn2gtHqb513sUYqns3S29PEIQLGUHXWz8XuIJ4EOjWscAJG9cWJOT77CtFYg0SLOtuLb137PZDfGCmt7LluTYUVAnxjxVCsvys7sZ/bnajhUXqny2FfsRwCy61Y78RAYTuzkW2/z8/RAOdu1XpavcOMXEM3l1aj55nKMTb5WDRoxmA==; 5:zNNUHgYh4eyerTUN/opjCsYAGa/jmzQQDGKJ1UK6yN0qH7pNDcTklWxEE2qZRe05ntdwFqrgwvHghTJyrz2E8m8IcDzoavatr3BeGPRJa61QyIN9NMAHHeu5DlOPdCp16LmVBZhZ8n8HqA0I0qi1hA==; 24:gx9AgAsYoGTq1R7EzVZcye/PvYwS7hHQY2NeQOUbWY4EB1rEWe+39Fa87bZ7MQZtdoOrMcqi1wSmQf9kpHFG7gfu8Mq75qdQ+CX1Xqn1DEM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 7:CNXi/V3wMCG0rvRJHLSo6O4LHzgwbdzsn8eIeWCtv5lPxC/SQpuas7O39e8Dk0QIoNCHeBHLhyXznzGX4G/sCKnL5Jmu+0q2YzHLaJhBk9eaRz/cDVQz6ZBH1eUWoPC6h4ITipvmeam/Qb0/1LRZizzn4RJfFTFJO034Rce6VUB0OO6dXFPZ8SRZYXMy5gmfwc/t2tme9OS1gN1JwYVN8E6O/1stvwDPCKQj5EuC9TtBUEQ0WR+JW02U5WAon0AFxYZL1y3x7KPo3nExWCgssDPSGfh2d7kUbwdivRWzd6IJERjB9NsSJQ1jlBrp1UpHynug4PotVU5LK6NNGtsx9A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2017 09:30:23.5592 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2285 Subject: [dpdk-dev] [PATCH 45/50] net/liquidio: add support for Tx stats X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2017 09:30:27 -0000 Signed-off-by: Shijith Thotton Signed-off-by: Jerin Jacob Signed-off-by: Derek Chickles Signed-off-by: Venkat Koppula Signed-off-by: Mallesham Jatharakonda --- drivers/net/liquidio/lio_ethdev.c | 36 ++++++++++++++++++++++++++++++++++-- drivers/net/liquidio/lio_rxtx.c | 18 ++++++++++++++++-- drivers/net/liquidio/lio_rxtx.h | 3 +++ drivers/net/liquidio/lio_struct.h | 15 +++++++++++++++ 4 files changed, 68 insertions(+), 4 deletions(-) diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c index 2bdba09..7e6277a 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -124,11 +124,32 @@ { struct lio_device *lio_dev = LIO_DEV(eth_dev); struct lio_droq_stats *oq_stats; + struct lio_iq_stats *iq_stats; + struct lio_instr_queue *txq; struct lio_droq *droq; + int i, iq_no, oq_no; uint64_t bytes = 0; uint64_t pkts = 0; uint64_t drop = 0; - int i, oq_no; + + for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { + iq_no = lio_dev->linfo.txpciq[i].s.q_no; + txq = lio_dev->instr_queue[iq_no]; + if (txq != NULL) { + iq_stats = &txq->stats; + pkts += iq_stats->tx_done; + drop += iq_stats->tx_dropped; + bytes += iq_stats->tx_tot_bytes; + } + } + + stats->opackets = pkts; + stats->obytes = bytes; + stats->oerrors = drop; + + pkts = 0; + drop = 0; + bytes = 0; for (i = 0; i < eth_dev->data->nb_rx_queues; i++) { oq_no = lio_dev->linfo.rxpciq[i].s.q_no; @@ -152,8 +173,19 @@ { struct lio_device *lio_dev = LIO_DEV(eth_dev); struct lio_droq_stats *oq_stats; + struct lio_iq_stats *iq_stats; + struct lio_instr_queue *txq; struct lio_droq *droq; - int i, oq_no; + int i, iq_no, oq_no; + + for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { + iq_no = lio_dev->linfo.txpciq[i].s.q_no; + txq = lio_dev->instr_queue[iq_no]; + if (txq != NULL) { + iq_stats = &txq->stats; + memset(iq_stats, 0, sizeof(struct lio_iq_stats)); + } + } for (i = 0; i < eth_dev->data->nb_rx_queues; i++) { oq_no = lio_dev->linfo.rxpciq[i].s.q_no; diff --git a/drivers/net/liquidio/lio_rxtx.c b/drivers/net/liquidio/lio_rxtx.c index 794db32..edd16c6 100644 --- a/drivers/net/liquidio/lio_rxtx.c +++ b/drivers/net/liquidio/lio_rxtx.c @@ -1113,8 +1113,10 @@ inst_processed = lio_process_iq_request_list(lio_dev, iq); - if (inst_processed) + if (inst_processed) { rte_atomic64_sub(&iq->instr_pending, inst_processed); + iq->stats.instr_processed += inst_processed; + } tot_inst_processed += inst_processed; inst_processed = 0; @@ -1130,7 +1132,7 @@ static int lio_send_command(struct lio_device *lio_dev, uint32_t iq_no, void *cmd, - void *buf, uint32_t datasize __rte_unused, uint32_t reqtype) + void *buf, uint32_t datasize, uint32_t reqtype) { struct lio_instr_queue *iq = lio_dev->instr_queue[iq_no]; struct lio_iq_post_status st; @@ -1141,7 +1143,13 @@ if (st.status != LIO_IQ_SEND_FAILED) { lio_add_to_request_list(iq, st.index, buf, reqtype); + LIO_INCR_INSTRQUEUE_PKT_COUNT(lio_dev, iq_no, bytes_sent, + datasize); + LIO_INCR_INSTRQUEUE_PKT_COUNT(lio_dev, iq_no, instr_posted, 1); + lio_ring_doorbell(lio_dev, iq); + } else { + LIO_INCR_INSTRQUEUE_PKT_COUNT(lio_dev, iq_no, instr_dropped, 1); } rte_spinlock_unlock(&iq->post_lock); @@ -1667,6 +1675,7 @@ struct lio_soft_command * struct lio_instr_queue *txq = tx_queue; union lio_cmd_setup cmdsetup; struct lio_device *lio_dev; + struct lio_iq_stats *stats; struct lio_data_pkt ndata; int i, processed = 0; struct rte_mbuf *m; @@ -1676,6 +1685,7 @@ struct lio_soft_command * lio_dev = txq->lio_dev; iq_no = txq->txpciq.s.q_no; + stats = &lio_dev->instr_queue[iq_no]->stats; if (!lio_dev->intf_open || !lio_dev->linfo.link.s.link_up) { PMD_TX_LOG(lio_dev, ERR, "Transmit failed link_status : %d\n", @@ -1697,6 +1707,7 @@ struct lio_soft_command * ndata.q_no = iq_no; if (lio_iq_is_full(lio_dev, ndata.q_no)) { + stats->tx_iq_busy++; if (lio_dev_cleanup_iq(lio_dev, iq_no)) { PMD_TX_LOG(lio_dev, ERR, "Transmit failed iq:%d full\n", @@ -1804,10 +1815,13 @@ struct lio_soft_command * lio_dev_cleanup_iq(lio_dev, iq_no); } + stats->tx_done++; + stats->tx_tot_bytes += pkt_len; processed++; } xmit_failed: + stats->tx_dropped += (nb_pkts - processed); return processed; } diff --git a/drivers/net/liquidio/lio_rxtx.h b/drivers/net/liquidio/lio_rxtx.h index 655042d..6c024e1 100644 --- a/drivers/net/liquidio/lio_rxtx.h +++ b/drivers/net/liquidio/lio_rxtx.h @@ -670,6 +670,9 @@ enum { */ int lio_process_ordered_list(struct lio_device *lio_dev); +#define LIO_INCR_INSTRQUEUE_PKT_COUNT(lio_dev, iq_no, field, count) \ + (((lio_dev)->instr_queue[iq_no]->stats.field) += count) + static inline void lio_swap_8B_data(uint64_t *data, uint32_t blocks) { diff --git a/drivers/net/liquidio/lio_struct.h b/drivers/net/liquidio/lio_struct.h index 6788da1..b1fca92 100644 --- a/drivers/net/liquidio/lio_struct.h +++ b/drivers/net/liquidio/lio_struct.h @@ -56,6 +56,18 @@ struct lio_version { uint16_t reserved; }; +/** Input Queue statistics. Each input queue has four stats fields. */ +struct lio_iq_stats { + uint64_t instr_posted; /**< Instructions posted to this queue. */ + uint64_t instr_processed; /**< Instructions processed in this queue. */ + uint64_t instr_dropped; /**< Instructions that could not be processed */ + uint64_t bytes_sent; /**< Bytes sent through this queue. */ + uint64_t tx_done; /**< Num of packets sent to network. */ + uint64_t tx_iq_busy; /**< Num of times this iq was found to be full. */ + uint64_t tx_dropped; /**< Num of pkts dropped due to xmitpath errors. */ + uint64_t tx_tot_bytes; /**< Total count of bytes sent to network. */ +}; + /** Output Queue statistics. Each output queue has four stats fields. */ struct lio_droq_stats { /** Number of packets received in this queue. */ @@ -319,6 +331,9 @@ struct lio_instr_queue { /** Number of instructions pending to be posted to Octeon. */ uint32_t fill_cnt; + /** Statistics for this input queue. */ + struct lio_iq_stats stats; + /** DMA mapped base address of the input descriptor ring. */ uint64_t base_addr_dma; -- 1.8.3.1