From owner-freebsd-net@freebsd.org Sat Nov 7 06:19:42 2015 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B21FA28363 for ; Sat, 7 Nov 2015 06:19:42 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 525631E39 for ; Sat, 7 Nov 2015 06:19:41 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id EA9CF1045F37; Sat, 7 Nov 2015 17:19:29 +1100 (AEDT) Date: Sat, 7 Nov 2015 17:19:29 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Rasool Al-Saadi cc: Hans Petter Selasky , Luigi Rizzo , "freebsd-net@freebsd.org" Subject: RE: Timing issue with Dummynet on high kernel timer interrupt In-Reply-To: <6545444AE21C2749939E637E56594CEA3C0E1B79@gsp-ex02.ds.swin.edu.au> Message-ID: <20151107162915.A893@besplex.bde.org> References: <6545444AE21C2749939E637E56594CEA3C0DCCC4@gsp-ex02.ds.swin.edu.au> <5638B7B5.3030802@selasky.org> <6545444AE21C2749939E637E56594CEA3C0DE7FF@gsp-ex02.ds.swin.edu.au> <563B2703.5080402@selasky.org> <6545444AE21C2749939E637E56594CEA3C0E0BD9@gsp-ex02.ds.swin.edu.au> <563C6864.2090907@selasky.org> <563C786C.1050305@selasky.org> <563CC186.9000807@selasky.org> <6545444AE21C2749939E637E56594CEA3C0E1B79@gsp-ex02.ds.swin.edu.au> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R6/+YolX c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=JzwRw_2MAAAA:8 a=kj9zAlcOel0A:10 a=IpulGqAEFL8BaEeDC60A:9 a=CjuIK1q_8ugA:10 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Nov 2015 06:19:42 -0000 On Sat, 7 Nov 2015, Rasool Al-Saadi wrote: > On Saturday, 7 November 2015 2:05 AM, Hans Petter Selasky wrote: >> ... >> It might be worth trying to set: >> >> kern.eventtimer.periodic=1 >> >> In /boot/loader.conf . Can you test that too? >> >> You need to reboot before the setting takes into effect. You don't need to reboot for the setting to take effect if you make the setting in the correct way. kern.eventtimer.periodic is a bogus as a tunable since it is not needed for booting. If it were needed for booting, then it would be documented in some man page related to booting, but it is only documented in its log message and in eventtimer(4). Similarly for other eventtimer tunables. FreeBSD has too man of these knobs which no one knows about. You can't run sysctl -da | grep foo at the loader prompt to search for interesting ones, or kenv | grep foo later to find all the possibilities. kern.eventtimer.timer is an example of a non-bogus tunable. It might be needed for booting if there are too many choices and the default choice doesn't work. But this is unusable for booting in practice since it is not documented in any man page related to booting. Also, its implementation is messier than the other eventtimer tunables. It is still a TUNABLE_INT() and a SYSCTL_PROC(), while the others were converted to SYSCTL_[U]INT() with CTLFLAG_RWTUN. It needs the SYSCTL_PROC() to work without rebooting. kern.eventtimer.timer is also changeable after booting using a SYSCTL_PROC() and has the messy implementation from not using CTLFLAG_RWTUN. I don't know if CTLFLAG_RWTUN with SYSCTL_PROC() actually works for all types, but it is used with CTLFLAG_STRING for kern.corefile. This is another bogus undocumented tunable. It is better documented as a sysctl than most since it is old so it is documented in sysctl(8). It is not documented as a tunable there of course. It is also not documented as a tunable in core(5). Also, the idletick boolean variable unsigned and its SYSCTL_UINT() matches it. This bug is missing for the periodic boolean variable. Bruce