• Toke Høiland-Jørgensen's avatar
    ath9k: Switch to using mac80211 intermediate software queues. · 50f08edf
    Toke Høiland-Jørgensen authored
    This switches ath9k over to using the mac80211 intermediate software
    queueing mechanism for data packets. It removes the queueing inside the
    driver, except for the retry queue, and instead pulls from mac80211 when
    a packet is needed. The retry queue is used to store a packet that was
    pulled but can't be sent immediately.
    
    The old code path in ath_tx_start that would queue packets has been
    removed completely, as has the qlen limit tunables (since there's no
    longer a queue in the driver to limit).
    
    The mac80211 intermediate software queues offer significant latency
    reductions, and this patch allows ath9k to realise them. The exact gains
    from this varies with the test scenario, but in an access point scenario
    we have seen latency reductions ranging from 1/3 to as much as an order
    of magnitude. We also achieve slightly better aggregation.
    
    Median latency (ping) figures with this patch applied at the access point,
    with two high-rate stations and one low-rate station (HT20 5Ghz), running
    a Flent rtt_fair_var_up test with one TCP flow and one ping flow going to
    each station:
    
                                     Fast station        Slow station
    Default pfifo_fast qdisc:            430.4 ms            638.7 ms
    fq_codel qdisc on iface:              35.5 ms            211.8 ms
    This patch set:                       22.4 ms             38.2 ms
    
    Median aggregation sizes over the same test:
    
    Default pfifo_fast qdisc:            9.5 pkts            1.9 pkts
    fq_codel qdisc on iface:            11.2 pkts            1.9 pkts
    This patch set:                     13.9 pkts            1.9 pkts
    
    This patch is based on Tim's original patch set, but reworked quite
    thoroughly.
    
    Cc: Tim Shepard <shep@alum.mit.edu>
    Cc: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: default avatarToke Høiland-Jørgensen <toke@toke.dk>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    50f08edf
init.c 29 KB