From: "Rakesh Pillai" <pillair@codeaurora.org> To: "'Felix Fietkau'" <nbd@nbd.name>, "'Ben Greear'" <greearb@candelatech.com>, "'Brian Norris'" <briannorris@chromium.org> Cc: "'Johannes Berg'" <johannes@sipsolutions.net>, "'Rajkumar Manoharan'" <rmanohar@codeaurora.org>, "'ath10k'" <ath10k@lists.infradead.org>, "'linux-wireless'" <linux-wireless@vger.kernel.org>, "'Linux Kernel'" <linux-kernel@vger.kernel.org>, "'Kalle Valo'" <kvalo@codeaurora.org>, "'David S. Miller'" <davem@davemloft.net>, "'Jakub Kicinski'" <kuba@kernel.org>, <netdev@vger.kernel.org>, "'Doug Anderson'" <dianders@chromium.org>, "'Evan Green'" <evgreen@chromium.org> Subject: RE: [RFC 2/7] ath10k: Add support to process rx packet in thread Date: Thu, 25 Mar 2021 15:15:44 +0530 [thread overview] Message-ID: <003701d7215b$a44ae030$ece0a090$@codeaurora.org> (raw) In-Reply-To: <633feaed-7f34-15d3-1899-81eb1d6ae14f@nbd.name> > -----Original Message----- > From: Felix Fietkau <nbd@nbd.name> > Sent: Tuesday, March 23, 2021 1:16 PM > To: Ben Greear <greearb@candelatech.com>; Brian Norris > <briannorris@chromium.org> > Cc: Johannes Berg <johannes@sipsolutions.net>; Rajkumar Manoharan > <rmanohar@codeaurora.org>; Rakesh Pillai <pillair@codeaurora.org>; ath10k > <ath10k@lists.infradead.org>; linux-wireless <linux- > wireless@vger.kernel.org>; Linux Kernel <linux-kernel@vger.kernel.org>; > Kalle Valo <kvalo@codeaurora.org>; David S. Miller > <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; > netdev@vger.kernel.org; Doug Anderson <dianders@chromium.org>; Evan > Green <evgreen@chromium.org> > Subject: Re: [RFC 2/7] ath10k: Add support to process rx packet in thread > > > On 2021-03-23 04:01, Ben Greear wrote: > > On 3/22/21 6:20 PM, Brian Norris wrote: > >> On Mon, Mar 22, 2021 at 4:58 PM Ben Greear > <greearb@candelatech.com> wrote: > >>> On 7/22/20 6:00 AM, Felix Fietkau wrote: > >>>> On 2020-07-22 14:55, Johannes Berg wrote: > >>>>> On Wed, 2020-07-22 at 14:27 +0200, Felix Fietkau wrote: > >>>>> > >>>>>> I'm considering testing a different approach (with mt76 initially): > >>>>>> - Add a mac80211 rx function that puts processed skbs into a list > >>>>>> instead of handing them to the network stack directly. > >>>>> > >>>>> Would this be *after* all the mac80211 processing, i.e. in place of the > >>>>> rx-up-to-stack? > >>>> Yes, it would run all the rx handlers normally and then put the > >>>> resulting skbs into a list instead of calling netif_receive_skb or > >>>> napi_gro_frags. > >>> > >>> Whatever came of this? I realized I'm running Felix's patch since his mt76 > >>> driver needs it. Any chance it will go upstream? > >> > >> If you're asking about $subject (moving NAPI/RX to a thread), this > >> landed upstream recently: > >> http://git.kernel.org/linus/adbb4fb028452b1b0488a1a7b66ab856cdf20715 > >> > >> It needs a bit of coaxing to work on a WiFi driver (including: WiFi > >> drivers tend to have a different netdev for NAPI than they expose to > >> /sys/class/net/), but it's there. > >> > >> I'm not sure if people had something else in mind in the stuff you're > >> quoting though. > > > > No, I got it confused with something Felix did: > > > > https://github.com/greearb/mt76/blob/master/patches/0001-net-add- > support-for-threaded-NAPI-polling.patch > > > > Maybe the NAPI/RX to a thread thing superceded Felix's patch? > Yes, it did and it's in linux-next already. > I sent the following change to make mt76 use it: > https://github.com/nbd168/wireless/commit/1d4ff31437e5aaa999bd7a Hi Felix / Ben, In case of ath10k (snoc based targets), we have a lot of processing in the NAPI context. Even moving this to threaded NAPI is not helping much due to the load. Breaking the tasks into multiple context (with the patch series I posted) is helping in improving the throughput. With the current rx_thread based approach, the rx processing is broken into two parallel contexts 1) reaping the packets from the HW 2) processing these packets list and handing it over to mac80211 (and later to the network stack) This is the primary reason for choosing the rx thread approach. Thanks, Rakesh. > > - Felix
WARNING: multiple messages have this Message-ID (diff)
From: "Rakesh Pillai" <pillair@codeaurora.org> To: "'Felix Fietkau'" <nbd@nbd.name>, "'Ben Greear'" <greearb@candelatech.com>, "'Brian Norris'" <briannorris@chromium.org> Cc: "'Johannes Berg'" <johannes@sipsolutions.net>, "'Rajkumar Manoharan'" <rmanohar@codeaurora.org>, "'ath10k'" <ath10k@lists.infradead.org>, "'linux-wireless'" <linux-wireless@vger.kernel.org>, "'Linux Kernel'" <linux-kernel@vger.kernel.org>, "'Kalle Valo'" <kvalo@codeaurora.org>, "'David S. Miller'" <davem@davemloft.net>, "'Jakub Kicinski'" <kuba@kernel.org>, <netdev@vger.kernel.org>, "'Doug Anderson'" <dianders@chromium.org>, "'Evan Green'" <evgreen@chromium.org> Subject: RE: [RFC 2/7] ath10k: Add support to process rx packet in thread Date: Thu, 25 Mar 2021 15:15:44 +0530 [thread overview] Message-ID: <003701d7215b$a44ae030$ece0a090$@codeaurora.org> (raw) In-Reply-To: <633feaed-7f34-15d3-1899-81eb1d6ae14f@nbd.name> > -----Original Message----- > From: Felix Fietkau <nbd@nbd.name> > Sent: Tuesday, March 23, 2021 1:16 PM > To: Ben Greear <greearb@candelatech.com>; Brian Norris > <briannorris@chromium.org> > Cc: Johannes Berg <johannes@sipsolutions.net>; Rajkumar Manoharan > <rmanohar@codeaurora.org>; Rakesh Pillai <pillair@codeaurora.org>; ath10k > <ath10k@lists.infradead.org>; linux-wireless <linux- > wireless@vger.kernel.org>; Linux Kernel <linux-kernel@vger.kernel.org>; > Kalle Valo <kvalo@codeaurora.org>; David S. Miller > <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; > netdev@vger.kernel.org; Doug Anderson <dianders@chromium.org>; Evan > Green <evgreen@chromium.org> > Subject: Re: [RFC 2/7] ath10k: Add support to process rx packet in thread > > > On 2021-03-23 04:01, Ben Greear wrote: > > On 3/22/21 6:20 PM, Brian Norris wrote: > >> On Mon, Mar 22, 2021 at 4:58 PM Ben Greear > <greearb@candelatech.com> wrote: > >>> On 7/22/20 6:00 AM, Felix Fietkau wrote: > >>>> On 2020-07-22 14:55, Johannes Berg wrote: > >>>>> On Wed, 2020-07-22 at 14:27 +0200, Felix Fietkau wrote: > >>>>> > >>>>>> I'm considering testing a different approach (with mt76 initially): > >>>>>> - Add a mac80211 rx function that puts processed skbs into a list > >>>>>> instead of handing them to the network stack directly. > >>>>> > >>>>> Would this be *after* all the mac80211 processing, i.e. in place of the > >>>>> rx-up-to-stack? > >>>> Yes, it would run all the rx handlers normally and then put the > >>>> resulting skbs into a list instead of calling netif_receive_skb or > >>>> napi_gro_frags. > >>> > >>> Whatever came of this? I realized I'm running Felix's patch since his mt76 > >>> driver needs it. Any chance it will go upstream? > >> > >> If you're asking about $subject (moving NAPI/RX to a thread), this > >> landed upstream recently: > >> http://git.kernel.org/linus/adbb4fb028452b1b0488a1a7b66ab856cdf20715 > >> > >> It needs a bit of coaxing to work on a WiFi driver (including: WiFi > >> drivers tend to have a different netdev for NAPI than they expose to > >> /sys/class/net/), but it's there. > >> > >> I'm not sure if people had something else in mind in the stuff you're > >> quoting though. > > > > No, I got it confused with something Felix did: > > > > https://github.com/greearb/mt76/blob/master/patches/0001-net-add- > support-for-threaded-NAPI-polling.patch > > > > Maybe the NAPI/RX to a thread thing superceded Felix's patch? > Yes, it did and it's in linux-next already. > I sent the following change to make mt76 use it: > https://github.com/nbd168/wireless/commit/1d4ff31437e5aaa999bd7a Hi Felix / Ben, In case of ath10k (snoc based targets), we have a lot of processing in the NAPI context. Even moving this to threaded NAPI is not helping much due to the load. Breaking the tasks into multiple context (with the patch series I posted) is helping in improving the throughput. With the current rx_thread based approach, the rx processing is broken into two parallel contexts 1) reaping the packets from the HW 2) processing these packets list and handing it over to mac80211 (and later to the network stack) This is the primary reason for choosing the rx thread approach. Thanks, Rakesh. > > - Felix _______________________________________________ ath10k mailing list ath10k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath10k
next prev parent reply other threads:[~2021-03-25 9:46 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-21 17:14 [RFC 0/7] Add support to process rx packets in thread Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-21 17:14 ` [RFC 1/7] mac80211: Add check for napi handle before WARN_ON Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-22 12:56 ` Johannes Berg 2020-07-22 12:56 ` Johannes Berg 2020-07-23 18:26 ` Rakesh Pillai 2020-07-23 18:26 ` Rakesh Pillai 2020-07-23 20:06 ` Johannes Berg 2020-07-23 20:06 ` Johannes Berg 2020-07-24 6:21 ` Rakesh Pillai 2020-07-24 6:21 ` Rakesh Pillai 2020-07-26 16:19 ` Rakesh Pillai 2020-07-26 16:19 ` Rakesh Pillai 2020-07-30 12:40 ` Johannes Berg 2020-07-30 12:40 ` Johannes Berg 2020-07-21 17:14 ` [RFC 2/7] ath10k: Add support to process rx packet in thread Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-21 21:53 ` Rajkumar Manoharan 2020-07-21 21:53 ` Rajkumar Manoharan 2020-07-22 12:27 ` Felix Fietkau 2020-07-22 12:27 ` Felix Fietkau 2020-07-22 12:55 ` Johannes Berg 2020-07-22 12:55 ` Johannes Berg 2020-07-22 13:00 ` Felix Fietkau 2020-07-22 13:00 ` Felix Fietkau 2020-07-23 6:09 ` Rajkumar Manoharan 2020-07-23 6:09 ` Rajkumar Manoharan 2021-03-22 23:57 ` Ben Greear 2021-03-22 23:57 ` Ben Greear 2021-03-23 1:20 ` Brian Norris 2021-03-23 1:20 ` Brian Norris 2021-03-23 3:01 ` Ben Greear 2021-03-23 3:01 ` Ben Greear 2021-03-23 7:45 ` Felix Fietkau 2021-03-23 7:45 ` Felix Fietkau 2021-03-25 9:45 ` Rakesh Pillai [this message] 2021-03-25 9:45 ` Rakesh Pillai 2021-03-25 10:33 ` Felix Fietkau 2021-03-25 10:33 ` Felix Fietkau 2020-07-23 18:25 ` Rakesh Pillai 2020-07-23 18:25 ` Rakesh Pillai 2020-07-24 23:11 ` Jacob Keller 2020-07-24 23:11 ` Jacob Keller 2020-07-21 17:14 ` [RFC 3/7] ath10k: Add module param to enable rx thread Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-21 17:14 ` [RFC 4/7] ath10k: Do not exhaust budget on process tx completion Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-21 17:14 ` [RFC 5/7] ath10k: Handle the rx packet processing in thread Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-21 17:14 ` [RFC 6/7] ath10k: Add deliver to stack from thread context Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-21 17:14 ` [RFC 7/7] ath10k: Handle rx thread suspend and resume Rakesh Pillai 2020-07-21 17:14 ` Rakesh Pillai 2020-07-23 23:06 ` Sebastian Gottschall 2020-07-23 23:06 ` Sebastian Gottschall 2020-07-24 6:19 ` Rakesh Pillai 2020-07-24 6:19 ` Rakesh Pillai 2020-07-21 17:25 ` [RFC 0/7] Add support to process rx packets in thread Andrew Lunn 2020-07-21 17:25 ` Andrew Lunn 2020-07-21 18:05 ` Florian Fainelli 2020-07-21 18:05 ` Florian Fainelli 2020-07-23 18:21 ` Rakesh Pillai 2020-07-23 18:21 ` Rakesh Pillai 2020-07-23 19:02 ` Florian Fainelli 2020-07-23 19:02 ` Florian Fainelli 2020-07-24 6:20 ` Rakesh Pillai 2020-07-24 6:20 ` Rakesh Pillai 2020-07-24 22:28 ` Florian Fainelli 2020-07-24 22:28 ` Florian Fainelli 2020-07-22 9:12 ` David Laight 2020-07-22 9:12 ` David Laight 2020-07-25 8:16 ` Hillf Danton 2020-07-25 10:38 ` Sebastian Gottschall 2020-07-25 10:38 ` Sebastian Gottschall 2020-07-25 12:25 ` Hillf Danton 2020-07-25 14:08 ` Sebastian Gottschall 2020-07-25 14:08 ` Sebastian Gottschall 2020-07-25 14:57 ` Hillf Danton 2020-07-25 15:41 ` Sebastian Gottschall 2020-07-25 15:41 ` Sebastian Gottschall 2020-07-26 11:16 ` David Laight 2020-07-26 11:16 ` David Laight 2020-07-28 16:59 ` Rakesh Pillai 2020-07-28 16:59 ` Rakesh Pillai 2020-07-29 1:34 ` Hillf Danton 2020-07-25 17:57 ` Felix Fietkau 2020-07-25 17:57 ` Felix Fietkau 2020-07-26 1:22 ` Hillf Danton 2020-07-26 8:10 ` Felix Fietkau 2020-07-26 8:10 ` Felix Fietkau 2020-07-26 8:32 ` Hillf Danton 2020-07-26 8:59 ` Felix Fietkau 2020-07-26 8:59 ` Felix Fietkau 2020-07-22 16:20 ` Jakub Kicinski 2020-07-22 16:20 ` Jakub Kicinski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='003701d7215b$a44ae030$ece0a090$@codeaurora.org' \ --to=pillair@codeaurora.org \ --cc=ath10k@lists.infradead.org \ --cc=briannorris@chromium.org \ --cc=davem@davemloft.net \ --cc=dianders@chromium.org \ --cc=evgreen@chromium.org \ --cc=greearb@candelatech.com \ --cc=johannes@sipsolutions.net \ --cc=kuba@kernel.org \ --cc=kvalo@codeaurora.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=nbd@nbd.name \ --cc=netdev@vger.kernel.org \ --cc=rmanohar@codeaurora.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.