From: Jeff Kirsher > Sent: 06 October 2017 18:57 > From: Jacob Keller <jacob.e.kel...@intel.com> > > Since commit 6a7fded776a7 ("i40e: Fix RS bit update in Tx path and > disable force WB workaround") we've tried to "optimize" setting the > RS bit based around skb->xmit_more. This same logic was refactored > in commit 1dc8b538795f ("i40e: Reorder logic for coalescing RS bits"), > but ultimately was not functionally changed.
I've tried to understand the above, but without definitions of WB and RS and the '4-ness' of something it is quite difficult. I THINK this is all about telling the hardware there is a packet in the ring to transmit? I don't understand the 4-ness. Linux requires that the hardware be notified of a single packet transmit, and that the 'transmit complete' also be notified in 'a timely manner' for a single packet. skb->xmit_more ought to be usable to optimise both of these (assuming it isn't a lie). The driver would need to ensure a ring full of messages isn't generated without either wakeup - but that might be 128 frames. FWIW on the systems I have PCIe writes are relatively cheap (reads are slow). So different counts would be appropriate for delaying doorbell writes and requesting completion interrupts. David