remarkable-linux/include
Matt Mackall 63732c2f37 [PATCH] RTC: Remove RTC UIP synchronization on x86
Reading the CMOS clock on x86 and some other arches currently takes up to one
second because it synchronizes with the CMOS second tick-over.  This delay
shows up at boot time as well a resume time.

This is the currently the most substantial boot time delay for machines that
are working towards instant-on capability.  Also, a quick back of the envelope
calculation (.5sec * 2M users * 1 boot a day * 10 years) suggests it has cost
Linux users in the neighborhood of a million man-hours.

An earlier thread on this topic is here:

http://groups.google.com/group/linux.kernel/browse_frm/thread/8a24255215ff6151/2aa97e66a977653d?hl=en&lr=&ie=UTF-8&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1To2R-2S7-11%40gated-at.bofh.it#2aa97e66a977653d

..from which the consensus seems to be that it's no longer desirable.

In my view, there are basically four cases to consider:

1) networked, need precise walltime: use NTP
2) networked, don't need precise walltime: use NTP anyway
3) not networked, don't need sub-second precision walltime: don't care
4) not networked, need sub-second precision walltime:
   get a network or a radio time source because RTC isn't good enough anyway

So this patch series simply removes the synchronization in favor of a simple
seqlock-like approach using the seconds value.

Note that for purposes of timer accuracy on wakeup, this patch will cause us
to fire timers up to one second late.  But as the current timer resume code
will already sync once (or more!), it's no worse for short timers.

Signed-off-by: Matt Mackall <mpm@selenic.com>
Cc: Andi Kleen <ak@muc.de>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-28 09:16:00 -08:00
..
acpi [PATCH] s/;;/;/g 2006-03-24 07:33:24 -08:00
asm-alpha [PATCH] remove zone_mem_map 2006-03-27 08:44:47 -08:00
asm-arm [PATCH] RTC subsystem: ARM cleanup 2006-03-27 08:44:50 -08:00
asm-arm26 [PATCH] unify pfn_to_page: arm26 pfn_to_page 2006-03-27 08:44:44 -08:00
asm-cris [PATCH] unify pfn_to_page: cris pfn_to_page 2006-03-27 08:44:45 -08:00
asm-frv [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
asm-generic [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
asm-h8300 [PATCH] unify pfn_to_page: h8300 pfn_to_page 2006-03-27 08:44:45 -08:00
asm-i386 [PATCH] RTC: Remove RTC UIP synchronization on x86 2006-03-28 09:16:00 -08:00
asm-ia64 [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
asm-m32r [PATCH] unify PFN_* macros 2006-03-27 08:44:48 -08:00
asm-m68k [PATCH] m68k: fix undefined reference to generic_find_next_zero_le_bit 2006-03-26 08:57:13 -08:00
asm-m68knommu [PATCH] bitops: m68knommu: use generic bitops 2006-03-26 08:57:13 -08:00
asm-mips [PATCH] mips: fixed collision of rtc function name 2006-03-27 08:44:50 -08:00
asm-parisc [PATCH] parisc: add ptr_to_compat() 2006-03-27 08:44:48 -08:00
asm-powerpc [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
asm-ppc [PATCH] unify pfn_to_page: ppc pfn_to_page 2006-03-27 08:44:46 -08:00
asm-s390 [PATCH] s390: add ptr_to_compat() 2006-03-27 08:44:48 -08:00
asm-sh [PATCH] unify pfn_to_page: sh pfn_to_page 2006-03-27 08:44:46 -08:00
asm-sh64 [PATCH] unify PFN_* macros 2006-03-27 08:44:48 -08:00
asm-sparc [PATCH] unify pfn_to_page: sparc pfn_to_page 2006-03-27 08:44:46 -08:00
asm-sparc64 [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
asm-um [PATCH] unify pfn_to_page: uml pfn_to_page 2006-03-27 08:44:46 -08:00
asm-v850 [PATCH] unify pfn_to_page: v850 pfn_to_page 2006-03-27 08:44:47 -08:00
asm-x86_64 [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
asm-xtensa [PATCH] unify pfn_to_page: xtensa pfn_to_page 2006-03-27 08:44:47 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux Merge branch 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-block 2006-03-27 08:46:49 -08:00
math-emu
media V4L/DVB (3599): Implement new routing commands for wm8775 and cs53l32a. 2006-03-24 16:27:00 -03:00
mtd
net Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-03-27 08:47:29 -08:00
pcmcia [PATCH] pcmcia: Add macro to match PCMCIA cards by numeric ID and first vendor string 2006-03-01 11:11:26 +01:00
rdma IB/umad: Add support for large RMPP transfers 2006-03-20 10:08:23 -08:00
rxrpc
scsi [PATCH] Make libata not powerdown drivers on PM_EVENT_FREEZE. 2006-03-24 09:51:36 -05:00
sound [PATCH] sound: remove PC98-specific OPL3_HW_OPL3_PC98 2006-03-24 07:33:26 -08:00
video [PATCH] Remove MODULE_PARM 2006-03-25 08:22:52 -08:00