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


Re:Re:Re: [Xen-devel] some errors of pvonhvm : xen-blkfront

On Tue, 19 Apr 2011, topperxin wrote:
> hi Stefano
>    thanks for your time
>    As your method, I modified my /boo/grub/grub.cfg of ubuntu10.10 like this:
> ====================================================
>    menuentry 'Ubuntu, with Linux' --class ubuntu --class 
> gnu-linux --class gnu --class os {
>         recordfail
>         insmod part_msdos
>         insmod ext2
>         set root='(hd0,msdos1)'
>         search --no-floppy --fs-uuid --set 
> 3336889c-576e-4088-a6ff-89e869289766
>         linux   /boot/vmlinuz- 
> root=UUID=3336889c-576e-4088-a6ff-89e869289766 ro 
> xen_emul_unplug=aux-ide-disks
>         initrd  /boot/initrd.img-
> }
> =======================================================
> then I reboot the Guest OS , I found the boot disk is still the xen-blkfront, 
> not the qemu emulate.

aux-ide-disks means "do not unplug secondary emulated disks".

> I reviewed the source of ./arch/x86/xen/platform-pci-unplug.c. there are 
> several parameters, such as:
> ===================================================================
>                 if (!strncmp(p, "all", l)) 
>                         xen_emul_unplug |= XEN_UNPLUG_ALL;
>                 else if (!strncmp(p, "ide-disks", l)) 
>                         xen_emul_unplug |= XEN_UNPLUG_ALL_IDE_DISKS;
>                 else if (!strncmp(p, "aux-ide-disks", l)) 
>                         xen_emul_unplug |= XEN_UNPLUG_AUX_IDE_DISKS;
>                 else if (!strncmp(p, "nics", l)) 
>                         xen_emul_unplug |= XEN_UNPLUG_ALL_NICS;
>                 else if (!strncmp(p, "unnecessary", l)) 
>                         xen_emul_unplug |= XEN_UNPLUG_UNNECESSARY;
>                 else if (!strncmp(p, "never", l))                         
> xen_emul_unplug |= XEN_UNPLUG_NEVER;
> =========================================================
> In my opinion , If I want to use the emulated disk , I should set
>               xen_emul_unplug = XEN_UNPLUG_UNNECESSARY or
>               xen_emul_unplug = XEN_NEVER
> right? I try these two ways, but I still failed.

If you specify xen_emul_unplug=XEN_UNPLUG_UNNECESSARY you prevent
blkfront from hooking PV disks corresponding to emulated disks.
Of course you have to make sure your root device is not /dev/xvda
because that wouldn't work anymore, try root=/dev/sda if you want to
make sure that you are using the emulated path.
Also you need to specify hd* devices in your disk line in the VM config
file, like this:

disk = [ 'file:/root/images/debian_lenny_i386_small.raw,hda,w']

>   Could you please tell me where can I get the source of
>  kernel 2.6.35 with pvonhvm??? 

The first Linux kernel to have PV on HVM support was Linux 2.6.36, so I
don't have any 2.6.35 Linux tree with PV on HVM support. However a
vanilla 2.6.36 (or 2.6.37 or 2.6.38) kernel should just work as PV on
HVM kernel.
Xen-devel mailing list