Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Nov 2015 17:19:29 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Rasool Al-Saadi <ralsaadi@swin.edu.au>
Cc:        Hans Petter Selasky <hps@selasky.org>, Luigi Rizzo <rizzo@iet.unipi.it>,  "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   RE: Timing issue with Dummynet on high kernel timer interrupt
Message-ID:  <20151107162915.A893@besplex.bde.org>
In-Reply-To: <6545444AE21C2749939E637E56594CEA3C0E1B79@gsp-ex02.ds.swin.edu.au>
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> <CA%2BhQ2%2Bhm2z0MkB-8w5xJM7%2Biz13r_ZjwmpZBnb30_D_48gaf-w@mail.gmail.com> <563C786C.1050305@selasky.org> <CA%2BhQ2%2Bj0WiGgzV119M1ZQiXP5Z7fq7deVxDPkOhvTc7hpTETKw@mail.gmail.com> <563CC186.9000807@selasky.org> <6545444AE21C2749939E637E56594CEA3C0E1B79@gsp-ex02.ds.swin.edu.au>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151107162915.A893>