Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp1585334pxy; Thu, 6 May 2021 10:50:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwxMpJU7QrRcnxRk7qpDpwBz+/9TgUv8R089u+QJg/s3Gr0Wxittza66+CWb1Z4CwFGaP4y X-Received: by 2002:a17:90b:300e:: with SMTP id hg14mr5840579pjb.149.1620323406620; Thu, 06 May 2021 10:50:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620323406; cv=none; d=google.com; s=arc-20160816; b=QcI6C4qTEvEpG0PiZZtV4YehuOoy9VUMNHKu5fCeIz7i3jGrg8kulOnVlwhjx9wgR+ oWjL0HCzHnUmtmQ0KMZtYE6bKPxBK7/sFomBcvMp7phded2IpCbpMlSXQTEPNx06ta3Y bcybbsJXbUhTptWAWxElb2vcQ3Z3r5FaPtoq6gaGBhfJLvPchCD4SMpd53D4+N7Fw74M +XODhO0/L15EQ2QonuetDtyPZurT6JSDNgG/Fsp/aZpXbhGvdZmDVoHW501Gx++CBDMG fdyp1acWs9woglw5IRFlFDgXx+EizHGHeHr37Y4NVAV1IDU7ttJHi9pDB9LFksVJ2a2/ a1Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:message-id:references:in-reply-to :subject:cc:to:from:date:content-transfer-encoding:mime-version :sender:dkim-signature; bh=ft7TUtBEdfOrFnaq7PjoD6JGt/OipKZ96jhb7jcLtCg=; b=nUVcx1A0zoOb4ggmsB4kltCUuyj8op3lLURiiHn3VcuIZNvW/mRoQq2sgGMbSMx7qN MUEX63W8uR0H8Jn7vveFRLFu3ycAFC7Ab0xgnRfvd1s/HbRrXNR7044pFSkMqEFDRiRg VZtOWoCPQSInvFs3lAqZxZAYg01w7ITQuYVZxAG5i0vzvKSjh97zm7bgfjg7m+idv/uu 99BkJh0QjfjbXLY2x/7l3I1O7Wt9tC6TC5IH4IM8HombzcK51t9vW9M6PQCNQAhd5MrR GeqtD+Ea2WtUB/YY8f3yH6IiHI2RfbeUo+w+bzkjQU6PGnYEa3Yz7O7iUS+4jNYVk74R Luog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=PwdDiG95; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r6si4079266pls.99.2021.05.06.10.49.51; Thu, 06 May 2021 10:50:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=PwdDiG95; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236310AbhEFRuM (ORCPT + 99 others); Thu, 6 May 2021 13:50:12 -0400 Received: from so254-9.mailgun.net ([198.61.254.9]:44408 "EHLO so254-9.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236042AbhEFRuL (ORCPT ); Thu, 6 May 2021 13:50:11 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1620323353; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=ft7TUtBEdfOrFnaq7PjoD6JGt/OipKZ96jhb7jcLtCg=; b=PwdDiG95yUGm4CRPLoUfM+cqLDhAuArzU97WbKN2o7DhWSfJIiTSY7GEB2GNjfaLv3Mjz/wK iAfgiiemGB0/lWIgo8zLg6Qn1mUYFaEq1j8oib4AkjK9xFXQRFHlxnLNgytbCko7p/wW+9SV IKdj3oOWDcWRthKlHysekh+f+v8= X-Mailgun-Sending-Ip: 198.61.254.9 X-Mailgun-Sid: WyI3YTAwOSIsICJsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmciLCAiYmU5ZTRhIl0= Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n02.prod.us-west-2.postgun.com with SMTP id 60942c129a9ff96d95b77c64 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 06 May 2021 17:49:06 GMT Sender: tmariyap=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id CD206C4338A; Thu, 6 May 2021 17:49:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: tmariyap) by smtp.codeaurora.org (Postfix) with ESMTPSA id 7EE1BC433D3; Thu, 6 May 2021 17:49:06 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Thu, 06 May 2021 23:19:06 +0530 From: Thiraviyam Mariyappan To: Johannes Berg Cc: ath11k@lists.infradead.org, linux-wireless@vger.kernel.org Subject: Re: [PATCHv2] mac80211: increment rx stats according to USES_RSS flag In-Reply-To: References: <1613563010-1489-1-git-send-email-tmariyap@codeaurora.org> (sfid-20210217_125904_154301_738B3086) <1ee8d562986128767c037d20aedb96a5@codeaurora.org> Message-ID: X-Sender: tmariyap@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On 2021-04-23 13:28, Johannes Berg wrote: > On Wed, 2021-04-21 at 22:18 +0530, Thiraviyam Mariyappan wrote: >> In case of Mesh fast_rx is not applicable, but still USES_RSS can be >> enabled from driver when parallel RX is supported by HW/Driver, >> right?  > > Yes, I guess that's true. > >> Hence checked for USES_RSS support to update per cpu stats.Please >> correct me if the meaning of USES_RSS is misunderstood and it applies >> only when fast_rx for a STA is enabled. >> > > Well, actually using multi-queue is pointless or even > counter-productive > when you don't have fast-RX, since then you'll run into a common lock, > and doing much processing on multiple CPUs but under a common lock > might > well be worse than doing it on a single CPU in the first place, since > you'll bounce the lock around all the time. > > However, you're right that the driver might generally advertise > USES_RSS, but then not do it for mesh, but that throws off some > statistics. > > Something like this might then be a much better fix though? Below fix good to me and working fine. > > > diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c > index ec6973ee88ef..f87e883862d9 100644 > --- a/net/mac80211/sta_info.c > +++ b/net/mac80211/sta_info.c > @@ -2092,7 +2092,7 @@ sta_get_last_rx_stats(struct sta_info *sta) > struct ieee80211_local *local = sta->local; > int cpu; > > - if (!ieee80211_hw_check(&local->hw, USES_RSS)) > + if (!sta->pcpu_rx_stats) > return stats; > > for_each_possible_cpu(cpu) { > @@ -2192,9 +2192,7 @@ static void sta_set_tidstats(struct sta_info > *sta, > int cpu; > > if (!(tidstats->filled & BIT(NL80211_TID_STATS_RX_MSDU))) { > - if (!ieee80211_hw_check(&local->hw, USES_RSS)) > - tidstats->rx_msdu += > - sta_get_tidstats_msdu(&sta->rx_stats, tid); > + tidstats->rx_msdu += sta_get_tidstats_msdu(&sta->rx_stats, tid); > > if (sta->pcpu_rx_stats) { > for_each_possible_cpu(cpu) { > @@ -2308,8 +2306,7 @@ void sta_set_sinfo(struct sta_info *sta, struct > station_info *sinfo, > > if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES64) | > BIT_ULL(NL80211_STA_INFO_RX_BYTES)))) { > - if (!ieee80211_hw_check(&local->hw, USES_RSS)) > - sinfo->rx_bytes += sta_get_stats_bytes(&sta->rx_stats); > + sinfo->rx_bytes += sta_get_stats_bytes(&sta->rx_stats); > > if (sta->pcpu_rx_stats) { > for_each_possible_cpu(cpu) { > > > johannes