On Fri, 2010-04-16 at 22:10 +0800, Changli Gao wrote: > On Fri, Apr 16, 2010 at 9:49 PM, jamal wrote: > > my observation is: > > s->total is the sum of all packets received by cpu (some directly from > > ethernet) > > It is meaningless currently. If rps is enabled, it may be twice of the > number of the packets received, because one packet may be count twice: > one in enqueue_to_backlog(), and the other in __netif_receive_skb(). You are probably right - you made me look at my collected data ;-> i will look closely later, but it seems they are accounting for different cpus, no? Example, attached are some of the stats i captured when i was running the tests redirecting from CPU0 to CPU1 1M packets at about 20Kpps (just cut to the first and last two columns): cpu Total |rps_recv |rps_ipi -----+----------+---------+--------- cpu0 | 002dc7f1 |00000000 |000f4246 cpu1 | 002dc804 |000f4240 |00000000 ------------------------------------- So: cpu0 receive 0x2dc7f1 pkts accummulative over time and redirected to cpu1 (mostly, the extra 5 maybe to leftover since i clear the data) and for the test 0xf4246 times it generated an IPI. It can be seen that total running for CPU1 is 0x2dc804 but in this one run it received 1M packets (0xf4240). i.e i dont see the double accounting.. cheers, jamal