Hello,

I'm wondering if anyone out there is doing tap:aio disk devices on a Xen HVM vm with any success.  Please let me know if you are, and perhaps your version info and a config file snippet.

I've posted this to the xen-users list, and what I'm trying to do seems to be correct, works on Ubuntu, Debian, and XenSource; but it doesn't work on CentOS.
Here's the snippet from my config.  More info in the message below:
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
acpi = 0
apic = 0
device_model = "/usr/lib64/xen/bin/qemu-dm"
disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,hda,w", "tap:aio:/xen/iso/win2003r2_std_32bit_disk1of2.iso,hdc
:cdrom,r" ]



---------- Forwarded message ----------
From: - <debaan@gmail.com>
Date: Thu, Aug 28, 2008 at 2:27 PM
Subject: HVM and tap:aio?
To: xen-users@lists.xensource.com


Hello,

I'm not able to use tap:aio disk definitions with my HVM domU's.  Is this supposed to work on this version of Xen, or am I doing something wrong? 
I've tried everything I can think of.  file: works, but not tap:aio: , and I understand that file: will cause OOMkiller if using NFS mounts and is deprecated.

Likewise, tap:aio: for cdrom does not allow me to boot off of cdrom; file: does work fine.

Furthermore, any time I use tap:aio, the bochs bios of the hvm domU shows the hard disk size as 0 MBytes.

Any disk definition that I use that has tap:aio: gives the result either (if tap:aio:/xen/foo/foo.img,xvda,w):
Booting from Hard Disk...
Boot from Hard Disk failed: could not read the boot disk
or (if specifying tap:aio:/xen/foo/foo.img,hda,w)
ata0 master: QEMU HARDDISK ATA-7 Hard-Disk (0 MBytes)
Boot from Hard Disk failed: could not read the boot disk

Host: CentOS 5.2 x86_64, kernel 2.6.18-92.1.6.el5xen
Xen version: 3.1.2-92.1.6.el5
xen_caps: xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
selinux: disabled for testing
domU: OS doesn't appear to matter; domU OS won't start loading at all.

disk lines I've tried:
# disk recognized as 0/1 MB, can't install
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,ioemu:sda,w", "file:/xen/iso/Win2003r2_std_32bit.iso,hdc:cdrom,r" ]
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,sda,w", "file:/xen/iso/Win2003r2_std_32bit.iso,hdc:cdrom,r" ]
#disk = [ "file:/xen/ausmsit05/ausmsit05.raw,hda,w", "file:/xen/iso/Win2003r2_std_32bit.iso,hdc:cdrom,r" ]
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,sda1,w", ",hdc:cdrom,r" ]
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,xvda,w", ",hdc:cdrom,r" ]
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,hda:ioemu,w", ",hdc:cdrom,r" ]
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,ioemu:hda,w", ",hdc:cdrom,r" ]
#disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,ioemu:xvda,w", "phy:/dev/scd0,ioemu:xvdc:cdrom,r" ]
# Boot from Hard Disk failed: could not read the boot disk
disk = [ "tap:aio:/xen/ausmsit05/ausmsit05.raw,hda,w", "tap:aio:/xen/iso/win2003r2_std_32bit_disk1of2.iso,hdc:cdrom,r" ]

in the last example, this is the output of xm block-list ausmsit05 --long
(768
    ((backend-id 0)
        (virtual-device 768)
        (device-type disk)
        (state 1)
        (backend /local/domain/0/backend/tap/55/768)
    )
)
(5632
    ((backend-id 0)
        (virtual-device 5632)
        (device-type cdrom)
        (state 1)
        (backend /local/domain/0/backend/tap/55/5632)
    )
)
and this is from xend.log:

[2008-08-28 14:18:09 xend 3692] DEBUG (blkif:24) exception looking up device number for hda: [Errno 2] No such file or directory: '/dev/hda'
[2008-08-28 14:18:09 xend 3692] DEBUG (DevController:110) DevController: writing {'backend-id': '0', 'virtual-device': '768', 'device-type': 'disk', 'state': '1', 'backend': '/local/domain/0/backend/tap/55/768'} to /local/domain/55/device/vbd/768.
[2008-08-28 14:18:09 xend 3692] DEBUG (DevController:112) DevController: writing {'domain': 'ausmsit05', 'frontend': '/local/domain/55/device/vbd/768', 'format': 'raw', 'dev': 'hda', 'state': '1', 'params': 'aio:/xen/ausmsit05/ausmsit05.raw', 'mode': 'w', 'online': '1', 'frontend-id': '55', 'type': 'tap'} to /local/domain/0/backend/tap/55/768.
[2008-08-28 14:18:09 xend 3692] DEBUG (blkif:24) exception looking up device number for hdc: [Errno 2] No such file or directory: '/dev/hdc'
[2008-08-28 14:18:09 xend 3692] DEBUG (DevController:110) DevController: writing {'backend-id': '0', 'virtual-device': '5632', 'device-type': 'cdrom', 'state': '1', 'backend': '/local/domain/0/backend/tap/55/5632'} to /local/domain/55/device/vbd/5632.
[2008-08-28 14:18:09 xend 3692] DEBUG (DevController:112) DevController: writing {'domain': 'ausmsit05', 'frontend': '/local/domain/55/device/vbd/5632', 'format': 'raw', 'dev': 'hdc', 'state': '1', 'params': 'aio:/xen/iso/win2003r2_std_32bit_disk1of2.iso', 'mode': 'r', 'online': '1', 'frontend-id': '55', 'type': 'tap'} to /local/domain/0/backend/tap/55/5632.


Thank you in advance for any help you can offer.