From: George Anzinger <george@mvista.com>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] clean up FIXME in do_timer_interrupt-lock fix
Date: Sat, 19 Mar 2005 01:33:26 -0800 [thread overview]
Message-ID: <423BF1E6.9030902@mvista.com> (raw)
In-Reply-To: <20050311143459.54c74dd0.akpm@osdl.org>
[-- Attachment #1: Type: text/plain, Size: 909 bytes --]
Did you pick this up? First sent on 3-11.
Andrew Morton wrote:
> Lee Revell <rlrevell@joe-job.com> wrote:
>
>>On Thu, 2005-03-10 at 00:42 -0800, George Anzinger wrote:
>>
>>>This patch changes the update of the cmos clock to be timer driven
>>>rather than poll driven by the timer interrupt function. If the clock
>>>is not being synced to an outside source the timer is removed and thus
>>>system overhead is nill in that case. The update frequency is still ~11
>>>minutes and missing the update window still causes a retry in 60
>>>seconds.
>>
>>No replies yet. Are there any objections to this patch?
>
>
> Nope. I think it's neat. I queued it up.
I had a nightmare about ntp coming in at the "wrong" time resulting in a
deadlock. Attached locking changes will make me sleep better :)
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
[-- Attachment #2: cmos_time_lock.patch --]
[-- Type: text/plain, Size: 1205 bytes --]
Source: MontaVista Software, Inc.
Type: Defect Fix
Disposition: Pending
Description:
I was not happy with the locking on this. Two changes:
1) Turn off irq while setting the clock.
2) Call the timer code only through the timer interface
(set a short timer to do it from the ntp call).
Signed-off-by: George Anzinger <george@mvista.com>
time.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
Index: linux-2.6.12-rc/arch/i386/kernel/time.c
===================================================================
--- linux-2.6.12-rc.orig/arch/i386/kernel/time.c
+++ linux-2.6.12-rc/arch/i386/kernel/time.c
@@ -176,12 +176,12 @@ static int set_rtc_mmss(unsigned long no
int retval;
/* gets recalled with irq locally disabled */
- spin_lock(&rtc_lock);
+ spin_lock_irq(&rtc_lock);
if (efi_enabled)
retval = efi_set_rtc_mmss(nowtime);
else
retval = mach_set_rtc_mmss(nowtime);
- spin_unlock(&rtc_lock);
+ spin_unlock_irq(&rtc_lock);
return retval;
}
@@ -338,7 +338,7 @@ static void sync_cmos_clock(unsigned lon
}
void notify_arch_cmos_timer(void)
{
- sync_cmos_clock(0);
+ mod_timer(&sync_cmos_timer, jiffies + 1);
}
static long clock_cmos_diff, sleep_start;
next prev parent reply other threads:[~2005-03-19 9:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-03 17:10 [PATCH] clean up FIXME in do_timer_interrupt Lee Revell
2005-03-04 0:45 ` Andrew Morton
2005-03-04 1:19 ` Lee Revell
2005-03-04 10:28 ` George Anzinger
2005-03-04 20:43 ` Lee Revell
2005-03-04 20:58 ` George Anzinger
2005-03-08 20:27 ` Lee Revell
2005-03-08 23:23 ` George Anzinger
2005-03-10 8:42 ` George Anzinger
2005-03-11 22:23 ` Lee Revell
2005-03-11 22:34 ` Andrew Morton
2005-03-12 2:01 ` George Anzinger
2005-03-19 9:33 ` George Anzinger [this message]
2005-03-19 21:21 ` [PATCH] clean up FIXME in do_timer_interrupt-lock fix Andrew Morton
2005-03-19 22:23 ` George Anzinger
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=423BF1E6.9030902@mvista.com \
--to=george@mvista.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.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.