From owner-svn-src-head@FreeBSD.ORG Mon Oct 15 21:31:27 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 64491C14; Mon, 15 Oct 2012 21:31:27 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-oa0-f54.google.com (mail-oa0-f54.google.com [209.85.219.54]) by mx1.freebsd.org (Postfix) with ESMTP id C6D848FC08; Mon, 15 Oct 2012 21:31:26 +0000 (UTC) Received: by mail-oa0-f54.google.com with SMTP id n9so7330870oag.13 for ; Mon, 15 Oct 2012 14:31:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=mcPLte4l+fnAzLz00reF/Ipk/ZZiLl93fRcKavtyLn4=; b=ktvXCMaUfne34Uha0ZVU22PlTwY0+XVZErNyPAenyekPa1qfQpZh5oLRvPQIqaW/GO TPY/pncHSAIqXxuR3kQxQVw063e1zky1y49xtnTYAbnlDkFzcZgpi9leqSM+FEaS6weG X/XLHYZV3OcL01P6WCbRgE6gIO64s+pGjYncGGhFBnnSXvK4mSSiLGWNy/PJm2HKmE2W 6mtZctDLyrhbY1YLsPNJqyvgO0/dXDYeRLUzEe9iEHjcOvUbQmm+swdRCUQxo/HU0Xdz Ohw+rsQMvK2SHDWH5UFV3cCpbsH1DDwdOvUf7e2vwiWM3Ek3gOEUMn65oASQu81JOrDP mFmg== MIME-Version: 1.0 Received: by 10.60.30.136 with SMTP id s8mr10569021oeh.81.1350336686158; Mon, 15 Oct 2012 14:31:26 -0700 (PDT) Received: by 10.76.167.202 with HTTP; Mon, 15 Oct 2012 14:31:26 -0700 (PDT) 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> <1350335891.1123.160.camel@revolution.hippie.lan> Date: Mon, 15 Oct 2012 14:31:26 -0700 Message-ID: Subject: Re: svn commit: r241576 - in head/usr.sbin/cron: cron crontab lib From: Garrett Cooper To: Ian Lepore Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, Maxim Sobolev , svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Oct 2012 21:31:27 -0000 On Mon, Oct 15, 2012 at 2:18 PM, Ian Lepore wrote: > On Mon, 2012-10-15 at 13:52 -0700, Garrett Cooper wrote: >> On Mon, Oct 15, 2012 at 1:44 PM, Ian Lepore >> 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