Re: [PATCH] x86: fix locking and sync bugs in x86_64 RTC code in time_64.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Will make two patches and resend.

Thomas Gleixner wrote:
David,

On Mon, 12 Nov 2007, David P. Reed wrote:

From: David P. Reed

Fix two bugs in arch/x86/kernel/time_64.c that affect the x86_64 kernel. 1) a
repeatable hard freeze due to interrupts when the ntpd service calls
update_persistent_clock(), 2) potentially unstable PC RTC timer values when
timer is read.

1) Please send separate patches for separate problems.

2) Your patch is white space damaged and does not apply. Please run it
   through scripts/checkpatch.pl before submitting, maybe send it to
   yourself first and verify that it applies correctly.

Signed-off-by: David P. Reed <[email protected]>
---
More explanation:
1) A repeatable but randomly timed freeze has been happening in Fedora 6 and 7
for the last year, whenever I run the ntpd service on my AMD64x2 HP Pavilion
dv9000z laptop.  This freeze is due to the use of spin_lock(&rtc_lock) under
the assumption (per a bad comment) that set_rtc_mmss is called only with
interrupts disabled.  The call from ntp.c to update_persistent_clock is made
with interrupts enabled.

Good catch.
2) the use of an incorrect technique for reading the standard PC RTC timer,
which is documented to "disconnect" time registers from the bus while updates
are in progress.  The use of UIP flag while interrupts are disabled to protect
a 244 microsecond window is one of the Motorola spec sheet's documented ways
to read the RTC time registers reliably.  I realize that not all "clones" of
the

of the what ?

Also put the detailed description into the patch comment, please.

The patch updates the misleading comments and minimizes the amount of time
that the kernel disables interrupts.

I have thoroughly tested this patch on a number of x86_64 machines with
various numbers of cores and chipsets, using 2.6.24rc2 kernel source. Note
that while testing the ntp code I found another bug in kernel/time/ntp.c which
is independent of this fix - neither patch requires the other.

If possible, I'd love to see the patch merged with 2.6.24, and even with
2.6.23.

Care to resend ?

Thanks,

     tglx

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux