Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx> writes: > On 3/18/2024 11:39 PM, Kalle Valo wrote: > >> Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx> writes: >> >>> On 3/11/2024 6:35 PM, Kalle Valo wrote: >>>> 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. >>> I don't have numbers. Like you said, Its just a wishful think. >> So do you still want us to take this? >> >> In the future please do provide numbers to show that the optimisation >> really helps as intended. Otherwise we might even go backwards. > > This is a simple UDP UL throughput test case results on x86+NUC device > with QCN9274 card > > Before: > Average: CPU %usr %nice %sys %iowait %irq %soft > %steal %guest %gnice %idle > Average: all 0.24 0.00 12.54 0.08 0.00 23.33 > 0.00 0.00 0.00 63.81 > > After: > Average: CPU %usr %nice %sys %iowait %irq %soft > %steal %guest %gnice %idle > Average: all 0.34 0.00 4.60 0.00 0.00 19.59 > 0.00 0.00 0.00 75.47 > > is it fine to capture in the commit log ? Thanks, exactly something like that helps to show that the optimisation is helping. Please also include your analysis of the results in the commit message. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches