From owner-freebsd-net@FreeBSD.ORG Thu Feb 5 19:03:06 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9E92B2AD for ; Thu, 5 Feb 2015 19:03:06 +0000 (UTC) Received: from mail.ignoranthack.me (ignoranthack.me [199.102.79.106]) (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 80994A7D for ; Thu, 5 Feb 2015 19:03:06 +0000 (UTC) Received: from [192.168.200.212] (unknown [50.136.155.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sbruno@ignoranthack.me) by mail.ignoranthack.me (Postfix) with ESMTPSA id 748511941DD for ; Thu, 5 Feb 2015 19:03:04 +0000 (UTC) Message-ID: <54D3BE67.8060502@ignoranthack.me> Date: Thu, 05 Feb 2015 11:03:03 -0800 From: Sean Bruno Reply-To: sbruno@freebsd.org User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: FreeBSD Net Subject: Silly experiments with netisr Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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 19:03:06 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 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 %SAMP IMAGE FUNCTION CALLERS 5.5 kernel in_cksumdata in_cksum_skip 5.0 kernel tcp_output tcp_do_segment:4.2 tcp_usr_rcvd:0.5= 4.6 kernel __rw_wlock_hard tcp_usr_send:3.7 tcp_usr_rcvd:0.8 3.8 pf.ko pf_test pf_check_in:2.0 pf_check_out:1.8 3.6 kernel sched_idletd fork_exit 3.2 pf.ko pf_test_state_tcp pf_test 3.1 kernel bzero pf_test:0.8 pf_test_state_tcp:0.7 3.1 kernel bcopy m_copydata:1.3 tcp_addoptions:0.7 tcp_dooptions:0.5 2.7 kernel tcp_do_segment tcp_input sean -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJU075kXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCQUFENDYzMkU3MTIxREU4RDIwOTk3REQx MjAxRUZDQTFFNzI3RTY0AAoJEBIB78oecn5kc4kH/02ttXzvapAG2PSML9Ml0Kwf XblpOHnrhUU8jsTauGhh8q4C94rb9hFDCzL4cEAI87QMXoBQHi9CWE0v/XdeR+8M ajpHlNyd78XbmIKOVksesYWzLbVFjC0A3emnkH4dUX1XD6tJoihVaUQVcrAbNm+I p6Z4yXrOXUP9UxBgkCSe5m3Y/K3vcmIPvFSnO/nN/2tckEh6+uuj1n3QyFXkUJJg 9erFanvDXr3nOyR6IWXIKxuy1yta32SpOPxywIl81qSBh1n/IOor41WqpzOnlNdM d0np+ZD/d+Z9OQJZnuJunCrV6Cv2EFKJe5qBzCdOjLj0KvpNDnFXyndWpeXyvgI=3D =3D+FSJ -----END PGP SIGNATURE-----