Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx> writes: > When a packet arrives in Rx rings, the RX descriptor moves from the used > list to the free list. Then, the rxdma ring gets replenished, where the Rx > descriptor again moves from the free list to the used list. At the end, the > descriptor came to the used list with unnecessary list movement. The > descriptor used list is maintained in the Rxdma ring structure, which > creates lock contention for the list operations (add, delete) in the Rx > data path. Optimize the Rx data path by removing the used list from the > common Rxdma ring and maintain as a local variable in the Rx ring handler > itself, which avoid lock contention. Now, to find the used list descriptor > during descriptor cleanup, we need to check the in_use flag for each Rx > descriptor. > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 > > Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx> Before looking at this in detail: When optimising something it would be good to have before and after numbers showing the improvement. Otherwise it's just wishful thinking. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches