network performance, a low-level measurement
Robert Watson
rwatson at FreeBSD.org
Mon Jan 31 03:34:44 PST 2005
On Mon, 31 Jan 2005, Poul-Henning Kamp wrote:
> In case anybody can use this for anything:
Looks useful to me :-).
> Setup:
> o Soekris NET4501 (133Mhz AMD Elan CPU)
> o -Current
> o stripped down kernel.
> o no SMP, no WITNESS, no DIAGNOSTIC
What about INVARIANTS? That causes an extra mutex grab and release on
each allocation and free, so INVARIANTS should be disabled in any
performance-sensitive or timing-sensitive measurements.
> o unshared interrupt line
> o if_sis driver modified to FAST intr which just schedules
> the existing sis_intr on taskqueue_fast
> o single-user mode
> o A back-to-back cable to another machine.
> o A single default sized ping packet
>
>
> Time [uSec] Where
> -----------------------------------------------------------------------
> 000.000 HW-intr start
> 011.600 HW-intr stop
So this is the time window from the edge of the interrupt being raised, to
it being lowered as a result of ACK'ing the hardware, or what exactly? Do
you have any timing related to when the low level interrupt code enters,
the fast handler starts running, when it stops running, and when the low
level code returns (followed shortly by preemption)?
> 067.200 Enter sis_intr_task()
> 074.000 Enter sis_rxeof()
> 134.800 Enter ifp->if_input()
> 552.800 Enter sis_startl()
Is net.isr.enable=1 or net.isr.enable=0? Why are we entering sis_start()
here if net.isr.enable=0 and the system is otherwise idle?
> 595.600 Exit sis_startl()
> 753.200 Return from ifp->if_input()
> 758.000 Exit sis_rxeof()
> 761.200 Enter sis_txeof()
> 796.400 Exit sis_txeof()
> 800.200 Exit sis_intr_task()
> -----------------------------------------------------------------------
>
>
> Driver Other
> [uSec] [uSec]
> -------------------------------------------------------
> HW-intr duration: 11.600
> Taskqueue_fast Latency: 55.600
> sis_rxeof() duration: 65.500
> ifp->if_input() duration: 575.700
> sis_startl() duration: 42.800
> sis_txeof() duration: 35.200
> sis_intr_task duration: 13.800
> -------------------------------------------------------
> Total 168.900 631.300
> =======================================================
>
> Summary: 21% of the time spent in the driver.
>
> --
> Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
> phk at FreeBSD.ORG | TCP/IP since RFC 956
> FreeBSD committer | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>
More information about the freebsd-current
mailing list