Subject: Re: bouyer-xenamd64 merged
To: Christoph Egger <Christoph_Egger@gmx.de>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 11/23/2007 13:28:55
On Fri, Nov 23, 2007 at 09:53:42AM +0100, Christoph Egger wrote:
> On Thursday 22 November 2007 22:56:52 Manuel Bouyer wrote:
> > Hi,
> > as you may have noticed, I've merged the bouyer-xenamd64 to HEAD.
> 
> Yes, I saw your commits. Great work!
> 
> > The next NetBSD-daily builds should include amd64 Xen kernels; I've also put
> > my own build at ftp://asim.lip6.fr/outgoing/bouyer/rel/
> >
> > The system is stable enough to build kernel and packages on a dom0, or
> > a domU running on a linux or NetBSD dom0, on a 3.1.0 hypervisor.
> > The only known bug is a panic when dhclient exits in the INSTALL kernel.
> > I'm sure other bugs will show up :)
> 
> IMO, the code needs a lot of cleanup. Personally I don't like the tons of
> 
> #ifdef XEN
> ...
> #else
> ...
> #endif
> 
> blocks. A few of them are ok, but they are too numerous now.

I also don't want to have separate files for Xen vs non-Xen, it has shown to
be wrong for i386. There is a few place where it can be avoided (e.g.
by using pmap_pte_set()), but not that much. Suggestions are of course welcome.
> 
> BTW: Do you mind to remove the advertisement clause in your license test, 
> please?

I'll look at it.

> 
> > I've also fixed the xentools3 and xenkernel3 packages to build on amd64, so
> > installing a NetBSD dom0 is amost the same as on i386. The difficulty comes
> > from grub, which is definitively not 64bit-friendly (there are 32bits
> > inline assembly all over the place, cast from pointers to int, etc ...)
> > I've been able to get it running using the i386 3.1 binary package and
> > compat-netbsd32-3.1.
> 
> hmm... If you had tried out Xen-unstable, then you would have noticed I 
> already did that work. So you did double work... Pity.

Most Xen installations out there are 3.1.0 (or 3.1.0+patches) and most linux
distribution provide kernels for Xen 3.1.0. So NetBSD has to run and
provide Xen 3.1.0 anyway. Also I don't want separate Xen packages for i386
and amd64.

> 
> > Also, xentools3-hvm doens't build yet.
> 
> Of course not! It won't until it is possible to build NetBSD/i386 binaries
> on NetBSD/amd64 almost by passing -m32 to gcc. The problem is not gcc here,
> it is the lack of i386 headers and libs on NetBSD/amd64.

Yes of course. But that won't be easily solved, so we'll probably have to use
hacks in the package instead.

> > For now, the symbol table is not properly loaded neither in dom0 or domU;
> > so ddb will only show the addresses and no function names. Better keep
> > around netbsd.gdb and the source tree if you want to debug it :)
> 
> This is a bug in NetBSD/Xen, not in Xen. You need to pass "BSDSYMTAB=yes"
> and not "BSDSYMTAB"  in locore.S.

locore.S has BSD_SYMTAB, and AFAIK the Xen code should handle it in
compat code. Anyway I tried changing it to BSD_SYMTAB=yes and it didn't
help, so there's a problem somewhere else.

-- 
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
     NetBSD: 26 ans d'experience feront toujours la difference
--