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