Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp889655ybh; Tue, 21 Jul 2020 10:15:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz3SOqs4U2E3Kg4wMJ+gRLSNWh835BGKpj85u6bcOVEWmNkqHfiePPhZ6FaMimApCm9icYR X-Received: by 2002:a05:6402:3049:: with SMTP id bu9mr27683358edb.232.1595351747405; Tue, 21 Jul 2020 10:15:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595351747; cv=none; d=google.com; s=arc-20160816; b=IQN/kKnlVgCAb/nhzS1pNj2DbX7Qpas6yQdh5tRgjTdoptMjpFyvH3lSq+MZbfH5sf q7yADi2Glfs5gUpHdOobWB0CGBWmL+i5I3hQ2sKooOweoYZYiWXDTf1tQk9/SSzNk6ze UfNbaK6kroUyvoJh/IfpxUEb5ELWWaT6t98IDipK+wrAXKY3k8CYq8kavXZX1SovvbVZ NU7k+zOwbHSdMDAsJJSsD1q9yRv9pRzYrAEcZj8oq66J8o2urTRLNgpADX12zXh++Oh4 evodew3RZRbm/2RGBi/zLRXIrzrWgdoi6o82rWRRZlNYw7yMJE/k2a2LPCCw7OJydVAM cMiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature; bh=wHZHpcJq6IQCRL0ELXQS25dwFzpXsMpPaN59eDhrOwE=; b=pWDqng4FS/vQ3YI1MAihUXmIb4Sa2PozSYclErZFOuV1Ek8R1mo3/V0Q1qqRMGvOaK DxatqtYMGKfbqEnTvG8q3nOvaOSP5wsrxed379X8njX7Lx5DMKZSTtQcgx33uzach9OU 0RmtZAoPASRPnUKNmKm2oRuKyljdq345Yl19SVCTGX84crSOlkXVhAWoQIgltUrmeMVE QzdctP1w/ZpdP9YX8vyFXZfTQpdyJw6AjMV5zCx1T0YGiNj48LaldVtKlARvrm5C9chF JE9OILdcGIn2JjK6rFhl1CCEgIo5Kizd7IBkxU2WAPSrl+1MBqH0ANUKQpYqdy5Qy+Y5 ZqMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@mg.codeaurora.org header.s=smtp header.b=VHQ2bHnc; 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 s1si12461065edx.297.2020.07.21.10.15.20; Tue, 21 Jul 2020 10:15:47 -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=fail header.i=@mg.codeaurora.org header.s=smtp header.b=VHQ2bHnc; 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 S1730619AbgGUROr (ORCPT + 99 others); Tue, 21 Jul 2020 13:14:47 -0400 Received: from m43-7.mailgun.net ([69.72.43.7]:51209 "EHLO m43-7.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730516AbgGUROq (ORCPT ); Tue, 21 Jul 2020 13:14:46 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1595351686; h=Message-Id: Date: Subject: Cc: To: From: Sender; bh=wHZHpcJq6IQCRL0ELXQS25dwFzpXsMpPaN59eDhrOwE=; b=VHQ2bHncTp8WasutwqTeg9zek4yyrV55HJB9UCQWySSIv+zw38dDSNONR7pvcUIk1yY/zVFl a48d8caoFfPebwyAIJ3Zzy5eFPvzfU9ZzvpABecen6Cu2hJik65T0deNxTXLnMn3a/XwtDBo WIYzuzjCjrasjFr1/l3mlCImrSA= X-Mailgun-Sending-Ip: 69.72.43.7 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-n03.prod.us-west-2.postgun.com with SMTP id 5f172283ed710aec6255b504 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Tue, 21 Jul 2020 17:14:43 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 2BCDCC433A1; Tue, 21 Jul 2020 17:14:43 +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=-1.0 required=2.0 tests=ALL_TRUSTED,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.0 Received: from pillair-linux.qualcomm.com (unknown [202.46.22.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: pillair) by smtp.codeaurora.org (Postfix) with ESMTPSA id 8E2A5C433CB; Tue, 21 Jul 2020 17:14:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8E2A5C433CB Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=pillair@codeaurora.org From: Rakesh Pillai To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, kvalo@codeaurora.org, johannes@sipsolutions.net, davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, dianders@chromium.org, evgreen@chromium.org, Rakesh Pillai Subject: [RFC 0/7] Add support to process rx packets in thread Date: Tue, 21 Jul 2020 22:44:19 +0530 Message-Id: <1595351666-28193-1-git-send-email-pillair@codeaurora.org> X-Mailer: git-send-email 2.7.4 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org NAPI gets scheduled on the CPU core which got the interrupt. The linux scheduler cannot move it to a different core, even if the CPU on which NAPI is running is heavily loaded. This can lead to degraded wifi performance when running traffic at peak data rates. A thread on the other hand can be moved to different CPU cores, if the one on which its running is heavily loaded. During high incoming data traffic, this gives better performance, since the thread can be moved to a less loaded or sometimes even a more powerful CPU core to account for the required CPU performance in order to process the incoming packets. This patch series adds the support to use a high priority thread to process the incoming packets, as opposed to everything being done in NAPI context. The rx thread can be enabled by using a module parameter when loading the ath10k_snoc module. --- This patch series is dependent on the below patch series https://patchwork.kernel.org/project/ath10k/list/?series=315759 Rakesh Pillai (7): mac80211: Add check for napi handle before WARN_ON ath10k: Add support to process rx packet in thread ath10k: Add module param to enable rx thread ath10k: Do not exhaust budget on process tx completion ath10k: Handle the rx packet processing in thread ath10k: Add deliver to stack from thread context ath10k: Handle rx thread suspend and resume drivers/net/wireless/ath/ath10k/core.c | 64 +++++++++++++++++++ drivers/net/wireless/ath/ath10k/core.h | 33 ++++++++++ drivers/net/wireless/ath/ath10k/htt.h | 2 + drivers/net/wireless/ath/ath10k/htt_rx.c | 66 ++++++++++++++----- drivers/net/wireless/ath/ath10k/snoc.c | 105 ++++++++++++++++++++++++++++++- net/mac80211/rx.c | 2 +- 6 files changed, 253 insertions(+), 19 deletions(-) -- 2.7.4