Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3733118ybz; Mon, 4 May 2020 08:42:24 -0700 (PDT) X-Google-Smtp-Source: APiQypIkcsHFyXUi8yF6JWpvH72BAONu6Yp1el9ZbJ1pOfGqtKBTq11PRf+t8riSzz6+YyPQ9OPa X-Received: by 2002:a17:906:2488:: with SMTP id e8mr15457989ejb.157.1588606944375; Mon, 04 May 2020 08:42:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588606944; cv=none; d=google.com; s=arc-20160816; b=BrEFFy0kMckT2r6skv1loitUpu+wFhkDe/q7rq0d9lX3u/+UTVs4Q96jSQBTEMzgjH 0JL/w0NLnE8NZ7TTx7Zie5KvrxuBF0eouR35crU3NFJ3h4/KlLffbVOXQ2HKLzFGyWjM NNYkeKZit6AgvKGrfYrBG1k5pZeZJ+xkFlGrNL8IxyiBSFNhvDo+cEK9uzpIcMW5Pb5d nClqdaegud+wQB8c8vZRprRuVYir/6SC4gGLYX8/q/zdYfnEfpQ7mNUEzW42RDmayqWa 1BLNdFcSBipZKVesCjIxo49XlcqeqplBXyVFRFqry7mCBwYBt61xBA40nLXpO/3qlQOL SlZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=tkg4rIErxnn6PbxeGa6N/Mka3VGtxnhIqGMF/t2Loec=; b=CkMVZqVRm6G0zL3SwsPyGvbyirV/zUCAFgNhSEbSpm3vIkNLIll2iLEKXNknjs1p5Q yUHQKr9CWHiYAOo/69MrtPyHpYE0MVg/GnD/VSqLQ2vAexv7BVRYx1quJLSNfZNjodgx HvlFKLBzGzZ9u4gOOLHiVQS9UGHqEHZXlVg+YqJG/BXd4ws9hSbXpWXzb70ccxpuhcPo hokLneh4rTUlPgGCLF7RTq+eqpvcOoZoAXaKZADC3azlG67s+/gmnN2Mh0D9r7DrXkaa 1njNsTmlNEExP9pUHEzLZBtySWJmND31jjPZD6VwpbLZjQJzNQkVaPEUFnKIdES8Dvfq WtdQ== ARC-Authentication-Results: i=1; mx.google.com; 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 qn23si7061129ejb.111.2020.05.04.08.41.53; Mon, 04 May 2020 08:42:24 -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; 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 S1728294AbgEDPl0 (ORCPT + 99 others); Mon, 4 May 2020 11:41:26 -0400 Received: from smail.rz.tu-ilmenau.de ([141.24.186.67]:58265 "EHLO smail.rz.tu-ilmenau.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728021AbgEDPl0 (ORCPT ); Mon, 4 May 2020 11:41:26 -0400 Received: from legolas.fritz.box (unknown [87.147.56.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smail.rz.tu-ilmenau.de (Postfix) with ESMTPSA id 25687580242; Mon, 4 May 2020 17:41:24 +0200 (CEST) From: Markus Theil To: linux-wireless@vger.kernel.org Cc: kvalo@codeaurora.org, ath10k@lists.infradead.org, ath11k@lists.infradead.org, Markus Theil Subject: [PATCH 2/2] ath11k: use cumulative survey statistics Date: Mon, 4 May 2020 17:41:22 +0200 Message-Id: <20200504154122.91862-2-markus.theil@tu-ilmenau.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200504154122.91862-1-markus.theil@tu-ilmenau.de> References: <20200504154122.91862-1-markus.theil@tu-ilmenau.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org ath11k currently reports survey results for the last interval between each invocation of NL80211_CMD_GET_SURVEY. For concurrent invocations, this can lead to unexpectedly small results, e.g. when hostapd uses survey data and iw survey dump is invoked in parallel. Fix this by returning cumulative results, that don't depend on the last invocation. Other drivers, e.g. ath9k or mt76 also use this behavior. Signed-off-by: Markus Theil --- drivers/net/wireless/ath/ath11k/wmi.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c index c2a972377687..322ddfda5bfd 100644 --- a/drivers/net/wireless/ath/ath11k/wmi.c +++ b/drivers/net/wireless/ath/ath11k/wmi.c @@ -5610,16 +5610,16 @@ ath11k_pdev_bss_chan_info_event(struct ath11k_base *ab, struct sk_buff *skb) survey = &ar->survey[idx]; - survey->noise = bss_ch_info_ev.noise_floor; - survey->time = div_u64(total, cc_freq_hz); - survey->time_busy = div_u64(busy, cc_freq_hz); - survey->time_rx = div_u64(rx_bss, cc_freq_hz); - survey->time_tx = div_u64(tx, cc_freq_hz); - survey->filled |= (SURVEY_INFO_NOISE_DBM | - SURVEY_INFO_TIME | - SURVEY_INFO_TIME_BUSY | - SURVEY_INFO_TIME_RX | - SURVEY_INFO_TIME_TX); + survey->noise = bss_ch_info_ev.noise_floor; + survey->time += div_u64(total, cc_freq_hz); + survey->time_busy += div_u64(busy, cc_freq_hz); + survey->time_rx += div_u64(rx_bss, cc_freq_hz); + survey->time_tx += div_u64(tx, cc_freq_hz); + survey->filled |= (SURVEY_INFO_NOISE_DBM | + SURVEY_INFO_TIME | + SURVEY_INFO_TIME_BUSY | + SURVEY_INFO_TIME_RX | + SURVEY_INFO_TIME_TX); exit: spin_unlock_bh(&ar->data_lock); complete(&ar->bss_survey_done); -- 2.26.2