How can we reduce system context switch times? (Linux)
===

We run a program witch capture 10GBit line rate NIC,

the capture thread use block mode and the consumer thread will usleep(10) 
when there are no packets.

dstat found that:

    ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
    usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
     80   2  16   0   0   3|   0     0 | 881M 5476k|   0     0 | 272k  150k
     80   2  15   0   0   2|   0     0 | 896M 9884k|   0     0 | 266k  149k
     82   3  13   0   0   3|   0     0 | 457M   19M|   0     0 | 270k  141k



the interrupt times and context switch(csw) times are huge.
we can't avoid the interrupt because we must capture.

so, my question:

How can we reduce the context switch?

Thanks