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-devel

[Xen-devel] [PATCH] getting mini-os to compile again

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] getting mini-os to compile again
From: Simon Kagstrom <simon.kagstrom@xxxxxx>
Date: Tue, 25 Oct 2005 11:39:06 +0200
Delivery-date: Tue, 25 Oct 2005 09:36:23 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
Hello!

I've created a patch to get the mini-os to compile in Xen-unstable. The patch
is pretty big, but this is mostly because I've replaced hypervisor.h with the
hypercalls.h header file from Linux (which seems easier to maintain
anyway). I've ignored X86_64.

I also had to disable some code in mini-os/xenbus/xenbus_xs.c since
XS_WATCH_ACK is no longer available, I'm not sure what the proper fix would
be.

With the patch, the mini-os is possible to compile, but unfortunately crashes
during startup. Specifically, __sti() called from kernel.c:105 causes a page
fault in os.h:83

#define __sti()                                                    \
do {                                                               \
   vcpu_info_t *_vcpu;                                             \
   barrier();                                                      \
   _vcpu = &HYPERVISOR_shared_info->vcpu_data[smp_processor_id()]; \
   _vcpu->evtchn_upcall_mask = 0;                                  \
   barrier(); /* unmask then check (avoid races) */                \
   if ( unlikely(_vcpu->evtchn_upcall_pending) )                   \
      force_evtchn_callback();                                     \
} while (0)

The problem is the access _vcpu->evtchn_upcall_mask = 0;. (smp_processor_id is
defined to 0).

// Simon

Attachment: mini-os-compile_unstable.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>