Linux domU only works with xen_platform_pci=0 ?

Kai Otto kai_otto at duckster.net
Sun May 13 17:33:28 UTC 2018


On 13/05/18 17:16, Roger Pau Monné wrote:
> On Sun, May 13, 2018 at 03:51:36PM +0200, Kai Otto wrote:
>> Hello,
>>
>> I'm trying to set up a FreeBSD 11.1 system as Xen virtualization host.
>> Following a combination of handbook [1] and wiki [2], I was able to get
>> get a FreeBSD dom0 in PVH mode, and FreeBSD domU in HVM mode running,
>> including installation to disk and networking.
>>
>> It seemed to me as if the switch 'xen_platform_pci' doesn't have an
>> effect on FreeBSD domU's, as I see e.g. a xenpci0 and xbd0 in dmesg no
>> matter if I set it to 1 or 0.
>>
>> Do I understand it correctly, that this switch makes the difference
>> between HVM and PVHVM mode?
>> According to xl.cfg(5), it 'enables a guest Operating System [...] to
>> make use of paravirtualization features such as disk and network devices'.
>>
>>
>> Afterwards, I tried to create a Linux domU. Both Centos 7 and Alpine
>> Linux only detected the harddisk with xen_platform_pci=0.
>>
>> For Alpine Linux, with xen_platform_pci=1, I get the following messages
>> on the console:
>>
>> vbd vbd-5632: 19 xenbus_dev_probe on device/vbd/5632
> That's ENODEV IIRC, I think there's something wrong with FreeBSD disk
> backend.
>
>> vbd vbd-5632: failed to write error node for device/vbd/5632 (19
>> xenbus_dev_probe on device/vbd/5632)
>>
>> After waiting for a couple minutes it boots, but doesn't detect the disk.
>>
>> Looking in /var/log/xen/qemu-dm-alpine-hvm.log, I see the following
>> messages:
>>
>> xen be core: can't open gnttab device
>> xen be core: can't open gnttab device
>> xen be: vkbd-0: initalize() failed
>> xen be: vkbd-0: initalize() failed
>> xen be: vkbd-0: initalize() failed
>>
>>
>>
>> Googling around yielded [3], where someone apparently ran into the same
>> problem, and used xen_platform_pci=0 as workaround.
>>
>>
>>
>> So my question is:
>> Is xen_platform_pci=1 required for PVHVM mode?
> No, it shouldn't be.
>
>> If yes, is PVHVM mode only available for FreeBSD domU's?
>> If no, how can I enable it for Linux guests?
> If you boot FreeBSD Dom0 kernel with boot_verbose=YES (in
> /boot/loader.conf), can you paste the messages you get when trying to
> boot the PVHVM guest with xen_platform_pci=1?
>
> Also, can you paste the output of `xenstore-ls -fp` executed on Dom0
> after the PVHVM guest has failed to boot but is still running?
>
Hello again,
thanks for your response Roger!

I attached both. Because I don't know how the mailinglist handles
attachments, here is a pastebin of xenstore-ls:
https://pastebin.com/s7wa1ee7
And a direct paste of dmesg messages:

random: harvesting attach, 8 bytes (4 bits) from xbbd0
tap0: bpf attached
tap0: Ethernet address: 00:bd:ee:99:ff:00
tap0: link state changed to UP
tap0: changing name to 'xnb2.0-emu'
xnb(xnb_probe:1127): Claiming device 0, xnb
xnb2.0: bpf attached
xnb(xnb_attach:1271): Attaching to backend/vif/2/0
random: harvesting attach, 8 bytes (4 bits) from xnb0
xnb(xnb_frontend_changed:1395): frontend_state=Initialising,
xnb_state=InitWait
xnb2.0: link state changed to DOWN
xnb2.0: link state changed to UP
xnb2.0: link state changed to DOWN
xnb2.0: promiscuous mode enabled
xnb2.0: link state changed to UP
xnb2.0-emu: promiscuous mode enabled
nd6_dad_timer: cancel DAD on xnb2.0 because of ND6_IFF_IFDISABLED.
xnb(xnb_frontend_changed:1395): frontend_state=Connected, xnb_state=InitWait
xnb(xnb_connect_comms:788): rings connected!


