On Thu, 2016-11-03 at 21:39 +0800, Gao Feng wrote: > Hi Eric, > > On Thu, Nov 3, 2016 at 9:30 PM, Eric Dumazet <eric.duma...@gmail.com> wrote: > > On Thu, 2016-11-03 at 21:03 +0800, f...@ikuai8.com wrote: > >> From: Gao Feng <f...@ikuai8.com> > >> > >> The dropped count of veth is located in struct veth_priv, but other > >> statistics like packets and bytes are in another struct pcpu_vstats. > >> Now keep these three counters in the same struct. > >> > >> Signed-off-by: Gao Feng <f...@ikuai8.com> > >> --- > >> v2: Use right "peer" instead of "dev"; > >> v1: Initial version > > > > May I ask : Why ? > > Just because I think statistics should be in the same struct.
That is not a good reason then. > > > > > We did that because there was no point making per-cpu requirements > > bigger, for a counter that is hardly ever updated. > > > > Do you have a real case where performance dropping packets in a driver > > is needed ? > > No, I haven't met the performance issue now. OK then kill this patch. > > > > > At some point we will have to stop dumb percpu explosion, when we have > > 128+ cores per host. Folding all these percpu counters is taking a lot > > of time too. > > > > > > > Ok, I get it. It is designed specially to put the dropped counter as > atomic counter, not percpu. > But I have one question that when put the counters as percpu, and when not? Because the regular fast path needs to be fast ? Try to _use_ veth without these percpu stats and be prepared to be shocked.