device polling and weird timer interrupt count from vmstat

Artem Kuchin matrix at itlegion.ru
Sat Sep 22 10:35:04 PDT 2007


I enabled device polling in the kernel, in nics and
set HZ=1000.

How, when i do

omni2# vmstat -i

i see

interrupt                          total       rate
irq14: ata0                           47          0
irq15: ata1                           41          0
irq28: em0                          2268          4
irq72: twe0                        58380        120
cpu0: timer                       965994       1995
cpu3: timer                            1          0
cpu1: timer                            1          0
cpu2: timer                       965857       1995
Total                            1992589       4116


(it is dual xeon with HT, HT disabled, that why cpu3 and cpu1 are zero).

What i don't understand is why timer rate on each cpu is 1995? I have set it
to 1000, not 1995 or 2000. I have seen it showing 2000 on another box.
So
1) why not 1000? 
2) if it is supposed to be doubled (why?) when why not 2000?
3) Is timer int really generated on each cpu? Am i really wasting cpu time on
~4000 ints per second?
4) does twe driver use polling? whay about twa? how to check it in the sources?



--
Regards,
Artem


More information about the freebsd-stable mailing list