Search Linux Wireless

Re: [PATCH 1/3] ath11k: Enable threaded NAPI on WCN6750

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 2, 2022 at 3:18 PM Manikanta Pubbisetty
<quic_mpubbise@xxxxxxxxxxx> wrote:
>
> On 9/2/2022 6:18 PM, Kalle Valo wrote:
> > Manikanta Pubbisetty <quic_mpubbise@xxxxxxxxxxx> writes:
> >
> >> Enable threaded NAPI on WCN6750. Unlike traditional NAPI poll which
> >> runs in softirq context and on the core which scheduled the NAPI,
> >> threaded NAPI makes use of kernel threads which are under direct
> >> control of the scheduler and helps in balancing the NAPI processing
> >> load across multiple CPUs thereby improving throughput.
> >>
> >> In the case of WCN6750, enabling threaded NAPI has improved
> >> 160 MHz RX throughput by nearly 400 Mbps. This should give similar
> >> gains for other ath11k devices as well, therefore enable threaded
> >> NAPI on all other devices.
> >>
> >> Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
> >>
> >> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@xxxxxxxxxxx>
> >> ---
> >>   drivers/net/wireless/ath/ath11k/ahb.c  | 1 +
> >>   drivers/net/wireless/ath/ath11k/pcic.c | 1 +
> >>   2 files changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
> >> index d7d33d5cdfc5..e44e2f29a88f 100644
> >> --- a/drivers/net/wireless/ath/ath11k/ahb.c
> >> +++ b/drivers/net/wireless/ath/ath11k/ahb.c
> >> @@ -314,6 +314,7 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab)
> >>              struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
> >>
> >>              if (!irq_grp->napi_enabled) {
> >> +                    dev_set_threaded(&irq_grp->napi_ndev, true);
> >>                      napi_enable(&irq_grp->napi);
> >>                      irq_grp->napi_enabled = true;
> >>              }
> >> diff --git a/drivers/net/wireless/ath/ath11k/pcic.c b/drivers/net/wireless/ath/ath11k/pcic.c
> >> index cf12b98c480d..c703db19de51 100644
> >> --- a/drivers/net/wireless/ath/ath11k/pcic.c
> >> +++ b/drivers/net/wireless/ath/ath11k/pcic.c
> >> @@ -440,6 +440,7 @@ void ath11k_pcic_ext_irq_enable(struct ath11k_base *ab)
> >>              struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
> >>
> >>              if (!irq_grp->napi_enabled) {
> >> +                    dev_set_threaded(&irq_grp->napi_ndev, true);
> >>                      napi_enable(&irq_grp->napi);
> >>                      irq_grp->napi_enabled = true;
> >>              }
> >
> > The commit log claims that this enabled _only_ on WCN6750 but aren't we
> > enabling it on all ath11k hardware, or am I missing something? I admit I
> > didn't check this very carefully.
> >
> > (reads the commit log one more time)
> >
> > Ah, in the last sentence you mention that it's enabled on all hardware.
> > That's quite easy to miss and the commit log is quite misleading, please
> > emphasise already in the title and the first sentence that this is for
> > all hardware.
>
> My Bad, yes you right. The patch was made initially only for WCN6750 and
> was enabled later for all devices.
>
> >
> > Also more testing would be nice. Enabling something like this with
> > testing only on one hardware family (WCN7850) can be risky. I always get
> > warm fuzzy feelings if a patch is tested with all three hardware
> > families we currently support:
> >
> > * IPQ8074 etc
> > * QCA6390 etc
> > * WCN7850
> >
>
> WCN7850 should be an ath12k device If I'm correct.
>
> Regardless of the chip family, even I feel that the tput changes like
> these should be tested on all the chipsets. Availability of the hardware
> and time are something which are stopping me in testing the changes on
> all supported targets.
>
> As I said, I had made the changes only to WCN6750 initially (using a
> hw_param). Can we take that approach for now and enable this for other
> targets only if required & upon thorough testing?

I can tell you that on IPQ8074 threaded NAPI really improves perfromance.

Regards,
Robert
>
> Thanks,
> Manikanta
>
> --
> ath11k mailing list
> ath11k@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/ath11k



-- 
Robert Marko
Staff Embedded Linux Engineer
Sartura Ltd.
Lendavska ulica 16a
10000 Zagreb, Croatia
Email: robert.marko@xxxxxxxxxx
Web: www.sartura.hr



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux