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