rpms/kernel/devel kernel.spec, 1.86, 1.87 linux-2.6-highres-timers.patch, 1.4, 1.5
Dave Jones (davej)
fedora-extras-commits at redhat.com
Mon Aug 13 19:46:22 UTC 2007
Author: davej
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16494
Modified Files:
kernel.spec linux-2.6-highres-timers.patch
Log Message:
* Mon Aug 13 2007 Dave Jones <davej at redhat.com>
- Add patch-2.6.23-rc3-hrt2.patch, bringing X86-64 tickless back.
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -r1.86 -r1.87
--- kernel.spec 13 Aug 2007 17:29:55 -0000 1.86
+++ kernel.spec 13 Aug 2007 19:45:49 -0000 1.87
@@ -557,6 +557,8 @@
%if !%{nopatches}
+Patch20: linux-2.6-highres-timers.patch
+
Patch21: linux-2.6-utrace-tracehook.patch
Patch22: linux-2.6-utrace-tracehook-ia64.patch
Patch23: linux-2.6-utrace-tracehook-sparc64.patch
@@ -940,9 +942,8 @@
%if !%{nopatches}
-# Assorted dyntick/clock/timer fixes.
-#ApplyPatch linux-2.6-clockevents-fix-resume-logic.patch
-#ApplyPatch linux-2.6-highres-timers.patch
+# patch-2.6.23-rc3-hrt2.patch
+ApplyPatch linux-2.6-highres-timers.patch
%if 0
# Roland's utrace ptrace replacement.
@@ -1739,6 +1740,9 @@
%changelog
* Mon Aug 13 2007 Dave Jones <davej at redhat.com>
+- Add patch-2.6.23-rc3-hrt2.patch, bringing X86-64 tickless back.
+
+* Mon Aug 13 2007 Dave Jones <davej at redhat.com>
- 2.6.23-rc3
* Sun Aug 12 2007 Roland McGrath <roland at redhat.com>
linux-2.6-highres-timers.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.4 -r 1.5 linux-2.6-highres-timers.patch
Index: linux-2.6-highres-timers.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-highres-timers.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6-highres-timers.patch 9 Jul 2007 16:02:56 -0000 1.4
+++ linux-2.6-highres-timers.patch 13 Aug 2007 19:45:49 -0000 1.5
@@ -1,113 +1,221 @@
-Index: linux-2.6.22-rc7/kernel/time/ntp.c
+Index: linux-2.6.23-rc3/include/linux/clockchips.h
===================================================================
---- linux-2.6.22-rc7.orig/kernel/time/ntp.c 2007-07-03 20:27:54.000000000 +0200
-+++ linux-2.6.22-rc7/kernel/time/ntp.c 2007-07-03 20:27:59.000000000 +0200
-@@ -8,11 +8,12 @@
- * changelogs.
- */
+--- linux-2.6.23-rc3.orig/include/linux/clockchips.h 2007-08-13 16:49:31.000000000 +0200
++++ linux-2.6.23-rc3/include/linux/clockchips.h 2007-08-13 16:49:31.000000000 +0200
+@@ -8,7 +8,7 @@
+ #ifndef _LINUX_CLOCKCHIPS_H
+ #define _LINUX_CLOCKCHIPS_H
-+#include <linux/hrtimer.h>
-+#include <linux/jiffies.h>
- #include <linux/mm.h>
- #include <linux/time.h>
-+#include <linux/timer.h>
- #include <linux/timex.h>
--#include <linux/jiffies.h>
--#include <linux/hrtimer.h>
+-#ifdef CONFIG_GENERIC_CLOCKEVENTS
++#ifdef CONFIG_GENERIC_CLOCKEVENTS_BUILD
- #include <asm/div64.h>
- #include <asm/timex.h>
-@@ -187,12 +186,64 @@ u64 current_tick_length(void)
- return tick_length;
- }
+ #include <linux/clocksource.h>
+ #include <linux/cpumask.h>
+@@ -126,11 +126,14 @@ extern int clockevents_register_notifier
+ extern int clockevents_program_event(struct clock_event_device *dev,
+ ktime_t expires, ktime_t now);
-+#ifdef CONFIG_GENERIC_CMOS_UPDATE
++#ifdef CONFIG_GENERIC_CLOCKEVENTS
+ extern void clockevents_notify(unsigned long reason, void *arg);
+-
+ #else
++# define clockevents_notify(reason, arg) do { } while (0)
++#endif
+
-+/* Disable the cmos update - used by virtualization and embedded */
-+int no_sync_cmos_clock __read_mostly;
++#else /* CONFIG_GENERIC_CLOCKEVENTS_BUILD */
+
+-static inline void clockevents_resume_events(void) { }
+ #define clockevents_notify(reason, arg) do { } while (0)
--void __attribute__ ((weak)) notify_arch_cmos_timer(void)
-+static void sync_cmos_clock(unsigned long dummy);
+ #endif
+Index: linux-2.6.23-rc3/kernel/time/Kconfig
+===================================================================
+--- linux-2.6.23-rc3.orig/kernel/time/Kconfig 2007-08-13 16:49:31.000000000 +0200
++++ linux-2.6.23-rc3/kernel/time/Kconfig 2007-08-13 16:49:31.000000000 +0200
+@@ -23,3 +23,8 @@ config HIGH_RES_TIMERS
+ hardware is not capable then this option only increases
+ the size of the kernel image.
+
++config GENERIC_CLOCKEVENTS_BUILD
++ bool
++ default y
++ depends on GENERIC_CLOCKEVENTS || GENERIC_CLOCKEVENTS_MIGR
+
-+static DEFINE_TIMER(sync_cmos_timer, sync_cmos_clock, 0, 0);
+Index: linux-2.6.23-rc3/kernel/time/Makefile
+===================================================================
+--- linux-2.6.23-rc3.orig/kernel/time/Makefile 2007-08-13 16:49:31.000000000 +0200
++++ linux-2.6.23-rc3/kernel/time/Makefile 2007-08-13 16:49:31.000000000 +0200
+@@ -1,6 +1,6 @@
+ obj-y += timekeeping.o ntp.o clocksource.o jiffies.o timer_list.o
+
+-obj-$(CONFIG_GENERIC_CLOCKEVENTS) += clockevents.o
++obj-$(CONFIG_GENERIC_CLOCKEVENTS_BUILD) += clockevents.o
+ obj-$(CONFIG_GENERIC_CLOCKEVENTS) += tick-common.o
+ obj-$(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) += tick-broadcast.o
+ obj-$(CONFIG_TICK_ONESHOT) += tick-oneshot.o
+Index: linux-2.6.23-rc3/kernel/time/clockevents.c
+===================================================================
+--- linux-2.6.23-rc3.orig/kernel/time/clockevents.c 2007-08-13 16:49:31.000000000 +0200
++++ linux-2.6.23-rc3/kernel/time/clockevents.c 2007-08-13 16:49:31.000000000 +0200
+@@ -194,6 +194,7 @@ void clockevents_exchange_device(struct
+ local_irq_restore(flags);
+ }
+
++#ifdef CONFIG_GENERIC_CLOCKEVENTS
+ /**
+ * clockevents_notify - notification about relevant events
+ */
+@@ -222,4 +223,4 @@ void clockevents_notify(unsigned long re
+ spin_unlock(&clockevents_lock);
+ }
+ EXPORT_SYMBOL_GPL(clockevents_notify);
+-
++#endif
+Index: linux-2.6.23-rc3/Documentation/cpuidle/core.txt
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23-rc3/Documentation/cpuidle/core.txt 2007-08-13 16:49:31.000000000 +0200
+@@ -0,0 +1,17 @@
+
-+static void sync_cmos_clock(unsigned long dummy)
- {
-- return;
-+ struct timespec now, next;
-+ int fail = 1;
++ Supporting multiple CPU idle levels in kernel
+
-+ /*
-+ * If we have an externally synchronized Linux clock, then update
-+ * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
-+ * called as close as possible to 500 ms before the new second starts.
-+ * This code is run on a timer. If the clock is set, that timer
-+ * may not expire at the correct time. Thus, we adjust...
-+ */
-+ if (!ntp_synced())
-+ /*
-+ * Not synced, exit, do not restart a timer (if one is
-+ * running, let it run out).
-+ */
-+ return;
++ cpuidle
+
-+ getnstimeofday(&now);
-+ if (abs(xtime.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2)
-+ fail = update_persistent_clock(now);
-+
-+ next.tv_nsec = (NSEC_PER_SEC / 2) - now.tv_nsec;
-+ if (next.tv_nsec <= 0)
-+ next.tv_nsec += NSEC_PER_SEC;
++General Information:
+
-+ if (!fail)
-+ next.tv_sec = 659;
-+ else
-+ next.tv_sec = 0;
++Various CPUs today support multiple idle levels that are differentiated
++by varying exit latencies and power consumption during idle.
++cpuidle is a generic in-kernel infrastructure that separates
++idle policy (governor) from idle mechanism (driver) and provides a
++standardized infrastructure to support independent development of
++governors and drivers.
+
-+ if (next.tv_nsec >= NSEC_PER_SEC) {
-+ next.tv_sec++;
-+ next.tv_nsec -= NSEC_PER_SEC;
-+ }
-+ mod_timer(&sync_cmos_timer, jiffies + timespec_to_jiffies(&next));
- }
-
-+static void notify_cmos_timer(void)
-+{
-+ if (no_sync_cmos_clock)
-+ mod_timer(&sync_cmos_timer, jiffies + 1);
-+}
++cpuidle resides under drivers/cpuidle.
+
-+#else
-+static inline void notify_cmos_timer(void) { }
-+#endif
+
- /* adjtimex mainly allows reading (and writing, if superuser) of
- * kernel time-keeping variables. used by xntpd.
- */
-@@ -357,6 +408,6 @@ leave: if ((time_status & (STA_UNSYNC|ST
- txc->stbcnt = 0;
- write_sequnlock_irq(&xtime_lock);
- do_gettimeofday(&txc->time);
-- notify_arch_cmos_timer();
-+ notify_cmos_timer();
- return(result);
- }
-Index: linux-2.6.22-rc7/arch/i386/Kconfig
+Index: linux-2.6.23-rc3/Documentation/cpuidle/driver.txt
===================================================================
---- linux-2.6.22-rc7.orig/arch/i386/Kconfig 2007-07-03 20:27:53.000000000 +0200
-+++ linux-2.6.22-rc7/arch/i386/Kconfig 2007-07-03 20:27:59.000000000 +0200
-@@ -18,6 +18,10 @@ config GENERIC_TIME
- bool
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23-rc3/Documentation/cpuidle/driver.txt 2007-08-13 16:49:31.000000000 +0200
+@@ -0,0 +1,29 @@
++
++
++ Supporting multiple CPU idle levels in kernel
++
++ cpuidle drivers
++
[...10806 lines suppressed...]
+ extern int is_hpet_enabled(void);
+ extern int hpet_enable(void);
++extern unsigned long hpet_readl(unsigned long a);
++extern void force_hpet_resume(void);
+
+ #ifdef CONFIG_HPET_EMULATE_RTC
+
+@@ -85,6 +88,7 @@ extern irqreturn_t hpet_rtc_interrupt(in
+ #else
+
+ static inline int hpet_enable(void) { return 0; }
++static inline unsigned long hpet_readl(unsigned long a) { return 0; }
+
+ #endif /* CONFIG_HPET_TIMER */
+ #endif /* _I386_HPET_H */
+Index: linux-2.6.23-rc3/include/asm-x86_64/vsyscall.h
+===================================================================
+--- linux-2.6.23-rc3.orig/include/asm-x86_64/vsyscall.h 2007-08-13 16:49:28.000000000 +0200
++++ linux-2.6.23-rc3/include/asm-x86_64/vsyscall.h 2007-08-13 16:49:34.000000000 +0200
+@@ -29,9 +29,6 @@ enum vsyscall_num {
+ #define VGETCPU_RDTSCP 1
+ #define VGETCPU_LSL 2
+
+-#define hpet_readl(a) readl((const void __iomem *)fix_to_virt(FIX_HPET_BASE) + a)
+-#define hpet_writel(d,a) writel(d, (void __iomem *)fix_to_virt(FIX_HPET_BASE) + a)
+-
+ extern int __vgetcpu_mode;
+ extern volatile unsigned long __jiffies;
+
+Index: linux-2.6.23-rc3/kernel/time/tick-broadcast.c
+===================================================================
+--- linux-2.6.23-rc3.orig/kernel/time/tick-broadcast.c 2007-08-13 16:49:27.000000000 +0200
++++ linux-2.6.23-rc3/kernel/time/tick-broadcast.c 2007-08-13 16:49:34.000000000 +0200
+@@ -64,8 +64,9 @@ static void tick_broadcast_start_periodi
+ */
+ int tick_check_broadcast_device(struct clock_event_device *dev)
+ {
+- if (tick_broadcast_device.evtdev ||
+- (dev->features & CLOCK_EVT_FEAT_C3STOP))
++ if ((tick_broadcast_device.evtdev &&
++ tick_broadcast_device.evtdev->rating >= dev->rating) ||
++ (dev->features & CLOCK_EVT_FEAT_C3STOP))
+ return 0;
+
+ clockevents_exchange_device(NULL, dev);
+@@ -519,11 +520,9 @@ static void tick_broadcast_clear_oneshot
+ */
+ void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
+ {
+- if (bc->mode != CLOCK_EVT_MODE_ONESHOT) {
+- bc->event_handler = tick_handle_oneshot_broadcast;
+- clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
+- bc->next_event.tv64 = KTIME_MAX;
+- }
++ bc->event_handler = tick_handle_oneshot_broadcast;
++ clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
++ bc->next_event.tv64 = KTIME_MAX;
+ }
+
+ /*
+Index: linux-2.6.23-rc3/kernel/time/tick-common.c
+===================================================================
+--- linux-2.6.23-rc3.orig/kernel/time/tick-common.c 2007-08-13 16:49:27.000000000 +0200
++++ linux-2.6.23-rc3/kernel/time/tick-common.c 2007-08-13 16:49:34.000000000 +0200
+@@ -200,7 +200,7 @@ static int tick_check_new_device(struct
+
+ cpu = smp_processor_id();
+ if (!cpu_isset(cpu, newdev->cpumask))
+- goto out;
++ goto out_bc;
+
+ td = &per_cpu(tick_cpu_device, cpu);
+ curdev = td->evtdev;
+@@ -265,7 +265,7 @@ out_bc:
+ */
+ if (tick_check_broadcast_device(newdev))
+ ret = NOTIFY_STOP;
+-out:
+
- rmb();
- idle = pm_idle;
- if (!idle)
-@@ -227,6 +230,7 @@ void cpu_idle (void)
- __exit_idle();
- }
+ spin_unlock_irqrestore(&tick_device_lock, flags);
-+ tick_nohz_restart_sched_tick();
- preempt_enable_no_resched();
- schedule();
- preempt_disable();
-Index: linux-2.6.22-rc7/arch/i386/kernel/quirks.c
+ return ret;
+Index: linux-2.6.23-rc3/arch/i386/kernel/quirks.c
===================================================================
---- linux-2.6.22-rc7.orig/arch/i386/kernel/quirks.c 2007-07-03 20:27:46.000000000 +0200
-+++ linux-2.6.22-rc7/arch/i386/kernel/quirks.c 2007-07-03 20:28:02.000000000 +0200
+--- linux-2.6.23-rc3.orig/arch/i386/kernel/quirks.c 2007-08-13 16:49:27.000000000 +0200
++++ linux-2.6.23-rc3/arch/i386/kernel/quirks.c 2007-08-13 16:49:35.000000000 +0200
@@ -4,6 +4,8 @@
#include <linux/pci.h>
#include <linux/irq.h>
@@ -7235,7 +5667,7 @@
#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI)
static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
-@@ -48,3 +50,275 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -47,3 +49,280 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_intel_irqbalance);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quirk_intel_irqbalance);
#endif
@@ -7280,7 +5712,8 @@
+
+static void ich_force_enable_hpet(struct pci_dev *dev)
+{
-+ u32 val, rcba;
++ u32 val;
++ u32 uninitialized_var(rcba);
+ int err = 0;
+
+ if (hpet_address || force_hpet_address)
@@ -7335,23 +5768,26 @@
+ }
+}
+
-+//DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_0,
-+// ich_force_enable_hpet);
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_0,
++ ich_force_enable_hpet);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1,
+ ich_force_enable_hpet);
-+//DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1,
-+// ich_force_enable_hpet);
-+//DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31,
-+// ich_force_enable_hpet);
-+//DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_1,
-+// ich_force_enable_hpet);
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_0,
++ ich_force_enable_hpet);
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1,
++ ich_force_enable_hpet);
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31,
++ ich_force_enable_hpet);
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_1,
++ ich_force_enable_hpet);
+
+
+static struct pci_dev *cached_dev;
+
+static void old_ich_force_hpet_resume(void)
+{
-+ u32 val, gen_cntl;
++ u32 val;
++ u32 uninitialized_var(gen_cntl);
+
+ if (!force_hpet_address || !cached_dev)
+ return;
@@ -7372,7 +5808,8 @@
+
+static void old_ich_force_enable_hpet(struct pci_dev *dev)
+{
-+ u32 val, gen_cntl;
++ u32 val;
++ u32 uninitialized_var(gen_cntl);
+
+ if (hpet_address || force_hpet_address)
+ return;
@@ -7511,11 +5948,11 @@
+}
+
+#endif
-Index: linux-2.6.22-rc7/include/linux/pci_ids.h
+Index: linux-2.6.23-rc3/include/linux/pci_ids.h
===================================================================
---- linux-2.6.22-rc7.orig/include/linux/pci_ids.h 2007-07-03 20:27:46.000000000 +0200
-+++ linux-2.6.22-rc7/include/linux/pci_ids.h 2007-07-03 20:28:01.000000000 +0200
-@@ -2220,6 +2220,7 @@
+--- linux-2.6.23-rc3.orig/include/linux/pci_ids.h 2007-08-13 16:49:27.000000000 +0200
++++ linux-2.6.23-rc3/include/linux/pci_ids.h 2007-08-13 16:49:35.000000000 +0200
+@@ -2215,6 +2215,7 @@
#define PCI_DEVICE_ID_INTEL_82801EB_5 0x24d5
#define PCI_DEVICE_ID_INTEL_82801EB_6 0x24d6
#define PCI_DEVICE_ID_INTEL_82801EB_11 0x24db
@@ -7523,3 +5960,16 @@
#define PCI_DEVICE_ID_INTEL_82801EB_13 0x24dd
#define PCI_DEVICE_ID_INTEL_ESB_1 0x25a1
#define PCI_DEVICE_ID_INTEL_ESB_2 0x25a2
+Index: linux-2.6.23-rc3/Makefile
+===================================================================
+--- linux-2.6.23-rc3.orig/Makefile 2007-08-13 16:49:26.000000000 +0200
++++ linux-2.6.23-rc3/Makefile 2007-08-13 16:49:35.000000000 +0200
+@@ -1,7 +1,7 @@
+ VERSION = 2
+ PATCHLEVEL = 6
+ SUBLEVEL = 23
+-EXTRAVERSION =-rc3
++EXTRAVERSION =-rc3-hrt2
+ NAME = Holy Dancing Manatees, Batman!
+
+ # *DOCUMENTATION*
More information about the fedora-extras-commits
mailing list