From: "Petr Vandrovec" <VANDROVE@vc.cvut.cz>
To: "Richard B. Johnson" <root@chaos.analogic.com>
Cc: Andreas Dilger <adilger@turbolabs.com>,
Tim Schmielau <tim@physik3.uni-rostock.de>,
vda <vda@port.imtp.ilyichevsk.odessa.ua>,
linux-kernel@vger.kernel.org
Subject: Re: [Patch] Re: Nasty suprise with uptime
Date: Wed, 31 Oct 2001 22:11:09 MET-1 [thread overview]
Message-ID: <7DFB419183D@vcnet.vc.cvut.cz> (raw)
On 31 Oct 01 at 15:39, Richard B. Johnson wrote:
> A fix exists, though. The existing, possibly wrong, boot time could
> be grabbed during the set-time sys-call, the difference between the
> existing (wrong) time and the boot time could be calculated, the
> new (correct) time could be set, then the boot-time would be changed
> to the new correct time, minus the calculated difference. This
> would result in a correct boot-time.
>
> dif_time = time - boot_time;
> time = new_time;
> boot_time = time - dif_time;
>
> Uptime could then be present time minus boot time. No mucking with
> timer ticks are required.
Hi,
this reminds me. Year or so ago there was patch from someone, which
detected jiffies overflow in /proc/uptime proc_read() code, so only thing
you had to do was run 'uptime', 'w', 'top' or something like that
every 497 days - you can schedule it as cron job for Jan 1, 0:00:00,
to find some workoholics.
Patch was something like:
...
static unsigned long long jiffies_hi = 0;
static unsigned long old_jiffies = 0;
unsigned long jiffy_cache;
/* some spinlock or inode lock or something like that */
jiffy_cache = jiffies;
if (jiffy_cache < old_jiffies) {
jiffies_hi += 1ULL << BITS_PER_LONG;
}
old_jiffies = jiffy_cache;
grand_jiffies = jiffies_hi + jiffy_cache;
/* unlock */
/* now do division and all strange things to format number for userspace */
...
Even if you add running uptime every year to your crontab,
it will consume less than 700,000,000 CPU cycles consumed by just 64bit
inc in timer interrupt.
Best regards,
Petr Vandrovec
vandrove@vc.cvut.cz
next reply other threads:[~2001-10-31 21:12 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-10-31 22:11 Petr Vandrovec [this message]
2001-10-31 21:45 ` [Patch] Re: Nasty suprise with uptime Andreas Dilger
2001-10-31 22:58 ` Tim Schmielau
2001-10-31 23:56 ` Andreas Dilger
2001-11-01 0:23 ` Tim Schmielau
2001-11-01 0:52 ` Tim Schmielau
2001-11-01 11:21 ` george anzinger
2001-11-01 11:40 ` Tim Schmielau
2001-11-02 0:28 ` Tim Schmielau
2001-11-02 1:23 ` Andreas Dilger
2001-11-02 9:10 ` Miquel van Smoorenburg
2001-11-02 17:18 ` Tim Schmielau
2001-11-02 18:48 ` Andreas Dilger
2001-11-02 21:35 ` possibly incorrect comparisons of jiffies in linux kernel Tim Schmielau
2001-11-01 16:35 ` [Patch] Re: Nasty suprise with uptime vda
2001-11-01 15:34 ` Richard B. Johnson
2001-11-01 17:02 ` Benjamin LaHaise
2001-11-01 18:03 ` Richard B. Johnson
2001-11-01 18:34 ` Benjamin LaHaise
2001-11-02 14:46 ` vda
2001-11-01 17:29 ` george anzinger
-- strict thread matches above, loose matches on Subject: below --
2001-11-01 9:02 Petr Vandrovec
[not found] <01103121070200.01262@nemo>
2001-10-31 19:26 ` Tim Schmielau
2001-10-31 19:52 ` Richard B. Johnson
2001-10-31 20:00 ` J Sloan
2001-10-31 20:20 ` Charles Cazabon
2001-10-31 20:33 ` Kurt Roeckx
2001-10-31 20:47 ` Tim Schmielau
2001-10-31 21:07 ` Andreas Dilger
2001-10-31 21:11 ` Richard B. Johnson
2001-11-01 16:09 ` vda
2001-10-31 11:35 Tim Schmielau
2001-10-31 15:39 ` vda
2001-10-31 14:31 ` Richard B. Johnson
2001-10-31 18:16 ` Tim Schmielau
2001-10-31 18:35 ` Tim Schmielau
2001-10-31 18:59 ` Andreas Dilger
2001-10-31 18:40 ` Andreas Dilger
2001-10-31 18:58 ` Gerhard Mack
2001-10-31 19:14 ` Richard B. Johnson
2001-10-31 20:11 ` Gerhard Mack
2001-10-31 20:39 ` Richard B. Johnson
2001-10-31 20:52 ` Andreas Dilger
2001-10-31 21:05 ` Tim Schmielau
2001-10-31 21:39 ` Andreas Dilger
2001-10-31 21:17 ` Richard B. Johnson
2001-11-01 7:45 ` Ville Herva
2001-10-31 19:06 ` george anzinger
2001-10-31 22:54 ` george anzinger
2001-11-04 18:31 ` Ton Hospel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7DFB419183D@vcnet.vc.cvut.cz \
--to=vandrove@vc.cvut.cz \
--cc=adilger@turbolabs.com \
--cc=linux-kernel@vger.kernel.org \
--cc=root@chaos.analogic.com \
--cc=tim@physik3.uni-rostock.de \
--cc=vda@port.imtp.ilyichevsk.odessa.ua \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox