Troubleshooting Xen issues

This page contains problems that may be encountered when using Xen, and their solutions.

If you encounter problems you don't see solutions for on this page, navigate to the Xilinx Developer Forums for additional help.

Kernel call traces

When running Linux on top of Dom0, Linux can go in kernel panic due to insufficient memory for dom0. Example:

1 2 3 4 5 6 [ 12.747244] dump_backtrace+0x0/0x190 [ 12.747750] show_stack+0x18/0x30 [ 12.748176] dump_stack+0xd4/0x110 [ 12.748530] dump_header+0x48/0x1e8 [ 12.748902] out_of_memory+0x2c4/0x310 [ 12.749289] __alloc_pages_nodemask+0x72c/0xc64

Solution

Increase the dom0 allocated memory. Check xen_boot_tftp.source or xen_boot_sd.source relevant file and see “dom0_mem=1G”, increase this memory appropriately to > 1G. Save the file and recreate the xen_boot_tftp.scr using below command:

1 mkimage -A arm64 -T script -C none -a 0xC00000 -e 0xC00000 -d xen_boot_tftp.source xen_boot_tftp.scr

Reboot the machine with latest scripts.

Xen ethernet passthrough memory map failures

When creating a new DomU using example-passnet.cfg file, if DomU creation fails like below example:

1 2 3 4 xl create -c xl create -c /etc/xen/example-passnet.cfg ERROR: Parsing config from /etc/xen/example-passnet.cfg (XEN) memory_map:fail: dom1 gfn=ff0e0 mfn=ff0e0 nr=1 ret:-38

Solution

Update the xen.dts file as per instruction from Starting Linux guests with Pass-through networking page and re-boot the machine(dom0) and then create DomUs.

Xen ethernet passthrough interrupt mapping failures

When creating a new DomU using example-passnet.cfg file, if DomU creation parts fails like below:

1 2 3 4 5 6 7 root@xilinx-vck190-2021_1:/etc/xen# xl create -c example-passnet.cfg Parsing config from example-passnet.cfg (XEN) IRQ 95 is already used by domain 0 libxl: error: libxl_create.c:1637:domcreate_launch_dm: Domain 1:failed give domain access to irq 95: Device or resource busy libxl: error: libxl_domain.c:1182:libxl__destroy_domid: Domain 1:Non-existant domain libxl: error: libxl_domain.c:1136:domain_destroy_callback: Domain 1:Unable to destroy guest libxl: error: libxl_domain.c:1063:domain_destroy_cb: Domain 1:Destruction of domain failed

Solution

Correct the “irqs = [ 95 ]” in example-passnet.cfg with correct value. To find the correct value. convert xen.dtb into xen.dts and see the appropriate interrupt value for passthrough device.