• Abhishek Kumar's avatar
    wifi: ath10k: snoc: enable threaded napi on WCN3990 · 8c68fe00
    Abhishek Kumar authored
    NAPI poll can be done in threaded context along with soft irq
    context. Threaded context can be scheduled efficiently, thus
    creating less of bottleneck during Rx processing. This patch is
    to enable threaded NAPI on ath10k driver.
    
    Based on testing, it was observed that on WCN3990, the CPU0 reaches
    100% utilization when napi runs in softirq context. At the same
    time the other CPUs are at low consumption percentage. This
    does not allow device to reach its maximum throughput potential.
    After enabling threaded napi, CPU load is balanced across all CPUs
    and following improvments were observed:
    - UDP_RX increase by ~22-25%
    - TCP_RX increase by ~15%
    
    Here are some of the additional raw data with and without threaded napi:
    ==================================================
    udp_rx(Without threaded NAPI)
    435.98+-5.16 : Channel 44
    439.06+-0.66 : Channel 157
    
    udp_rx(With threaded NAPI)
    509.73+-41.03 : Channel 44
    549.97+-7.62 : Channel 157
    ===================================================
    udp_tx(Without threaded NAPI)
    461.31+-0.69  : Channel 44
    461.46+-0.78 : Channel 157
    
    udp_tx(With threaded NAPI)
    459.20+-0.77 : Channel 44
    459.78+-1.08 : Channel 157
    ===================================================
    tcp_rx(Without threaded NAPI)
    472.63+-2.35 : Channel 44
    469.29+-6.31 : Channel 157
    
    tcp_rx(With threaded NAPI)
    498.49+-2.44 : Channel 44
    541.14+-40.65 : Channel 157
    ===================================================
    tcp_tx(Without threaded NAPI)
    317.34+-2.37 : Channel 44
    317.01+-2.56 : Channel 157
    
    tcp_tx(With threaded NAPI)
    371.34+-2.36 : Channel 44
    376.95+-9.40 : Channel 157
    ===================================================
    
    Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2-00696-QCAHLSWMTPL-1
    Signed-off-by: default avatarAbhishek Kumar <kuabhs@chromium.org>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230203000116.v2.1.I5bb9c164a2d2025655dee810b983e01ecd81c14e@changeid
    8c68fe00
snoc.c 45 KB