Subject: progress on xen3 HVM support
To: None <port-xen@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 10/15/2006 23:55:11
--yrj/dFKFPuw6o+aM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,
attached is a snapshot of a xentools30-vmx package, which should install on top
of xentools30 the necessary bits for starting HVM guests. This is based on
patches sent to me by Pierrick Brossin. It's good enough to start a linux
bootable CD up to the X graphical installer (I didn't try to install it yet).
It needs a very recent current kernel.

Known bugs
- as is, qemu-dm won't start. I renamed it and remplaced with a csh script
  which does
#!/bin/csh
unlimit
setenv PTHREAD_DIAGASSERT A
/usr/pkg/libexec/qemu-dm.bin $*

  yes, it has pthread bugs :(
- the compiled hvmloader crashes early. Using the hvmloader provided in
  xen-3.0.2-2-install-x86_32.tgz works.
- It can't boot a NetBSD CD; it crases in the boot loaded on an unhandled
  instruction. I fear this is a limitation of Xen's 16 bit emulation.


Now, xen-3.0.3 should be released this week; so I probably won't do much more
work on this, and update you Xen suppport to 3.0.3 instead. Maybe this'll
fix the issue with the NetBSD boot loader :)

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--

--yrj/dFKFPuw6o+aM
Content-Type: application/x-tar-gz
Content-Disposition: attachment; filename="xentools30-vmx.tgz"
Content-Transfer-Encoding: base64

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
YI3Sgyz4gxss9LAPy6Tmg78R+Q0tv8R5Bc09L7tiZsGzDGFiMRYeO9WF8L4DBkVrUCfHEwNW
S2gOOQYSRCljpMMYHRlOgYOwUwwDK6sQpTaKkvfFFuuLYX1HYMnUyZHJjMD4kKP15bmoqDm1
Cj1iCDpRi3XHRHOH1V12WIWX1hCrDJYI31opwxOptLTcx8IBF5vmEdvzr//Wr/9LT7YB8MD6
v1IWV6z/ay/+H8/xJM5/os3+zUc/Pfk2AKgfbWyFuwArdVSRQ23eKqi8bBW8bBW8bBW8bBX8
DbYKAPDyg3JxeXTWPvaN+vi2wToIbthSe0pFPeKOaefCIfCu3fsfcggrxl8LoRlLL37RqGqj
ts4KczNiZymIA1+WfRa2+JqmxQxsviA0bXxdyxS2giaWgvVlhY3Z6LoQO1kJEw8SaUgdLAsP
NrKIp7nCyvqfh+yL4r8v938j3M/fzz31MWcW95IMKhtkQL3VGS0bRBGBWpJIgp8IOw/Jqck5
jMsKFxtYKX0BbJO4vL5fQGAWdy/h8wKG05KEqhskNLeGeJwf5WiDiKJgm2X0kFj4AmDmGAvT
nrtgA4ScHj7AKjP+I8OA8Vdbzd+c1rSaKZa3xEmS2D738rBoJ/8umkG3t08/LtG8t5pmnMhG
d6tpZnkbaV5aPsIcZ7rGdy0iY1zQpWTIBONhP7HWWqMb/5h115/lSaz/6IWkT13HA/c/y5Is
B/c/1/Dcd1Eq1f5s8Z9/0/ufD9HLA0ceXwWmhYk5pKuroW17xfFiSmMzHUzGXdDir8Z0nten
ArunFwF/jd5QqzrrcrAi21qXq6trc4z1OXltvC7TsPJXww2Zc3dt5vocb13OyFybY6/NWSuq
kZMfruUaMrW1wsLMtSIZr61wPF+XY64VhrlWGP+7lrzJ2jKTxbqc6fXaHFxQmrDaWwdgTdbn
bJCwtbbJZmsRztZyNvPyw7WCd9YK3l1blbtWVN7apvcc4VA3HWdKosM7keb/XI1jde5S6n/x
XPpXfBLzP27EmNbIftI6Htj/lcWqxOb/ilgrVej8X66W/2Tz/990/zfY/PVb/lsC/IT+m6ZE
D4nMlwpiQc7LedfRCt7Vv7OkQapiWa5K0nCkVSuaURJ1raxVquW9irGv6xq6/elitbQ/FHrn
J1JVXItnTxoaYllTa4ZcquzVyupQ3N8XyyVVq+j7MuCrGmoJOpHQx7Nc12Ep75dq5b0qGd55
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
8rw8L8/L8/L84/8DnyMIsQDwAAA=

--yrj/dFKFPuw6o+aM--