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] x86-64 linux: properly exit idle mode from evtchn_do_upc

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] x86-64 linux: properly exit idle mode from evtchn_do_upcall()
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 08 Feb 2006 17:10:08 +0000
Delivery-date: Wed, 08 Feb 2006 17:22:15 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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 cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID a67085a3e65d7a8ff8afaa2fbe6b315027b827fb
# Parent  1a2e7cd58ca0df9a9c10631e60474f0dc0dfc659
x86-64 linux: properly exit idle mode from evtchn_do_upcall()
Add a call to exit_idle() when evtchn_do_upcall() calls
evtchn_device_upcall() instead of do_IRQ().

From: Jan Beulich <JBeulich@xxxxxxxxxx>
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>

diff -r 1a2e7cd58ca0 -r a67085a3e65d 
linux-2.6-xen-sparse/drivers/xen/core/evtchn.c
--- a/linux-2.6-xen-sparse/drivers/xen/core/evtchn.c    Wed Feb  8 15:31:38 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/core/evtchn.c    Wed Feb  8 15:36:49 2006
@@ -123,8 +123,10 @@
 #ifdef CONFIG_X86
 extern fastcall unsigned int do_IRQ(struct pt_regs *regs);
 #if defined (__i386__)
+static inline void exit_idle(void) {}
 #define IRQ_REG orig_eax
 #elif defined (__x86_64__)
+#include <asm/idle.h>
 #define IRQ_REG orig_rax
 #endif
 #define do_IRQ(irq, regs) do {                 \
@@ -170,8 +172,10 @@
                        port = (l1i * BITS_PER_LONG) + l2i;
                        if ((irq = evtchn_to_irq[port]) != -1)
                                do_IRQ(irq, regs);
-                       else
+                       else {
+                               exit_idle();
                                evtchn_device_upcall(port);
+                       }
                }
        }
 }

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] x86-64 linux: properly exit idle mode from evtchn_do_upcall(), Xen patchbot -unstable <=