Date: Sun, 6 Sep 1998 14:22:28 +0200 (MET DST) From: Luigi Rizzo <luigi@labinfo.iet.unipi.it> To: dag-erli@ifi.uio.no (Dag-Erling Coidan =?iso-8859-1?Q?Sm=F8rgrav?=) Cc: net@FreeBSD.ORG Subject: Re: FreeBSD router performance Message-ID: <199809061222.OAA15280@labinfo.iet.unipi.it> In-Reply-To: <xzpvhn11klk.fsf@bilskirnir.ifi.uio.no> from "Dag-Erling Coidan =?iso-8859-1?Q?Sm=F8rgrav?=" at Sep 6, 98 02:39:00 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> Luigi Rizzo <luigi@labinfo.iet.unipi.it> writes: > > This said, in the last days i have instrumented the networking code > > to see how long it takes to output a packet (roughtly the last part > > of ether_output() with the call to if_start, which is what you > > generally get). > > Mind sharing the code with us? :) sure, it is a gross hack. I have a couple of sysctl vars that count the number of events and the number of ticks, respectively. Then around the interesting section of code i put calls to rdtsc(), as follows: int my_events, my_ticks; SYSCTL_INT(_net_link_ether, OID_AUTO, events, CTLFLAG_RW, &my_events,0,""); SYSCTL_INT(_net_link_ether, OID_AUTO, ticks, CTLFLAG_RW, &my_ticks,0,""); { static quad_t ticks ; ... ticks = rdtsc() ; <interesting events> my_ticks += (unsigned long)(rdtsc() - ticks) ; my_events++ ... } you can read and reset the vars with sysctl. cheers luigi -----------------------------+-------------------------------------- Luigi Rizzo | Dip. di Ingegneria dell'Informazione email: luigi@iet.unipi.it | Universita' di Pisa tel: +39-50-568533 | via Diotisalvi 2, 56126 PISA (Italy) fax: +39-50-568522 | http://www.iet.unipi.it/~luigi/ _____________________________|______________________________________ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809061222.OAA15280>