Silly experiments with netisr

hiren panchasara hiren at strugglingcoder.info
Thu Feb 5 21:48:23 UTC 2015


On 02/05/15 at 11:19P, Sean Bruno wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> On 02/05/15 11:13, Adrian Chadd wrote:
> > On 5 February 2015 at 11:03, Sean Bruno <sbruno at ignoranthack.me>
> > wrote:
> >> 
> > Some questions came up around the office and we ended up doing
> > some quite silly things with lo0 and netcat.
> > 
> > If one runs a continuous netcat on localhost to another netcat
> > listener on localhost that writes the output to /dev/null, netisr
> > gets super busy doing stuff/things.
> > 
> > E.g. -- listener running "nc -k -l 10000 > /dev/null" -  sender
> > running in a while loop "nc -N localhost 10000 < 
> > /var/tmp/testfile"
> > 
> > Interesting things start happening on the machine.  top -SH shows
> > netisr eating up about 1/2 of a cpu core.  If you drop the MTU on
> > lo0 to 1500 (so that it looks like something in the real world),
> > netisr will peg out a cpu core.  This seems logical, in that
> > smaller MTU means busier netisr.  Its interesting though.
> > 
> > Looking at some pmcstat things, shows that the system is busilly 
> > chugging along in tcp_do_segment().  I wonder if this is meaningful
> > in anyway or just "interesting".
> > 
> > PMC: [FR_RETIRED_X86_INSTRUCTIONS] Samples: 267614 (100.0%) ,
> > 12350 unresolved
> > 
> >> UHm, on a recent intel, use CPU_CLK_UNHALTED instead, so you get
> >> an idea of which instructions are spending the most time doing
> >> "stuff". Some instructions are costlier than others (eg things
> >> that cause memory bus stalls.)
> 
> Oh right.  Hrm, running this on an AMD system.  I should have thought
> about that one.
> 
> > 
> > %SAMP IMAGE      FUNCTION             CALLERS 5.5 kernel
> > in_cksumdata         in_cksum_skip
> > 
> >> .. we're checksumming localhost tcp? :)
> > 
> 
> Yeah, and the ipv6 checksumming cannot be turned off apparently.
> 
> % ifconfig lo0
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 1500
> 	options=600000<RXCSUM_IPV6,TXCSUM_IPV6>
> 	inet6 ::1 prefixlen 128
> 	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
> 	inet 127.0.0.1 netmask 0xff000000
> 	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
> 	groups: lo
> % ifconfig lo0 -rxcsum6
> ifconfig: -rxcsum6: Operation not supported

https://svnweb.freebsd.org/base?view=revision&revision=238871

A workaround, apparently.

cheers,
Hiren
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 618 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20150205/1bf22cd8/attachment.sig>


More information about the freebsd-net mailing list