Date: Tue, 17 Jan 2017 12:46:29 -0700 From: Ian Lepore <ian@freebsd.org> To: John Baldwin <jhb@freebsd.org>, Hans Petter Selasky <hps@selasky.org> Cc: FreeBSD Current <freebsd-current@freebsd.org>, Konstantin Belousov <kib@freebsd.org> Subject: Re: Strange issue after early AP startup Message-ID: <1484682389.86335.166.camel@freebsd.org> In-Reply-To: <4212167.Wq8tLU1ohU@ralph.baldwin.cx> References: <b9c53237-4b1a-a140-f692-bf5837060b18@selasky.org> <2215603.KuBd8pM5Pm@ralph.baldwin.cx> <3cbe6454-82cc-0592-4ee6-3c1552b19f9a@selasky.org> <4212167.Wq8tLU1ohU@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2017-01-17 at 11:00 -0800, John Baldwin wrote: > > > You could > > > do that by setting it to 'cc_firstevent' of the associated CPU, but in > > > practice 'state->nextcall' should already be set to that (it is > > initalized > > > to SBT_MAX in cpu_initclocks_bsp() and is then only set to other > > values due > > > to cpu_new_callout()). Keep in mind that configtimer() is not just > > called > > > from boot, but is also invoked when starting/stopping the profiling > > timer. > > > > > > > > However, when setting 'nextevent' (which is used to schedule the next > > timer > > > interrupt), we should be honoring the existing 'nextcall' if it is sooner > > > than the next hardclock. > > > > Does this matter for the first tick? How often is configtimer() called? > > As I said, it is called at runtime when profclock is started / stopped, not > just at boot. Those changes at runtime probably have existing callouts > active and your change will not process any callouts until the next hardclock > tick fires (but only because you are setting nextcallopt to the bogus > 'next' value). On some platforms, configtimer() can be called quite often. Power saving modes can change the frequency of the timer, and systems that suppport such dynamic frequency scaling call configtimer() (via cpu_et_frequency()) to handle the changes. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1484682389.86335.166.camel>