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/
Home Products Support Community News


[Xen-devel] NetBSD port and a couple of remarks

To: xen-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] NetBSD port and a couple of remarks
From: Christian Limpach <chris@xxxxxx>
Date: Tue, 27 Jan 2004 21:59:51 +0100
Delivery-date: Wed, 28 Jan 2004 08:41:41 +0000
Envelope-to: steven.hand@xxxxxxxxxxxx
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
User-agent: Internet Messaging Program (IMP) 3.2.2

I have made a NetBSD-current kernel which boots on Xen.  It still has some
problems but it's good enough to boot multi-user and allows logins.

While working on this, I noticed a few problems and I'm wondering if these
are corrected in Xen versions >1.1:

- the count for the initial l2 pagetable seems to be wrong:  The page is
pin'ed and it's used as a l2 pagetable but it's count is 0x40000000.  If
you switch to another table, you can't unpin in and if you unpin it first,
it will stay typed as a l2 pagetable.  Additionally, if you unpin it, you
can make it writable then while it's still in use...

- Xen completely locks up if my idle loop doesn't call the yield function,
but consists of:
* check NetBSD runqueues
* check for missed events
* loop
Not sure yet, why that is...  It only happens occasionally but I never
managed to complete a boot until I added the yield call.  I'm using the
hypervisor callback code with critical region fixup from mini-os which I
think is identical to the one used in Linux.

I've implemented a network driver and a console driver (output only). 
There's no support for dom0 operations yet and there's no driver for
harddisks yet.  Also a couple minor things like cpu speed detection and
setting the clock are missing.  Right now there's also still some problems
with pagetables where either hypervisor calls are used to update inactive
pagetables or vice versa to a lesser extent.  I think that will be solved
once I use pinning.

I hope to commit this to the NetBSD tree eventually.  Or I'll make patches
available after some cleaning up.

Finally, if someone could get me a xen-1.2 and/or xen-unstable tree out of
bitkeeper, that would be much appreciated.

Christian Limpach <chris@xxxxxx>

[11] text 0xc0100000 data 0xc0276c24 bss 0xc02808c4 end 0xc02c163c esym
[11] NetBSD 1.6ZH (XENO) #704: Tue Jan 27 18:52:02 CET 2004
[11]    chris@marble:/devel/netbsd/src-current-xen/compile/XENO
[11] start_info:   0xc02bbd80
[11]   nr_pages:   4000
[11]   shared_inf: 0xc0300000 (was 0xc10a0000)
[11]   pt_base:    0xc109f000
[11]   mod_start:  0xc0281000
[11]   mod_len:    196924
[11]   net_rings: 
[11]  264000
[11]   blk_ring:   0x258000
[11]   dom_id:     11
[11]   flags:      0x0
[11]   cmd_line:  
bootdev=xennet0 nfsroot=marble:/netboot/qube 
[11] NetBSD Xen console attached.
Loaded initial symtab at 0xc02c1640, strtab at 0xc02db47c, # entries 6576
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.
NetBSD 1.6ZH (XENO) #704: Tue Jan 27 18:52:02 CET 2004
total memory = 13948 KB
avail memory = 13576 KB
[11] Xen reported: 501.148 MHz processor.
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Celeron (Mendocino) (686-class), 20.00 MHz, id 0x665
cpu0: features 183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 183fbff<PGE,MCA,CMOV,PAT,PSE36,MMX>
cpu0: features 183fbff<FXSR>
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu0: L2 cache 128 KB 32b/line 4-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: 8 page colors
xenc0 at mainbus0: Xen Virtual Console Driver
xennet0 at mainbus0: Xen Virtual Network Driver
xennet0: MAC address aa:00:00:24:1c:9b
npx0 at mainbus0: using exception 16
IPsec: Initialized Security Association Processing.
boot device: xennet0
root on xennet0
mountroot: trying nfs...
nfs_boot: trying static
nfs_boot: client_addr=
nfs_boot: gateway=
nfs_boot: netmask=
nfs_boot: server=
nfs_boot: root=marble:/netboot/qube
root on marble:/netboot/qube
root time: 0x4016a704
root file system type: nfs
init: copying out path `/sbin/init' 11
Thu Jan  1 00:01:05 UTC 1970
Starting file system checks:
Setting tty flags.
Setting sysctl variables:
Starting network.
Hostname: qube
IPv6 mode: host
Configuring network interfaces:
Building databases...
Starting syslogd.
Mounting all filesystems...
Creating a.out runtime link editor directory cache.
Checking quotas:
/etc/rc: WARNING: No swap space configured!
Starting virecover.
Starting local daemons:
Starting sshd.
Starting inetd.
Thu Jan  1 00:01:16 UTC 1970

NetBSD/i386 (qube) (console)


The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
Xen-devel mailing list