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] Merge freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/x

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Merge freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Fri, 15 Apr 2005 22:32:57 +0000
Delivery-date: Fri, 15 Apr 2005 23:03:40 +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 Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1306, 2005/04/15 23:32:57+01:00, iap10@xxxxxxxxxxxxxxxxxxxxx

        Merge 
freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk
        into freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-unstable.bk



 linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h |   11 +---
 tools/misc/xend                                  |   58 +++++++++++++++++++++++
 tools/xentrace/Makefile                          |    1 
 xen/Makefile                                     |    8 +--
 4 files changed, 67 insertions(+), 11 deletions(-)


diff -Nru a/linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h 
b/linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h
--- a/linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h  2005-04-15 19:03:54 
-04:00
+++ b/linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h  2005-04-15 19:03:54 
-04:00
@@ -36,14 +36,12 @@
 #include <asm/ptrace.h>
 #include <asm/synch_bitops.h>
 #include <asm-xen/xen-public/event_channel.h>
+#include <linux/smp.h>
 
 /*
  * LOW-LEVEL DEFINITIONS
  */
 
-/* Force a proper event-channel callback from Xen. */
-void force_evtchn_callback(void);
-
 /* Entry point for notifications into Linux subsystems. */
 asmlinkage void evtchn_do_upcall(struct pt_regs *regs);
 
@@ -59,6 +57,7 @@
 static inline void unmask_evtchn(int port)
 {
     shared_info_t *s = HYPERVISOR_shared_info;
+    vcpu_info_t *vcpu_info = &s->vcpu_data[smp_processor_id()];
 
     synch_clear_bit(port, &s->evtchn_mask[0]);
 
@@ -67,10 +66,10 @@
      * a real IO-APIC we 'lose the interrupt edge' if the channel is masked.
      */
     if (  synch_test_bit        (port,    &s->evtchn_pending[0]) && 
-         !synch_test_and_set_bit(port>>5, &s->evtchn_pending_sel) )
+         !synch_test_and_set_bit(port>>5, &vcpu_info->evtchn_pending_sel) )
     {
-        s->vcpu_data[0].evtchn_upcall_pending = 1;
-        if ( !s->vcpu_data[0].evtchn_upcall_mask )
+        vcpu_info->evtchn_upcall_pending = 1;
+        if ( !vcpu_info->evtchn_upcall_mask )
             force_evtchn_callback();
     }
 }
diff -Nru a/tools/misc/xend b/tools/misc/xend
--- a/tools/misc/xend   2005-04-15 19:03:54 -04:00
+++ b/tools/misc/xend   2005-04-15 19:03:54 -04:00
@@ -21,6 +21,14 @@
 """
 import os
 import sys
+import socket
+import signal
+import time
+
+XCS_PATH    = "/var/lib/xen/xcs_socket"
+XCS_EXEC    = "/usr/sbin/xcs"
+XCS_PIDFILE = "/var/run/xcs.pid"
+XCS_ARGS    = (XCS_EXEC, "-p", XCS_PIDFILE)
 
 # add fallback path for non-native python path installs if needed
 sys.path.append('/usr/lib/python')
@@ -89,7 +97,51 @@
         msg("Xend must be run as root.")
         hline()
         raise CheckError("invalid user")
+
+def xcs_running():
+    """ See if the control switch is running.
+    """        
+    s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+    try:
+        s.connect( (XCS_PATH) )
+        s.close()
+    except:
+        try:
+            os.remove(XCS_PIDFILE)
+        except:
+            pass
+       return 0
+    return 1
     
+def start_xcs():
+    if (not xcs_running()):
+        if os.fork():
+            time.sleep(0.1) # let xcs start
+        else:
+            if not os.path.isdir(os.path.dirname(XCS_PATH)):
+                os.makedirs(os.path.dirname(XCS_PATH))
+            try:
+                os.execvp(XCS_EXEC, XCS_ARGS)
+            except:
+                hline()
+                msg("Tried to start xcs, but failed. Is it installed?")
+                hline()
+                raise CheckError("couldn't start xcs")
+        if (not xcs_running()):
+            hline()
+            msg("Failed to start the control interface switch.")
+            hline()
+            raise CheckError("xcs not running")
+            
+def stop_xcs():
+    try:
+       xcs_pidfile = open(XCS_PIDFILE)
+        xcs_pid = int(xcs_pidfile.read().strip())
+        os.kill(xcs_pid, signal.SIGTERM)
+        xcs_pidfile.close()
+    except:
+       return    
+            
 def main():
     try:
         check_logging()
@@ -97,6 +149,7 @@
         check_user()
     except CheckError:
         sys.exit(1)
+    
     daemon = SrvDaemon.instance()
     if not sys.argv[1:]:
         print 'usage: %s {start|stop|restart}' % sys.argv[0]
@@ -104,12 +157,17 @@
         pid, status = os.wait()
         return status >> 8
     elif sys.argv[1] == 'start':
+        start_xcs()
         return daemon.start()
     elif sys.argv[1] == 'trace_start':
+        start_xcs()
         return daemon.start(trace=1)
     elif sys.argv[1] == 'stop':
+        stop_xcs()
         return daemon.stop()
     elif sys.argv[1] == 'restart':
+        stop_xcs()
+        start_xcs()
         return daemon.stop() or daemon.start()
     elif sys.argv[1] == 'status':
         return daemon.status()
diff -Nru a/tools/xentrace/Makefile b/tools/xentrace/Makefile
--- a/tools/xentrace/Makefile   2005-04-15 19:03:54 -04:00
+++ b/tools/xentrace/Makefile   2005-04-15 19:03:54 -04:00
@@ -6,7 +6,6 @@
 XEN_ROOT=../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-CC       = gcc
 CFLAGS  += -Wall -Werror -O3
 
 CFLAGS  += -I $(XEN_XC)
diff -Nru a/xen/Makefile b/xen/Makefile
--- a/xen/Makefile      2005-04-15 19:03:54 -04:00
+++ b/xen/Makefile      2005-04-15 19:03:54 -04:00
@@ -8,9 +8,9 @@
 
 # This is the correct place to edit the build version.
 # All other places this is stored (eg. compile.h) should be autogenerated.
-export XEN_VERSION       = 2
+export XEN_VERSION       = 3
 export XEN_SUBVERSION    = 0
-export XEN_EXTRAVERSION  = ""
+export XEN_EXTRAVERSION  = "-devel"
 
 export BASEDIR          := $(CURDIR)
 
@@ -79,9 +79,9 @@
        @mv -f $@.new $@
 
 tools/figlet/figlet: tools/figlet/figlet.o
-       $(CC) -o $@ $<
+       $(HOSTCC) -o $@ $<
 tools/figlet/figlet.o: tools/figlet/figlet.c
-       $(CC) -o $@ -c $<
+       $(HOSTCC) -o $@ -c $<
 
 include/xen/banner.h: tools/figlet/figlet tools/figlet/xen.flf
        tools/figlet/figlet -d tools/figlet Xen 
$(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION) > $@.new

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Merge freefall.cl.cam.ac.uk:/auto/groups/xeno-xenod/BK/xen-2.0-testing.bk, BitKeeper Bot <=