On Wednesday 22 March 2006 15:29, Luigi Rizzo wrote: > Paolo Pisati (SoC work on in-kernel natd) has done some > work on measuring where time is spent in servicing network > interrupts, and what's the difference between 4.x and 7.x, > and probably has some interesting result. > > He ran the experiments on his laptop (1.6-1.7GHz with APIC > and bfe card), recording timestamps with the TSC in various > places of the code path. > What he saw is that the basic operation of the interruopt > service routine, bfe_intr() is approx the same on 4.x and 7.x, > taking between 7-10k TSC ticks on a lightly loaded system. > On 7.x, however, there is an extra 9-10k TSC ticks (which may > well be hidden in the assembly code on 4.x, but not sure about > that) which apparently are spent half in this line in > sys/i386/i386/intr_machdep.c > > if (thread) > isrc->is_pic->pic_disable_source(isrc, PIC_EOI); This is going out to the I/O APIC and writing a bit to mask the interrupt until the handler has run. Is he using a kernel that has SMP enabled? If so, turning SMP off might make things slightly better. Note that 4.x does do the same writes to the I/O APIC, but in assembly. -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.orgReceived on Wed Mar 22 2006 - 19:44:22 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:53 UTC