public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Andrea Arcangeli <andrea@suse.de>,
	Peter Zaitsev <peter@mysql.com>, Andrew Morton <akpm@osdl.org>,
	riel@redhat.com, mbligh@aracnet.com,
	linux-kernel@vger.kernel.org
Subject: Re: 2.4.23aa2 (bugfixes and important VM improvements for the high end)
Date: Sat, 6 Mar 2004 05:12:56 +0000	[thread overview]
Message-ID: <20040306051256.GA9909@mail.shareable.org> (raw)
In-Reply-To: <20040305201139.GA7254@mail.shareable.org>

Jamie Lokier wrote:
> Ingo Molnar wrote:
> > if mysql in fact calls time() frequently, then it should rather start a
> > worker thread that updates a global time variable every second.
> 
> That has the same problem as discussed later in this thread with
> vsyscall-time: the worker thread may not run immediately it is woken,
> and also setitimer() and select() round up the delay a little more
> then expected, so sometimes the global time variable will be out of
> date and misordered.
>
> I don't know if such delays a problem for MySQL.

I still don't know about MySQL, but I have just encounted some code of
my own which does break if time() returns significantly out of date
values.

Any code which is structured like this will break:

	time_t timeout = time(0) + TIMEOUT_IN_SECONDS;

	do {
		/* Do some stuff which takes a little while. */
	} while (time(0) <= timeout);

It goes wrong when time() returns a value that is in the past, and
then jumps forward to the correct time suddenly.  The timeout of the
above code is reduced by the size of that jump.  If the jump is larger
than TIMEOUT_IN_SECONDS, the timeout mechanism is defeated completely.

That sort of code is a prime candidate for the method of using a
worker thread updating a global variable, so it's really important to
to take care when using it.

