Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Oct 2012 14:31:26 -0700
From:      Garrett Cooper <yanegomi@gmail.com>
To:        Ian Lepore <freebsd@damnhippie.dyndns.org>
Cc:        svn-src-head@freebsd.org, Maxim Sobolev <sobomax@freebsd.org>, svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek <pjd@freebsd.org>
Subject:   Re: svn commit: r241576 - in head/usr.sbin/cron: cron crontab lib
Message-ID:  <CAGH67wSV0F4qsvFeURd01cRrsc8WVQ1=HPyiq8yL0hUAo2zwGQ@mail.gmail.com>
In-Reply-To: <1350335891.1123.160.camel@revolution.hippie.lan>
References:  <201210150821.q9F8Lobc047576@svn.freebsd.org> <20121015202615.GJ1383@garage.freebsd.pl> <1350333885.1123.153.camel@revolution.hippie.lan> <CAGH67wSATkcsMMFcd3=rkM%2BDZ=g-ke67zeuXd9RZ-=UY_9sdLg@mail.gmail.com> <1350335891.1123.160.camel@revolution.hippie.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 15, 2012 at 2:18 PM, Ian Lepore
<freebsd@damnhippie.dyndns.org> wrote:
> On Mon, 2012-10-15 at 13:52 -0700, Garrett Cooper wrote:
>> On Mon, Oct 15, 2012 at 1:44 PM, Ian Lepore
>> <freebsd@damnhippie.dyndns.org> wrote:
>> > On Mon, 2012-10-15 at 22:26 +0200, Pawel Jakub Dawidek wrote:
>> >> On Mon, Oct 15, 2012 at 08:21:50AM +0000, Maxim Sobolev wrote:
>> >> > Author: sobomax
>> >> > Date: Mon Oct 15 08:21:49 2012
>> >> > New Revision: 241576
>> >> > URL: http://svn.freebsd.org/changeset/base/241576
>> >> >
>> >> > Log:
>> >> >   Add per-second scheduling into the cron(8). Right now it's
>> >> >   only available via the new @every_second shortcut. ENOTIME to
>> >> >   implement crontab(5) format extensions to allow more flexible
>> >> >   scheduling.
>> >> >
>> >> >   In order to address some concerns expressed by Terry Lambert
>> >> >   while discussing the topic few years ago, about per-second cron
>> >> >   possibly causing some bad effects on /etc/crontab by stat()ing
>> >> >   it every second instead of every minute now (i.e. atime update),
>> >> >   only check that database needs to be reloaded on every 60-th
>> >> >   loop run. This should be close enough to the current behaviour.
>> >> >
>> >> >   Add "@every_minute" shortcut while I am here.
>> >>
>> >> Do I read the code correctly and the cron deamon will wake up every
>> >> second now even if @every_second is not used at all?
>> >
>> > It appears to, which I don't think is a bad thing at all.  But the way
>> > it waits is to wake up, do some work, and go back to sleep for an
>> > integer 1 second.  That will occasionally lead to a second in which no
>> > wakeup happens, as the "do some work" part always takes some fraction of
>> > a second.
>>
>>     This is silly. It should be waking up at the lowest common
>> denominator of time quanta, not every second; this could be determined
>> via the crontab its managing.
>
> In 1987 I would have been outraged at waking up at 1hz needlessly.
> Sitting here typing on a machine that's doing 12,000 interrupts/sec just
> to maintain clocks, and top shows interrupts using 0.0% cpu, it's hard
> to get too upset about a 1hz loop anymore.
>
> On the other hand, if people are going to rely on this new feature of
> being able to execute something every second, then the integer sleep
> needs to be changed to a nanosleep() calculated to truly wake up at a
> 1hz rate without eliding seconds now and then.

    This is also assuming that there's only one copy of cron running
for the entire system and per-user. On a more heavily loaded system
this isn't necessarily the case.
Thanks,
-Garrett



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