Subject: Xen3/PAE problems with domainU
To: None <port-xen@netbsd.org>
From: Todd Vierling <tv@duh.org>
List: port-i386
Date: 08/04/2006 21:00:31
This is Bcc:'d to port-i386 as it also concerns PAE, which may be required
to get things working correctly.  The main thread should remain on port-xen.

So I am in contact with the proprietor of a hosting company that is offering
Xen-based hosting, and is moving to Xen 3.  We had a pretty well working
NetBSD domU setup for Xen2.  But for PAE and other things, this host has to
move to Xen3.

I got the 20060803 build of the Xen3 kernels, and the host ran into this
when creating the domain.  The host has Linux kernel 2.6.16 compiled
directly from xensource + distro sources, and has xentools 3.0.2-2
installed.

==========

[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:178) XendDomainInfo.create(['vm', ['name', 'xen30'], ['memory', 96], ['vcpus', 1], ['image', ['linux', ['kernel', '/boot/netbsd-XEN3_DOMU'], ['root', '/dev/xbd0a']]], ['device', ['vbd', ['uname', 'phy:/dev/xen/xen30-disk'], ['dev', 'hda1'], ['mode', 'w']]], ['device', ['vbd', ['uname', 'phy:/dev/xen/xen30-swap'], ['dev', 'hda2'], ['mode', 'w']]]])
[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:284) parseConfig: config is ['vm', ['name', 'xen30'], ['memory', 96], ['vcpus', 1], ['image', ['linux', ['kernel', '/boot/netbsd-XEN3_DOMU'], ['root', '/dev/xbd0a']]], ['device', ['vbd', ['uname', 'phy:/dev/xen/xen30-disk'], ['dev', 'hda1'], ['mode', 'w']]], ['device', ['vbd', ['uname', 'phy:/dev/xen/xen30-swap'], ['dev', 'hda2'], ['mode', 'w']]]]
[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:380) parseConfig: result is {'ssidref': None, 'uuid': None, 'on_crash': None, 'on_reboot': None, 'image': ['linux', ['kernel', '/boot/netbsd-XEN3_DOMU'], ['root', '/dev/xbd0a']], 'on_poweroff': None, 'cpus': None, 'name': 'xen30', 'backend': [], 'vcpus': 1, 'cpu_weight': None, 'vcpu_avail': None, 'memory': 96, 'device': [('vbd', ['vbd', ['uname', 'phy:/dev/xen/xen30-disk'], ['dev', 'hda1'], ['mode', 'w']]), ('vbd', ['vbd', ['uname', 'phy:/dev/xen/xen30-swap'], ['dev', 'hda2'], ['mode', 'w']])], 'bootloader': None, 'cpu': None, 'maxmem': None}
[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:1164) XendDomainInfo.construct: None 0
[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:1196) XendDomainInfo.initDomain: 32 1.0
[2006-08-04 17:27:10 xend] DEBUG (balloon:126) Balloon: free 2842; need 97; done.
[2006-08-04 17:27:10 xend] INFO (image:135) buildDomain os=linux dom=32 vcpus=1
[2006-08-04 17:27:10 xend] DEBUG (image:173) dom            = 32
[2006-08-04 17:27:10 xend] DEBUG (image:174) image          = /boot/netbsd-XEN3_DOMU
[2006-08-04 17:27:10 xend] DEBUG (image:175) store_evtchn   = 1
[2006-08-04 17:27:10 xend] DEBUG (image:176) console_evtchn = 2
[2006-08-04 17:27:10 xend] DEBUG (image:177) cmdline        =  root=/dev/xbd0a
[2006-08-04 17:27:10 xend] DEBUG (image:178) ramdisk        =
[2006-08-04 17:27:10 xend] DEBUG (image:179) vcpus          = 1
[2006-08-04 17:27:10 xend] DEBUG (image:180) features       =
[2006-08-04 17:27:10 xend.XendDomainInfo] ERROR (XendDomainInfo:190) Domain construction failed
Traceback (most recent call last):
  File "/usr/lib/python/xen/xend/XendDomainInfo.py", line 183, in create
    vm.initDomain()
  File "/usr/lib/python/xen/xend/XendDomainInfo.py", line 1225, in initDomain
    channel_details = self.image.createImage()
  File "/usr/lib/python/xen/xend/image.py", line 118, in createImage
    return self.createDomain()
  File "/usr/lib/python/xen/xend/image.py", line 137, in createDomain
    result = self.buildDomain()
  File "/usr/lib/python/xen/xend/image.py", line 188, in buildDomain
    features       = self.features)
error: (22, 'Invalid argument')
[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:1327) XendDomainInfo.destroy: domid=32
[2006-08-04 17:27:10 xend.XendDomainInfo] DEBUG (XendDomainInfo:1335) XendDomainInfo.destroyDomain(32)
[2006-08-04 17:27:10 xend] ERROR (xmlrpclib2:124) (22, 'Invalid argument')
Traceback (most recent call last):
  File "/usr/lib/python/xen/util/xmlrpclib2.py", line 103, in _marshaled_dispatch
    response = self._dispatch(method, params)
  File "/usr/lib/python2.3/SimpleXMLRPCServer.py", line 407, in _dispatch
    return func(*params)
  File "/usr/lib/python/xen/xend/server/XMLRPCServer.py", line 63, in domain_create
    info = XendDomain.instance().domain_create(config)
  File "/usr/lib/python/xen/xend/XendDomain.py", line 227, in domain_create
    dominfo = XendDomainInfo.create(config)
  File "/usr/lib/python/xen/xend/XendDomainInfo.py", line 183, in create
    vm.initDomain()
  File "/usr/lib/python/xen/xend/XendDomainInfo.py", line 1225, in initDomain
    channel_details = self.image.createImage()
  File "/usr/lib/python/xen/xend/image.py", line 118, in createImage
    return self.createDomain()
  File "/usr/lib/python/xen/xend/image.py", line 137, in createDomain
    result = self.buildDomain()
  File "/usr/lib/python/xen/xend/image.py", line 188, in buildDomain
    features       = self.features)
error: (22, 'Invalid argument')

==========

I found the following very vague post about a problem just like this when
the dom0 has PAE enabled but the domU doesn't:

    http://lists.xensource.com/archives/html/xen-users/2006-06/msg00077.html

Is there any PAE support in work for i386 (not just amd64)?  Looks like the
Xen folks aren't going to emulate non-PAE domU environments on a PAE dom0
anytime soon, so this has become a requirement.

(As to the host in question, the proprietor has asked me not to mention its
name until the NetBSD configuration is actually working and they're ready to
advertise that fact.  Let me just say that this would be a *very* cost
effective way to get a dedicated-like NetBSD hosting plan, and well worth
whatever effort is needed to get it working.  ;)

-- 
-- Todd Vierling <tv@duh.org> <tv@pobox.com> <todd@vierling.name>