From owner-freebsd-net@FreeBSD.ORG Thu Feb 5 21:48:23 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 28C3571; Thu, 5 Feb 2015 21:48:23 +0000 (UTC) Received: from mail.strugglingcoder.info (strugglingcoder.info [65.19.130.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 092C513A; Thu, 5 Feb 2015 21:48:22 +0000 (UTC) Received: from localhost (unknown [10.1.1.3]) (Authenticated sender: hiren@strugglingcoder.info) by mail.strugglingcoder.info (Postfix) with ESMTPSA id 53182CEB9C; Thu, 5 Feb 2015 13:48:22 -0800 (PST) Date: Thu, 5 Feb 2015 13:48:22 -0800 From: hiren panchasara To: sbruno@freebsd.org Subject: Re: Silly experiments with netisr Message-ID: <20150205214822.GF69733@strugglingcoder.info> References: <54D3BE67.8060502@ignoranthack.me> <54D3C23F.5090501@ignoranthack.me> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="AH+kv8CCoFf6qPuz" Content-Disposition: inline In-Reply-To: <54D3C23F.5090501@ignoranthack.me> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: FreeBSD Net X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2015 21:48:23 -0000 --AH+kv8CCoFf6qPuz Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 02/05/15 at 11:19P, Sean Bruno wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 >=20 > On 02/05/15 11:13, Adrian Chadd wrote: > > On 5 February 2015 at 11:03, Sean Bruno > > wrote: > >>=20 > > Some questions came up around the office and we ended up doing > > some quite silly things with lo0 and netcat. > >=20 > > 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. > >=20 > > E.g. -- listener running "nc -k -l 10000 > /dev/null" - sender > > running in a while loop "nc -N localhost 10000 <=20 > > /var/tmp/testfile" > >=20 > > 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. > >=20 > > Looking at some pmcstat things, shows that the system is busilly=20 > > chugging along in tcp_do_segment(). I wonder if this is meaningful > > in anyway or just "interesting". > >=20 > > PMC: [FR_RETIRED_X86_INSTRUCTIONS] Samples: 267614 (100.0%) , > > 12350 unresolved > >=20 > >> 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.) >=20 > Oh right. Hrm, running this on an AMD system. I should have thought > about that one. >=20 > >=20 > > %SAMP IMAGE FUNCTION CALLERS 5.5 kernel > > in_cksumdata in_cksum_skip > >=20 > >> .. we're checksumming localhost tcp? :) > >=20 >=20 > Yeah, and the ipv6 checksumming cannot be turned off apparently. >=20 > % ifconfig lo0 > lo0: flags=3D8049 metric 0 mtu 1500 > options=3D600000 > inet6 ::1 prefixlen 128 > inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 > inet 127.0.0.1 netmask 0xff000000 > nd6 options=3D21 > groups: lo > % ifconfig lo0 -rxcsum6 > ifconfig: -rxcsum6: Operation not supported https://svnweb.freebsd.org/base?view=3Drevision&revision=3D238871 A workaround, apparently. cheers, Hiren --AH+kv8CCoFf6qPuz Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQF8BAEBCgBmBQJU0+UlXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNEUyMEZBMUQ4Nzg4RjNGMTdFNjZGMDI4 QjkyNTBFMTU2M0VERkU1AAoJEIuSUOFWPt/lEy4H/RvAxYJOjz0XXWoIDBnFb+9/ Tns389eMRtIseu8qZxI6YI6BBHYx37Hu/kk0c+N0tMTqE2eyimIN/yKpRdbEd0/u IMaWRLq/rDG1/vSscTUAA3yN+nYYd3ZJtmZKb0lI6QH5feYIldmDQZwBfgsi49I8 LudUvwX01e921L5EaLgge/nV2yW2j7dsOwKttaHFE080hAZEFDuh8v+L3eQ3XbK2 O+Roqfzw9MRCsd/EPfaJJRqr907dyfTLizVZoJwlgJn6OYxwqeFFaZ+fTWC1QSd4 +qJZz+dpFrLpG2w6s4aiASiyWXZaYx8l26elvtrt5PrQ96zdOPUQsYx7dq797hM= =JsL9 -----END PGP SIGNATURE----- --AH+kv8CCoFf6qPuz--