[oe-commits] org.oe.dev linux omap2 git: add patch to surpress spurious timer reprogramming

koen commit oe at amethyst.openembedded.net
Fri Jun 20 12:32:21 UTC 2008


linux omap2 git: add patch to surpress spurious timer reprogramming

Author: koen at openembedded.org
Branch: org.openembedded.dev
Revision: c06692d78b5f67ad833d158b77fdde9b4b404dcd
ViewMTN: http://monotone.openembedded.org/revision/info/c06692d78b5f67ad833d158b77fdde9b4b404dcd
Files:
1
packages/linux/linux-omap2-git/beagleboard/timer-suppression.patch
packages/linux/linux-omap2_git.bb
Diffs:

#
# mt diff -rcbc5b6db5b1fb164fd199b658d21cd683bdb71b6 -rc06692d78b5f67ad833d158b77fdde9b4b404dcd
#
#
#
# add_file "packages/linux/linux-omap2-git/beagleboard/timer-suppression.patch"
#  content [f804af7d04bcc598a9d1e5245cf3a4a30f9e9b34]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [c33fbda5fd84a9ff6764a69968f642ba05102fc4]
#    to [578677c5bf9ddbd4891e17732466d071c86b1090]
#
============================================================
--- packages/linux/linux-omap2-git/beagleboard/timer-suppression.patch	f804af7d04bcc598a9d1e5245cf3a4a30f9e9b34
+++ packages/linux/linux-omap2-git/beagleboard/timer-suppression.patch	f804af7d04bcc598a9d1e5245cf3a4a30f9e9b34
@@ -0,0 +1,43 @@
+diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
+index b854a89..26f5569 100644
+--- a/kernel/time/tick-sched.c
++++ b/kernel/time/tick-sched.c
+@@ -253,6 +253,16 @@ void tick_nohz_stop_sched_tick(void)
+ 
+ 	/* Schedule the tick, if we are at least one jiffie off */
+ 	if ((long)delta_jiffies >= 1) {
++		/*
++		 * calculate the expiry time for the next timer wheel
++		 * timer
++		 */
++		expires = ktime_add_ns(last_update, tick_period.tv64 *
++					delta_jiffies);
++
++		/* Skip reprogram of event if its not changed */
++		if(ts->tick_stopped && ktime_equal(expires, dev->next_event))
++		goto out2;
+ 
+ 		if (delta_jiffies > 1)
+ 			cpu_set(cpu, nohz_cpu_mask);
+@@ -304,12 +314,7 @@ void tick_nohz_stop_sched_tick(void)
+ 			goto out;
+ 		}
+ 
+-		/*
+-		 * calculate the expiry time for the next timer wheel
+-		 * timer
+-		 */
+-		expires = ktime_add_ns(last_update, tick_period.tv64 *
+-				       delta_jiffies);
++		/* Mark expiries */
+ 		ts->idle_expires = expires;
+ 
+ 		if (ts->nohz_mode == NOHZ_MODE_HIGHRES) {
+@@ -328,6 +333,7 @@ void tick_nohz_stop_sched_tick(void)
+ 		tick_do_update_jiffies64(ktime_get());
+ 		cpu_clear(cpu, nohz_cpu_mask);
+ 	}
++out2:	
+ 	raise_softirq_irqoff(TIMER_SOFTIRQ);
+ out:
+ 	ts->next_jiffies = next_jiffies;
============================================================
--- packages/linux/linux-omap2_git.bb	c33fbda5fd84a9ff6764a69968f642ba05102fc4
+++ packages/linux/linux-omap2_git.bb	578677c5bf9ddbd4891e17732466d071c86b1090
@@ -5,7 +5,7 @@ PV = "2.6.25+2.6.26-rc6+${PR}+git${SRCRE
 SRCREV = "5b97d3ec6732c87741b2fc04f2956f097a458818"
 
 PV = "2.6.25+2.6.26-rc6+${PR}+git${SRCREV}"
-PR = "r25"
+PR = "r26"
 
 
 SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
@@ -19,6 +19,7 @@ SRC_URI_append_beagleboard = " file://no
 	       file://0003-ARM-OMAP-SmartReflex-driver.patch;patch=1 \
            file://0001-omap3-cpuidle.patch;patch=1 \ 
            file://0002-omap3-cpuidle.patch;patch=1 \
+           file://timer-suppression.patch;patch=1 \
 "
 
 SRC_URI_append_omap3evm = " file://no-harry-potter.diff;patch=1 \






More information about the Openembedded-commits mailing list