- Kai
-------------- next part --------------
random: harvesting attach, 8 bytes (4 bits) from xbbd0
tap0: bpf attached
tap0: Ethernet address: 00:bd:ee:99:ff:00
tap0: link state changed to UP
tap0: changing name to 'xnb2.0-emu'
xnb(xnb_probe:1127): Claiming device 0, xnb
xnb2.0: bpf attached
xnb(xnb_attach:1271): Attaching to backend/vif/2/0
random: harvesting attach, 8 bytes (4 bits) from xnb0
xnb(xnb_frontend_changed:1395): frontend_state=Initialising, xnb_state=InitWait
xnb2.0: link state changed to DOWN
xnb2.0: link state changed to UP
xnb2.0: link state changed to DOWN
xnb2.0: promiscuous mode enabled
xnb2.0: link state changed to UP
xnb2.0-emu: promiscuous mode enabled
nd6_dad_timer: cancel DAD on xnb2.0 because of ND6_IFF_IFDISABLED.
xnb(xnb_frontend_changed:1395): frontend_state=Connected, xnb_state=InitWait
xnb(xnb_connect_comms:788): rings connected!
-------------- next part --------------
/tool = ""   (n0)
/tool/xenstored = ""   (n0)
/vm = ""   (n0)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b = ""   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/name = "alpine-hvm"   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/uuid = "13f4d8e8-56d1-11e8-86f7-d067e5f07a2b"   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/rtc = ""   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/rtc/timeoffset = ""   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/image = ""   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/image/ostype = "hvm"   (n0,r2)
/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b/start_time = "1526231661.78"   (n0,r2)
/libxl = ""   (n0)
/libxl/2 = ""   (n0)
/libxl/2/device = ""   (n0)
/libxl/2/device/vbd = ""   (n0)
/libxl/2/device/vbd/51712 = ""   (n0)
/libxl/2/device/vbd/51712/frontend = "/local/domain/2/device/vbd/51712"   (n0)
/libxl/2/device/vbd/51712/backend = "/local/domain/0/backend/vbd/2/51712"   (n0)
/libxl/2/device/vbd/51712/params = "/dev/zvol/zbulk/vm/alpine-hvm_disk0"   (n0)
/libxl/2/device/vbd/51712/script = "/usr/local/etc/xen/scripts/block"   (n0)
/libxl/2/device/vbd/51712/frontend-id = "2"   (n0)
/libxl/2/device/vbd/51712/online = "1"   (n0)
/libxl/2/device/vbd/51712/removable = "0"   (n0)
/libxl/2/device/vbd/51712/bootable = "1"   (n0)
/libxl/2/device/vbd/51712/state = "1"   (n0)
/libxl/2/device/vbd/51712/dev = "xvda"   (n0)
/libxl/2/device/vbd/51712/type = "phy"   (n0)
/libxl/2/device/vbd/51712/mode = "w"   (n0)
/libxl/2/device/vbd/51712/device-type = "disk"   (n0)
/libxl/2/device/vbd/51712/discard-enable = "1"   (n0)
/libxl/2/device/vbd/51728 = ""   (n0)
/libxl/2/device/vbd/51728/frontend = "/local/domain/2/device/vbd/51728"   (n0)
/libxl/2/device/vbd/51728/backend = "/local/domain/0/backend/qdisk/2/51728"   (n0)
/libxl/2/device/vbd/51728/params = "aio:/zbulk/mediashare/isos/linux/alpine-virt-3.7.0-x86_64.iso"   (n0)
/libxl/2/device/vbd/51728/frontend-id = "2"   (n0)
/libxl/2/device/vbd/51728/online = "1"   (n0)
/libxl/2/device/vbd/51728/removable = "1"   (n0)
/libxl/2/device/vbd/51728/bootable = "1"   (n0)
/libxl/2/device/vbd/51728/state = "1"   (n0)
/libxl/2/device/vbd/51728/dev = "xvdb"   (n0)
/libxl/2/device/vbd/51728/type = "qdisk"   (n0)
/libxl/2/device/vbd/51728/mode = "r"   (n0)
/libxl/2/device/vbd/51728/device-type = "cdrom"   (n0)
/libxl/2/device/vbd/51728/discard-enable = "0"   (n0)
/libxl/2/device/console = ""   (n0)
/libxl/2/device/console/0 = ""   (n0)
/libxl/2/device/console/0/frontend = "/local/domain/2/console"   (n0)
/libxl/2/device/console/0/backend = "/local/domain/0/backend/console/2/0"   (n0)
/libxl/2/device/console/0/frontend-id = "2"   (n0)
/libxl/2/device/console/0/online = "1"   (n0)
/libxl/2/device/console/0/state = "1"   (n0)
/libxl/2/device/console/0/protocol = "vt100"   (n0)
/libxl/2/device/vkbd = ""   (n0)
/libxl/2/device/vkbd/0 = ""   (n0)
/libxl/2/device/vkbd/0/frontend = "/local/domain/2/device/vkbd/0"   (n0)
/libxl/2/device/vkbd/0/backend = "/local/domain/0/backend/vkbd/2/0"   (n0)
/libxl/2/device/vkbd/0/frontend-id = "2"   (n0)
/libxl/2/device/vkbd/0/online = "1"   (n0)
/libxl/2/device/vkbd/0/state = "1"   (n0)
/libxl/2/device/vif = ""   (n0)
/libxl/2/device/vif/0 = ""   (n0)
/libxl/2/device/vif/0/frontend = "/local/domain/2/device/vif/0"   (n0)
/libxl/2/device/vif/0/backend = "/local/domain/0/backend/vif/2/0"   (n0)
/libxl/2/device/vif/0/frontend-id = "2"   (n0)
/libxl/2/device/vif/0/online = "1"   (n0)
/libxl/2/device/vif/0/state = "1"   (n0)
/libxl/2/device/vif/0/script = "/usr/local/etc/xen/scripts/vif-bridge"   (n0)
/libxl/2/device/vif/0/mac = "00:16:3e:13:f5:e0"   (n0)
/libxl/2/device/vif/0/bridge = "bridge0"   (n0)
/libxl/2/device/vif/0/handle = "0"   (n0)
/libxl/2/device/vif/0/type = "vif_ioemu"   (n0)
/libxl/2/dm-version = "qemu_xen"   (n0)
/local = ""   (n0)
/local/domain = ""   (n0)
/local/domain/0 = ""   (n0)
/local/domain/0/domid = "0"   (n0)
/local/domain/0/name = "Domain-0"   (n0)
/local/domain/0/device-model = ""   (n0)
/local/domain/0/device-model/2 = ""   (n0)
/local/domain/0/device-model/2/state = "running"   (n0)
/local/domain/0/device-model/2/physmap = ""   (n0)
/local/domain/0/device-model/2/physmap/3f800000 = ""   (n0)
/local/domain/0/device-model/2/physmap/3f800000/start_addr = "f0000000"   (n0)
/local/domain/0/device-model/2/physmap/3f800000/size = "800000"   (n0)
/local/domain/0/device-model/2/physmap/3f800000/name = "vga.vram"   (n0)
/local/domain/0/backend = ""   (n0)
/local/domain/0/backend/vbd = ""   (n0)
/local/domain/0/backend/vbd/2 = ""   (n0)
/local/domain/0/backend/vbd/2/51712 = ""   (n0,r2)
/local/domain/0/backend/vbd/2/51712/frontend = "/local/domain/2/device/vbd/51712"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/params = "/dev/zvol/zbulk/vm/alpine-hvm_disk0"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/script = "/usr/local/etc/xen/scripts/block"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/frontend-id = "2"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/online = "1"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/removable = "0"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/bootable = "1"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/state = "3"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/dev = "xvda"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/type = "phy"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/mode = "w"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/device-type = "disk"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/discard-enable = "1"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/feature-barrier = "1"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/feature-flush-cache = "1"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/max-ring-page-order = "5"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/physical-device-path = "/dev/zvol/zbulk/vm/alpine-hvm_disk0"   (n0,r2)
/local/domain/0/backend/vbd/2/51712/hotplug-status = "connected"   (n0,r2)
/local/domain/0/backend/qdisk = ""   (n0)
/local/domain/0/backend/qdisk/2 = ""   (n0)
/local/domain/0/backend/qdisk/2/51728 = ""   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/frontend = "/local/domain/2/device/vbd/51728"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/params = "aio:/zbulk/mediashare/isos/linux/alpine-virt-3.7.0-x86_64.iso"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/frontend-id = "2"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/online = "1"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/removable = "1"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/bootable = "1"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/state = "1"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/dev = "xvdb"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/type = "qdisk"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/mode = "r"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/device-type = "cdrom"   (n0,r2)
/local/domain/0/backend/qdisk/2/51728/discard-enable = "0"   (n0,r2)
/local/domain/0/backend/console = ""   (n0)
/local/domain/0/backend/console/2 = ""   (n0)
/local/domain/0/backend/console/2/0 = ""   (n0,r2)
/local/domain/0/backend/console/2/0/frontend = "/local/domain/2/console"   (n0,r2)
/local/domain/0/backend/console/2/0/frontend-id = "2"   (n0,r2)
/local/domain/0/backend/console/2/0/online = "1"   (n0,r2)
/local/domain/0/backend/console/2/0/state = "1"   (n0,r2)
/local/domain/0/backend/console/2/0/protocol = "vt100"   (n0,r2)
/local/domain/0/backend/vkbd = ""   (n0)
/local/domain/0/backend/vkbd/2 = ""   (n0)
/local/domain/0/backend/vkbd/2/0 = ""   (n0,r2)
/local/domain/0/backend/vkbd/2/0/frontend = "/local/domain/2/device/vkbd/0"   (n0,r2)
/local/domain/0/backend/vkbd/2/0/frontend-id = "2"   (n0,r2)
/local/domain/0/backend/vkbd/2/0/online = "1"   (n0,r2)
/local/domain/0/backend/vkbd/2/0/state = "2"   (n0,r2)
/local/domain/0/backend/vkbd/2/0/feature-abs-pointer = "1"   (n0,r2)
/local/domain/0/backend/vkbd/2/0/hotplug-status = "connected"   (n0,r2)
/local/domain/0/backend/vif = ""   (n0)
/local/domain/0/backend/vif/2 = ""   (n0)
/local/domain/0/backend/vif/2/0 = ""   (n0,r2)
/local/domain/0/backend/vif/2/0/frontend = "/local/domain/2/device/vif/0"   (n0,r2)
/local/domain/0/backend/vif/2/0/frontend-id = "2"   (n0,r2)
/local/domain/0/backend/vif/2/0/online = "1"   (n0,r2)
/local/domain/0/backend/vif/2/0/state = "4"   (n0,r2)
/local/domain/0/backend/vif/2/0/script = "/usr/local/etc/xen/scripts/vif-bridge"   (n0,r2)
/local/domain/0/backend/vif/2/0/mac = "00:16:3e:13:f5:e0"   (n0,r2)
/local/domain/0/backend/vif/2/0/bridge = "bridge0"   (n0,r2)
/local/domain/0/backend/vif/2/0/handle = "0"   (n0,r2)
/local/domain/0/backend/vif/2/0/type = "vif_ioemu"   (n0,r2)
/local/domain/0/backend/vif/2/0/hotplug-status = "connected"   (n0,r2)
/local/domain/0/backend/vif/2/0/feature-sg = "1"   (n0,r2)
/local/domain/0/backend/vif/2/0/feature-gso-tcpv4 = "0"   (n0,r2)
/local/domain/0/backend/vif/2/0/feature-rx-copy = "1"   (n0,r2)
/local/domain/0/backend/vif/2/0/feature-rx-flip = "0"   (n0,r2)
/local/domain/2 = ""   (n0,r2)
/local/domain/2/vm = "/vm/13f4d8e8-56d1-11e8-86f7-d067e5f07a2b"   (n0,r2)
/local/domain/2/name = "alpine-hvm"   (n0,r2)
/local/domain/2/cpu = ""   (n0,r2)
/local/domain/2/cpu/0 = ""   (n0,r2)
/local/domain/2/cpu/0/availability = "online"   (n0,r2)
/local/domain/2/memory = ""   (n0,r2)
/local/domain/2/memory/static-max = "1048576"   (n0,r2)
/local/domain/2/memory/target = "1040384"   (n0,r2)
/local/domain/2/memory/videoram = "8192"   (n0,r2)
/local/domain/2/device = ""   (n0,r2)
/local/domain/2/device/suspend = ""   (n0,r2)
/local/domain/2/device/suspend/event-channel = ""   (n2)
/local/domain/2/device/vbd = ""   (n0,r2)
/local/domain/2/device/vbd/51712 = ""   (n2,r0)
/local/domain/2/device/vbd/51712/backend = "/local/domain/0/backend/vbd/2/51712"   (n2,r0)
/local/domain/2/device/vbd/51712/backend-id = "0"   (n2,r0)
/local/domain/2/device/vbd/51712/state = "1"   (n2,r0)
/local/domain/2/device/vbd/51712/virtual-device = "51712"   (n2,r0)
/local/domain/2/device/vbd/51712/device-type = "disk"   (n2,r0)
/local/domain/2/device/vbd/51728 = ""   (n2,r0)
/local/domain/2/device/vbd/51728/backend = "/local/domain/0/backend/qdisk/2/51728"   (n2,r0)
/local/domain/2/device/vbd/51728/backend-id = "0"   (n2,r0)
/local/domain/2/device/vbd/51728/state = "6"   (n2,r0)
/local/domain/2/device/vbd/51728/virtual-device = "51728"   (n2,r0)
/local/domain/2/device/vbd/51728/device-type = "cdrom"   (n2,r0)
/local/domain/2/device/vkbd = ""   (n0,r2)
/local/domain/2/device/vkbd/0 = ""   (n2,r0)
/local/domain/2/device/vkbd/0/backend = "/local/domain/0/backend/vkbd/2/0"   (n2,r0)
/local/domain/2/device/vkbd/0/backend-id = "0"   (n2,r0)
/local/domain/2/device/vkbd/0/state = "4"   (n2,r0)
/local/domain/2/device/vkbd/0/request-abs-pointer = "1"   (n2,r0)
/local/domain/2/device/vkbd/0/page-ref = "249693"   (n2,r0)
/local/domain/2/device/vkbd/0/page-gref = "8"   (n2,r0)
/local/domain/2/device/vkbd/0/event-channel = "14"   (n2,r0)
/local/domain/2/device/vif = ""   (n0,r2)
/local/domain/2/device/vif/0 = ""   (n2,r0)
/local/domain/2/device/vif/0/backend = "/local/domain/0/backend/vif/2/0"   (n2,r0)
/local/domain/2/device/vif/0/backend-id = "0"   (n2,r0)
/local/domain/2/device/vif/0/state = "4"   (n2,r0)
/local/domain/2/device/vif/0/handle = "0"   (n2,r0)
/local/domain/2/device/vif/0/mac = "00:16:3e:13:f5:e0"   (n2,r0)
/local/domain/2/device/vif/0/tx-ring-ref = "768"   (n2,r0)
/local/domain/2/device/vif/0/rx-ring-ref = "769"   (n2,r0)
/local/domain/2/device/vif/0/event-channel = "16"   (n2,r0)
/local/domain/2/device/vif/0/request-rx-copy = "1"   (n2,r0)
/local/domain/2/device/vif/0/feature-rx-notify = "1"   (n2,r0)
/local/domain/2/device/vif/0/feature-sg = "1"   (n2,r0)
/local/domain/2/device/vif/0/feature-gso-tcpv4 = "1"   (n2,r0)
/local/domain/2/device/vif/0/feature-gso-tcpv6 = "1"   (n2,r0)
/local/domain/2/device/vif/0/feature-ipv6-csum-offload = "1"   (n2,r0)
/local/domain/2/control = ""   (n0,r2)
/local/domain/2/control/shutdown = ""   (n2)
/local/domain/2/control/platform-feature-multiprocessor-suspend = "1"   (n0,r2)
/local/domain/2/control/platform-feature-xs_reset_watches = "1"   (n0,r2)
/local/domain/2/hvmloader = ""   (n0,r2)
/local/domain/2/hvmloader/bios = "seabios"   (n0,r2)
/local/domain/2/hvmloader/allow-memory-relocate = "0"   (n0,r2)
/local/domain/2/data = ""   (n2)
/local/domain/2/drivers = ""   (n2)
/local/domain/2/feature = ""   (n2)
/local/domain/2/attr = ""   (n2)
/local/domain/2/domid = "2"   (n0,r2)
/local/domain/2/store = ""   (n0,r2)
/local/domain/2/store/port = "1"   (n0,r2)
/local/domain/2/store/ring-ref = "1044476"   (n0,r2)
/local/domain/2/platform = ""   (n0,r2)
/local/domain/2/platform/acpi = "1"   (n0,r2)
/local/domain/2/platform/acpi_s3 = "1"   (n0,r2)
/local/domain/2/platform/acpi_s4 = "1"   (n0,r2)
/local/domain/2/console = ""   (n0,r2)
/local/domain/2/console/backend = "/local/domain/0/backend/console/2/0"   (n0,r2)
/local/domain/2/console/backend-id = "0"   (n2,r0)
/local/domain/2/console/limit = "1048576"   (n0,r2)
/local/domain/2/console/type = "xenconsoled"   (n0,r2)
/local/domain/2/console/output = "pty"   (n0,r2)
/local/domain/2/console/tty = "/dev/pts/2"   (n0,r2)
/local/domain/2/console/port = "2"   (n0,r2)
/local/domain/2/console/ring-ref = "1044479"   (n0,r2)
/local/domain/2/console/vnc-listen = "0.0.0.0"   (n0,r2)
/local/domain/2/console/vnc-port = "5900"   (n0,r2)
/local/domain/2/image = ""   (n0,r2)
/local/domain/2/image/device-model-pid = "1089"   (n0,r2)
/local/domain/2/serial = ""   (n0,r2)
/local/domain/2/serial/0 = ""   (n0,r2)
/local/domain/2/serial/0/tty = "/dev/pts/3"   (n0,r2)


More information about the freebsd-xen mailing list