-- Jamie

  reply	other threads:[~2004-03-06  5:13 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-27  1:33 2.4.23aa2 (bugfixes and important VM improvements for the high end) Andrea Arcangeli
2004-02-27  4:38 ` Rik van Riel
2004-02-27 17:32   ` Andrea Arcangeli
2004-02-27 19:08     ` Rik van Riel
2004-02-27 20:29       ` Andrew Morton
2004-02-27 20:49         ` Rik van Riel
2004-02-27 20:55           ` Andrew Morton
2004-02-27 21:28           ` Andrea Arcangeli
2004-02-27 21:37             ` Andrea Arcangeli
2004-02-28  3:22             ` Andrea Arcangeli
2004-03-01 11:10           ` Nikita Danilov
2004-02-27 21:15         ` Andrea Arcangeli
2004-02-27 22:03           ` Martin J. Bligh
2004-02-27 22:23             ` Andrew Morton
2004-02-28  2:32             ` Andrea Arcangeli
2004-02-28  4:57               ` Wim Coekaerts
2004-02-28  6:18                 ` Andrea Arcangeli
2004-02-28  6:45                   ` Martin J. Bligh
2004-02-28  7:05                     ` Andrea Arcangeli
2004-02-28  9:19                       ` Dave Hansen
2004-03-18  2:44                         ` Andrea Arcangeli
     [not found]                   ` <20040228061838.GO8834@dualathlon.random.suse.lists.linux.kernel>
2004-02-28 12:46                     ` Andi Kleen
2004-02-29  1:39                       ` Andrea Arcangeli
2004-02-29  2:29                         ` Andi Kleen
2004-02-29 16:34                           ` Andrea Arcangeli
2004-02-28  6:10               ` Martin J. Bligh
2004-02-28  6:43                 ` Andrea Arcangeli
2004-02-28  7:00                   ` Martin J. Bligh
2004-02-28  7:29                     ` Andrea Arcangeli
2004-02-28 14:55                       ` Rik van Riel
2004-02-28 15:06                         ` Arjan van de Ven
2004-02-29  1:43                         ` Andrea Arcangeli
     [not found]                           ` < 1078370073.3403.759.camel@abyss.local>
2004-03-04  3:14                           ` Peter Zaitsev
2004-03-04  3:33                             ` Andrew Morton
2004-03-04  3:44                               ` Peter Zaitsev
2004-03-04  4:07                                 ` Andrew Morton
2004-03-04  4:44                                   ` Peter Zaitsev
2004-03-04  4:52                                   ` Andrea Arcangeli
2004-03-04  5:10                                     ` Andrew Morton
2004-03-04  5:27                                       ` Andrea Arcangeli
2004-03-04  5:38                                         ` Andrew Morton
2004-03-05 20:19                                       ` Jamie Lokier
2004-03-05 20:33                                         ` Andrea Arcangeli
2004-03-05 21:44                                           ` Jamie Lokier
2004-03-04 12:12                                     ` Rik van Riel
2004-03-04 16:21                                     ` Peter Zaitsev
2004-03-04 18:13                                       ` Andrea Arcangeli
2004-03-04 17:35                                   ` Martin J. Bligh
2004-03-04 18:16                                     ` Andrea Arcangeli
2004-03-04 19:31                                       ` Martin J. Bligh
2004-03-04 20:21                                     ` Peter Zaitsev
2004-03-05 10:33                                 ` Ingo Molnar
2004-03-05 14:15                                   ` Andrea Arcangeli
2004-03-05 14:32                                     ` Ingo Molnar
2004-03-05 14:58                                       ` Andrea Arcangeli
2004-03-05 15:26                                         ` Ingo Molnar
2004-03-05 15:53                                           ` Andrea Arcangeli
2004-03-07  8:41                                             ` Ingo Molnar
2004-03-07 10:29                                               ` Nick Piggin
2004-03-07 17:33                                                 ` Andrea Arcangeli
2004-03-08  5:15                                                   ` Nick Piggin
2004-03-07 17:24                                               ` Andrea Arcangeli
2004-03-05 21:28                                           ` Martin J. Bligh
2004-03-05 18:42                                         ` Martin J. Bligh
2004-03-05 19:13                                           ` Andrea Arcangeli
2004-03-05 19:55                                             ` Martin J. Bligh
2004-03-05 20:29                                               ` Andrea Arcangeli
2004-03-05 20:41                                                 ` Andrew Morton
2004-03-05 21:07                                                   ` Andrea Arcangeli
2004-03-05 22:12                                                     ` Andrew Morton
2004-03-05 14:34                                     ` Ingo Molnar
2004-03-05 14:59                                       ` Andrea Arcangeli
2004-03-05 15:02                                         ` Ingo Molnar
     [not found]                                           ` <20040305150225.GA13237@elte.hu.suse.lists.linux.kernel>
2004-03-05 15:51                                             ` Andi Kleen
2004-03-05 16:23                                               ` Ingo Molnar
2004-03-05 16:39                                                 ` Andrea Arcangeli
2004-03-07  8:16                                                   ` Ingo Molnar
2004-03-10 13:21                                                 ` Andi Kleen
2004-03-05 16:42                                                   ` Andrea Arcangeli
2004-03-05 16:49                                                   ` Ingo Molnar
2004-03-05 16:58                                                     ` Andrea Arcangeli
2004-03-05 20:11                                           ` Jamie Lokier
2004-03-06  5:12                                             ` Jamie Lokier [this message]
2004-03-06 12:56                                               ` Magnus Naeslund(t)
2004-03-06 13:13                                                 ` Magnus Naeslund(t)
2004-03-07 11:55                                             ` Ingo Molnar
2004-03-07  6:50                                           ` Peter Zaitsev
2004-03-02  9:10                 ` Kurt Garloff
2004-03-02 15:32                   ` Martin J. Bligh
2004-02-27 21:42         ` Hugh Dickins
2004-02-27 23:18         ` Marcelo Tosatti
2004-02-27 22:39           ` Andrew Morton
2004-02-27 20:31       ` Andrea Arcangeli
2004-02-29  6:34       ` Mike Fedyk
     [not found] <20040304175821.GO4922@dualathlon.random>
2004-03-04 22:14 ` Rik van Riel
2004-03-04 23:24   ` Andrea Arcangeli
2004-03-05  3:43     ` Rik van Riel
     [not found] <1u7eQ-6Bz-1@gated-at.bofh.it>
     [not found] ` <1ue6M-45w-11@gated-at.bofh.it>
     [not found]   ` <1uofN-4Rh-25@gated-at.bofh.it>
     [not found]     ` <1vRz3-5p2-11@gated-at.bofh.it>
     [not found]       ` <1vRSn-5Fc-11@gated-at.bofh.it>
     [not found]         ` <1vS26-5On-21@gated-at.bofh.it>
     [not found]           ` <1wkUr-3QW-11@gated-at.bofh.it>
     [not found]             ` <1wolx-7ET-31@gated-at.bofh.it>
     [not found]               ` <1woEM-7Yx-41@gated-at.bofh.it>
     [not found]                 ` <1wp8b-7x-3@gated-at.bofh.it>
     [not found]                   ` <1wp8l-7x-25@gated-at.bofh.it>
     [not found]                     ` <1x0qG-Dr-3@gated-at.bofh.it>
2004-03-12 21:15                       ` Andi Kleen
2004-03-18 19:50                         ` Peter Zaitsev
     [not found]               ` <1woEJ-7Yx-25@gated-at.bofh.it>
     [not found]                 ` <1wp8c-7x-5@gated-at.bofh.it>
     [not found]                   ` <1wprd-qI-21@gated-at.bofh.it>
     [not found]                     ` <1wpUz-Tw-21@gated-at.bofh.it>
     [not found]                       ` <1x293-2nT-7@gated-at.bofh.it>
2004-03-12 21:25                         ` Andi Kleen

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=20040306051256.GA9909@mail.shareable.org \
    --to=jamie@shareable.org \
    --cc=akpm@osdl.org \
    --cc=andrea@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@aracnet.com \
    --cc=mingo@elte.hu \
    --cc=peter@mysql.com \
    --cc=riel@redhat.com \
    /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