WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Replace my previous patch with equivalent

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Replace my previous patch with equivalent fix from linux-2.6.17.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 30 Jun 2006 15:40:34 +0000
Delivery-date: Fri, 30 Jun 2006 08:44:55 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User ack@xxxxxxxxxxxxxxxxxxxxx
# Node ID 18f8dde91fbd46af9eb38352ed64e48d429f95d8
# Parent  a67c1bcb5522de11bb367b5d694e66a3bea672e3
Replace my previous patch with equivalent fix from linux-2.6.17.
Might as well stay as close to that as we can...
Signed-off-by: Emmanuel Ackaouy <ack@xxxxxxxxxxxxx>
---
 patches/linux-2.6.16.13/fix-hz-suspend.patch |   15 +++------------
 1 files changed, 3 insertions(+), 12 deletions(-)

diff -r a67c1bcb5522 -r 18f8dde91fbd 
patches/linux-2.6.16.13/fix-hz-suspend.patch
--- a/patches/linux-2.6.16.13/fix-hz-suspend.patch      Thu Jun 29 14:30:41 
2006 +0100
+++ b/patches/linux-2.6.16.13/fix-hz-suspend.patch      Thu Jun 29 14:39:07 
2006 +0100
@@ -1,22 +1,26 @@ diff -pruN ../pristine-linux-2.6.16.13/k
 diff -pruN ../pristine-linux-2.6.16.13/kernel/timer.c ./kernel/timer.c
---- ../pristine-linux-2.6.16.13/kernel/timer.c 2006-05-02 14:38:44.000000000 
-0700
-+++ ./kernel/timer.c   2006-06-28 09:57:51.000000000 -0700
-@@ -555,7 +555,17 @@ found:
+--- ../pristine-linux-2.6.16.13/kernel/timer.c 2006-05-02 22:38:44.000000000 
+0100
++++ ./kernel/timer.c   2006-06-29 14:34:12.788957720 +0100
+@@ -555,6 +555,22 @@ found:
        }
        spin_unlock(&base->t_base.lock);
  
--      if (time_before(hr_expires, expires))
 +      /*
-+       * If timers are pending, "expires" will be in the recent past
-+       * of "jiffies". If there are no hr_timers registered, "hr_expires"
-+       * will be "jiffies + MAX_JIFFY_OFFSET"; this is *just* short of being
-+       * considered to be before "jiffies". This makes it very likely that
-+       * "hr_expires" *will* be considered to be before "expires".
-+       * So we must check when there are pending timers (expires <= jiffies)
-+       * to ensure that we don't accidently tell the caller that there is
-+       * nothing scheduled until half an epoch (MAX_JIFFY_OFFSET)!
++       * It can happen that other CPUs service timer IRQs and increment
++       * jiffies, but we have not yet got a local timer tick to process
++       * the timer wheels.  In that case, the expiry time can be before
++       * jiffies, but since the high-resolution timer here is relative to
++       * jiffies, the default expression when high-resolution timers are
++       * not active,
++       *
++       *   time_before(MAX_JIFFY_OFFSET + jiffies, expires)
++       *
++       * would falsely evaluate to true.  If that is the case, just
++       * return jiffies so that we can immediately fire the local timer
 +       */
-+      if (time_before(jiffies, expires) && time_before(hr_expires, expires))
++      if (time_before(expires, jiffies))
++              return jiffies;
++
+       if (time_before(hr_expires, expires))
                return hr_expires;
  
-       return expires;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Replace my previous patch with equivalent fix from linux-2.6.17., Xen patchbot-unstable <=