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 <sbr...@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
pgpTQHilGc0Eo.pgp
Description: PGP signature