Re: [PATCH] geneve: Use GRO cells infrastructure.
From: Eric Dumazet <hidden>
Date: 2015-08-30 15:55:58
On Sat, 2015-08-29 at 13:45 -0700, David Miller wrote:
While reviewing this I noticed that the gro cells code goes through all of the trouble of allocating full per-cpu objects to manage the packet queuing and processing, but then it uses a full spinlock for protection. It ought to be sufficient to just block out BH processing or, at worst, local cpu interrupts, to protect the individual per-cpu cells.
Original commit envisioned a possible improvement of gro_cells in case a NIC receives all GRE traffic on a single RX queue. (If for example Toeplitz hash RSS looks at outer IP header, and all traffic is encapsulated with a constant tuple) Idea was to add a mode where we could select a gro cell not based on current cpu number but a hash based on flow software flow dissection. If we do not plan to add this feature, we certainly can remove the spinlocks now we have per cpu cells.