From patchwork Wed Jul 1 15:06:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1320604 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=J1CE14Pa; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49xl3W6Hwpz9sTd for ; Thu, 2 Jul 2020 01:08:23 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731826AbgGAPIW (ORCPT ); Wed, 1 Jul 2020 11:08:22 -0400 Received: from mail-bn8nam12on2056.outbound.protection.outlook.com ([40.107.237.56]:52640 "EHLO NAM12-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731798AbgGAPIR (ORCPT ); Wed, 1 Jul 2020 11:08:17 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NgqV6/1iT2/iyYcbp6DNJe474OX7XSS2RDb/e16YGt8sOSxZq8ZYyxgIj0YEhpgPP5Cb6LHAuCfqjZq2VY/JNZRVIexH/0HC9CigHkgstoNk00JVT2YmOyTOfIGmQhoBj+9PdQ7HISM3z+iti4hFkxdrh5hVbing4s13kQ2OgHy8pL8IutVsW+t6Wv81i+ryTjh1KpxS/DCp50AG5d2nhugJdul2MVVrOu9r+/X76Chq/qam0KHobF5GyoBJ3zZ4kOjpQ+BgKBv39EGvrd9hzr7vEZccIr0ERuIqBKwQq0I5wPvzuKsYD81UitTmQPDmWRtzjD2Rrei8ohwhO7nHiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BoUXTUzrL9Wlx5IeUEgnWIpwJ+//CCk86Mp9ROVa9WQ=; b=RdKTte+krGwS7QmE2SjWG5wmFPn9ybHggqapHb65+yXgcNqBGNBdJR36nxsRxEcbeRBQgffSksfKR4BrKMIR3Hz846zcCOYGOBS04UklJFeA5BEzoHTtdxplqb8Ys7tHd58AbULszb8/iNnN8bbQ/nfHu+VEy1a4LdkuP9tvuy/qJ+bPiwAmxX7uO82p8ZMJu2Q2Xwg3PfbmcI/gGxLpv2g+2l7l29A1g/n4dZQ8lElMHukgh6Jm6iWMdkFuU+1XZBAluKsaqh2I9NHbY9ApUnZl9XJv45fSxysrUf4lgDvoPBWflcpSLQTOBmvX3aYivvq50zpUFH2HWZ3kFGC6Eg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BoUXTUzrL9Wlx5IeUEgnWIpwJ+//CCk86Mp9ROVa9WQ=; b=J1CE14PaDS2/LvPENGR1qpb+82YDT2GDuHAqnmFdrmG5CoTb/z3mxgCVqumdoXj/imDJ5u6wkvbdy+wjkshgKKc2x8H9m3diMg2tudqsv4A2+2ioxBl6bTAQVCtey+N75rK+SH8NcTsq0QPXWNz0w6cpQxBSXbJ7EqdqSJ2aY5U= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SA0PR11MB4736.namprd11.prod.outlook.com (2603:10b6:806:9f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.22; Wed, 1 Jul 2020 15:08:08 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3131.033; Wed, 1 Jul 2020 15:08:08 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 04/13] staging: wfx: add tracepoint "queues_stats" Date: Wed, 1 Jul 2020 17:06:58 +0200 Message-Id: <20200701150707.222985-5-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200701150707.222985-1-Jerome.Pouiller@silabs.com> References: <20200701150707.222985-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: DM5PR07CA0143.namprd07.prod.outlook.com (2603:10b6:3:13e::33) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by DM5PR07CA0143.namprd07.prod.outlook.com (2603:10b6:3:13e::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.21 via Frontend Transport; Wed, 1 Jul 2020 15:08:06 +0000 X-Mailer: git-send-email 2.27.0 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d3389e50-2e1a-452f-e6de-08d81dd0903a X-MS-TrafficTypeDiagnostic: SA0PR11MB4736: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-Forefront-PRVS: 04519BA941 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2nR6khtdnSqw6CGIZL9275ji09M0gGbnvwGYp12bUKWtprwrL/0wYQ/JU56OSpMa+6Du4B0yV/ntlWeXO00o+47fbwVe6ReVmN3zycX4uA9JGkayOsqULOT1Lw5a7ywH+yEwvXbO7V+fxLhzC3G1Q9EJn4p7E5icu91s/TVzjglfTSPP6Sm3Iwumj7davUIhKH6rdiv6349O4gHdBo4Tjsj0VNtC1N0tkAOi26sSCsk/bzCOapXn0CQBINb3gIXMFsPxRVrEBXL8F3tQyo5zabWYDZ2BZVjGjaT/QuJ2SeusZVg1jMNX4E+GxM0ulr9KA3whY576nGY3/+VCvTGpnw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(39850400004)(366004)(346002)(376002)(396003)(136003)(5660300002)(6486002)(86362001)(6666004)(66574015)(36756003)(2906002)(186003)(83380400001)(16526019)(8936002)(66556008)(66476007)(107886003)(4326008)(8676002)(2616005)(1076003)(478600001)(316002)(54906003)(66946007)(52116002)(7696005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ak0YOdFGxcXrJoOkFPuQQ7xP9UMtzbxD9jBYKrZDYR7ImU/xjc6WwaTWiKQ/wiSG8PL9+uXR68mLf6ZPTvkcU9qyvmrZpY8siCZmVhoQbxtf4+T+AaShwupm9yvCvLSwkAJ71JO624V7Y4ZHBZ1JeT21w0RNQw9hqjTJXXKgeojfsFoaEBp8p6quOTI+2QsLqV4Xiwne3N3gqxNUD7OgqvXEPkcnjBx5C6MfpsWzma97SG15xgTsbrRJLbrXCvPxScJDVssspr9rs/QHHDdK1zptd+/mFh9STFeGzZ5uaCmcKcF/o4AkKVf/omKxIyp90bKU55fyZZOHZD/lQtUvpgEkxVbhcS4gIfrEZPK9yX9Yqh3nCCKb9JB1D9yB1Awf2J3mQtI7qWdOAAUOIvDYVejIHtRsAK/jojuxpT4zoGQuNHiQVkVelH8CKvMQqmNOXKEXzwVKitN9FBwltzkcPvvapGMDw5X+r3XRu3jCCqV9zk3JzDjr4i7WelE0vzMTTA78NU2gL8qaNKjXB3wwncOpy0khDY6eF2KNVgMESik= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3389e50-2e1a-452f-e6de-08d81dd0903a X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 15:08:08.5426 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WWnuLFKkq14MDgN75Kw1lfNn5a3ZFDOWczAj1TNuPkNFOZ6srw0LEXAmweMBoJsp5hcuBeU9bbEwaAV04zOlPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4736 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller It is useful to check which queue the driver choose to send to the hardware. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 3 +++ drivers/staging/wfx/traces.h | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/drivers/staging/wfx/queue.c b/drivers/staging/wfx/queue.c index 678f622639093..6e31591651432 100644 --- a/drivers/staging/wfx/queue.c +++ b/drivers/staging/wfx/queue.c @@ -12,6 +12,7 @@ #include "wfx.h" #include "sta.h" #include "data_tx.h" +#include "traces.h" void wfx_tx_lock(struct wfx_dev *wdev) { @@ -256,6 +257,7 @@ static struct sk_buff *wfx_tx_queues_get_skb(struct wfx_dev *wdev) WARN_ON(queues[i] != &wvif->tx_queue[skb_get_queue_mapping(skb)]); atomic_inc(&queues[i]->pending_frames); + trace_queues_stats(wdev, queues[i]); return skb; } // No more multicast to sent @@ -267,6 +269,7 @@ static struct sk_buff *wfx_tx_queues_get_skb(struct wfx_dev *wdev) skb = skb_dequeue(&queues[i]->normal); if (skb) { atomic_inc(&queues[i]->pending_frames); + trace_queues_stats(wdev, queues[i]); return skb; } } diff --git a/drivers/staging/wfx/traces.h b/drivers/staging/wfx/traces.h index 0b6fbd5186381..d376db2f1891b 100644 --- a/drivers/staging/wfx/traces.h +++ b/drivers/staging/wfx/traces.h @@ -439,6 +439,57 @@ TRACE_EVENT(tx_stats, ); #define _trace_tx_stats(tx_cnf, skb, delay) trace_tx_stats(tx_cnf, skb, delay) +TRACE_EVENT(queues_stats, + TP_PROTO(struct wfx_dev *wdev, const struct wfx_queue *elected_queue), + TP_ARGS(wdev, elected_queue), + TP_STRUCT__entry( + __field(int, vif_id) + __field(int, queue_id) + __array(int, hw, IEEE80211_NUM_ACS * 2) + __array(int, drv, IEEE80211_NUM_ACS * 2) + __array(int, cab, IEEE80211_NUM_ACS * 2) + ), + TP_fast_assign( + const struct wfx_queue *queue; + struct wfx_vif *wvif; + int i, j; + + for (j = 0; j < IEEE80211_NUM_ACS * 2; j++) { + __entry->hw[j] = -1; + __entry->drv[j] = -1; + __entry->cab[j] = -1; + } + __entry->vif_id = -1; + __entry->queue_id = -1; + wvif = NULL; + while ((wvif = wvif_iterate(wdev, wvif)) != NULL) { + for (i = 0; i < IEEE80211_NUM_ACS; i++) { + j = wvif->id * IEEE80211_NUM_ACS + i; + WARN_ON(j >= IEEE80211_NUM_ACS * 2); + queue = &wvif->tx_queue[i]; + __entry->hw[j] = atomic_read(&queue->pending_frames); + __entry->drv[j] = skb_queue_len(&queue->normal); + __entry->cab[j] = skb_queue_len(&queue->cab); + if (queue == elected_queue) { + __entry->vif_id = wvif->id; + __entry->queue_id = i; + } + } + } + ), + TP_printk("got skb from %d/%d, pend. hw/norm/cab: [ %d/%d/%d %d/%d/%d %d/%d/%d %d/%d/%d ] [ %d/%d/%d %d/%d/%d %d/%d/%d %d/%d/%d ]", + __entry->vif_id, __entry->queue_id, + __entry->hw[0], __entry->drv[0], __entry->cab[0], + __entry->hw[1], __entry->drv[1], __entry->cab[1], + __entry->hw[2], __entry->drv[2], __entry->cab[2], + __entry->hw[3], __entry->drv[3], __entry->cab[3], + __entry->hw[4], __entry->drv[4], __entry->cab[4], + __entry->hw[5], __entry->drv[5], __entry->cab[5], + __entry->hw[6], __entry->drv[6], __entry->cab[6], + __entry->hw[7], __entry->drv[7], __entry->cab[7] + ) +); + #endif /* This part must be outside protection */