• Sriram R's avatar
    ath11k: Add dynamic tcl ring selection logic with retry mechanism · d687275b
    Sriram R authored
    IPQ8074 HW supports three TCL rings for tx. Currently these rings
    are mapped based on the Access categories, viz. VO, VI, BE, BK.
    In case, one of the traffic type dominates, then it could stress
    the same tcl rings. Rather, it would be optimal to make use of all
    the rings in a round robin fashion irrespective of the traffic type
    so that the load could be evenly distributed among all the rings.
    Also, in case the selected ring is busy or full, a retry mechanism
    is used to ensure other available ring is selected without dropping
    the packet.
    
    In SMP systems, this change avoids a single CPU from getting hogged
    when heavy traffic of same category is transmitted.
    The tx completion interrupts corresponding to the used tcl ring
    would be more which causes the assigned CPU to get hogged.
    Distribution of tx packets to different tcl rings helps balance
    this load.
    Signed-off-by: default avatarSriram R <srirrama@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1586782622-22570-1-git-send-email-srirrama@codeaurora.org
    d687275b
core.h 19.7 KB