Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-2-0]: src/sys/arch/xen/i386 Pull up revision 1.7 (requested by tl...



details:   https://anonhg.NetBSD.org/src/rev/768296fc6a5c
branches:  netbsd-2-0
changeset: 564654:768296fc6a5c
user:      jdc <jdc%NetBSD.org@localhost>
date:      Fri Jan 07 15:54:20 2005 +0000

description:
Pull up revision 1.7 (requested by tls in ticket #1043).

HYPERVISOR_yield is one of the hypervisor calls that's "overloaded"; it
does different things depending what's in %ebx.

We weren't setting %ebx here *at all*; so we did not get SCHEDOP_yield,
which was what was wanted; so unpredictable things happened, notably
immediate return to the NetBSD idle loop, in other words spinning on CPU.
Definitely not cool!

Michael Kukat caught this one and suggested this fix on port-xen.

diffstat:

 sys/arch/xen/i386/locore.S |  4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diffs (25 lines):

diff -r c498e7b1a437 -r 768296fc6a5c sys/arch/xen/i386/locore.S
--- a/sys/arch/xen/i386/locore.S        Fri Jan 07 15:26:53 2005 +0000
+++ b/sys/arch/xen/i386/locore.S        Fri Jan 07 15:54:20 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.S,v 1.2.2.2 2004/09/23 02:41:01 jmc Exp $       */
+/*     $NetBSD: locore.S,v 1.2.2.3 2005/01/07 15:54:20 jdc Exp $       */
 /*     NetBSD: locore.S,v 1.26 2004/04/12 13:17:46 yamt Exp    */
 
 /*-
@@ -238,6 +238,7 @@
 
 #include <machine/xen.h>
 #define __HYPERVISOR_yield                8
+#define __SCHEDOP_yield                           0
 
        .space 512
 tmpstk:
@@ -1610,6 +1611,7 @@
        jmp     idle_start
 4:
        movl    $__HYPERVISOR_yield,%eax
+       movl    $__SCHEDOP_yield,%ebx
        TRAP_INSTR
 NENTRY(mpidle)
 idle_start:    



Home | Main Index | Thread Index | Old Index