From: Andrew Morton <akpm@linux-foundation.org>
To: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: zippel@linux-m68k.org, tglx@linutronix.de, a.zummo@towertech.it,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] NTP: Let update_persistent_clock() sleep
Date: Mon, 9 Jun 2008 14:59:23 -0700 [thread overview]
Message-ID: <20080609145923.fe5dc86d.akpm@linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.55.0806091912390.26593@cliff.in.clinika.pl>
On Mon, 9 Jun 2008 19:18:52 +0100 (BST)
"Maciej W. Rozycki" <macro@linux-mips.org> wrote:
> Hi,
>
> > > Roman does most of the NTP work afaik. I consider Thomas's git-hrt
> > > tree to be the route via which NTP changes get into linux-next and
> > > mainline.
> >
> > That function is a little misplaced, we already have a driver/rtc dir,
> > where this should go in the long term and ntp.c only providing the
> > trigger, that time is stable. There it would also be possible to better
> > take into account any quirks needed to update the chip.
>
> I posted a separate change to implement a backend using the RTC class
> device. I think this is the right solution till all the platforms are
> moved away from legacy RTC drivers.
>
> I think you are right about the long-term implications and apart from any
> possible quirks I think the interface could get improved as there are RTC
> chips we support nowadays that provide sub-second resolution.
>
Are there any objections to the patch under discussion?
Thanks.
From: "Maciej W. Rozycki" <macro@linux-mips.org>
This is a change that makes the 11-minute RTC update be run in the process
context. This is so that update_persistent_clock() can sleep, which may
be required for certain types of RTC hardware -- most notably I2C devices.
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
kernel/time/ntp.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff -puN kernel/time/ntp.c~ntp-let-update_persistent_clock-sleep kernel/time/ntp.c
--- a/kernel/time/ntp.c~ntp-let-update_persistent_clock-sleep
+++ a/kernel/time/ntp.c
@@ -10,13 +10,13 @@
#include <linux/mm.h>
#include <linux/time.h>
-#include <linux/timer.h>
#include <linux/timex.h>
#include <linux/jiffies.h>
#include <linux/hrtimer.h>
#include <linux/capability.h>
#include <linux/math64.h>
#include <linux/clocksource.h>
+#include <linux/workqueue.h>
#include <asm/timex.h>
/*
@@ -218,11 +218,11 @@ void second_overflow(void)
/* Disable the cmos update - used by virtualization and embedded */
int no_sync_cmos_clock __read_mostly;
-static void sync_cmos_clock(unsigned long dummy);
+static void sync_cmos_clock(struct work_struct *work);
-static DEFINE_TIMER(sync_cmos_timer, sync_cmos_clock, 0, 0);
+static DECLARE_DELAYED_WORK(sync_cmos_work, sync_cmos_clock);
-static void sync_cmos_clock(unsigned long dummy)
+static void sync_cmos_clock(struct work_struct *work)
{
struct timespec now, next;
int fail = 1;
@@ -258,13 +258,13 @@ static void sync_cmos_clock(unsigned lon
next.tv_sec++;
next.tv_nsec -= NSEC_PER_SEC;
}
- mod_timer(&sync_cmos_timer, jiffies + timespec_to_jiffies(&next));
+ schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next));
}
static void notify_cmos_timer(void)
{
if (!no_sync_cmos_clock)
- mod_timer(&sync_cmos_timer, jiffies + 1);
+ schedule_delayed_work(&sync_cmos_work, 0);
}
#else
_
next prev parent reply other threads:[~2008-06-09 22:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-28 18:15 [PATCH] NTP: Let update_persistent_clock() sleep Maciej W. Rozycki
2008-05-28 19:17 ` Rik van Riel
2008-05-29 3:16 ` Andrew Morton
2008-05-29 17:34 ` Maciej W. Rozycki
2008-06-09 18:06 ` Roman Zippel
2008-06-09 18:18 ` Maciej W. Rozycki
2008-06-09 21:59 ` Andrew Morton [this message]
2008-06-09 22:04 ` Alessandro Zummo
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=20080609145923.fe5dc86d.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=a.zummo@towertech.it \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@linux-mips.org \
--cc=tglx@linutronix.de \
--cc=zippel@linux-m68k.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.