All of lore.kernel.org
 help / color / mirror / Atom feed
* Network driver domain broken
@ 2022-03-03 14:54 Andrea Stevanato
  2022-03-03 16:01 ` Andrea Stevanato
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-03 14:54 UTC (permalink / raw)
  To: xen-devel; +Cc: roger.pau, ian.jackson, wl

Hi all,

according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.

What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.

name    = "guest0"


kernel  = "/media/sd-mmcblk0p1/Image"


ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"


extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"


memory  = 1024

vcpus   = 2
driver_domain = 1

On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
While the second guest has been started with the following cfg:

name    = "guest1"


kernel  = "/media/sd-mmcblk0p1/Image"


ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"


extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"


memory  = 1024 vcpus   = 2
vcpus   = 2
vif = [ 'bridge=xenbr0, backend=guest0' ]

Follows the result of strace xl devd:

# strace xl devd
execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
brk(NULL)                               = 0xaaaaeaf3b000
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=7840, ...}) = 0
mmap(NULL, 7840, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff9f45e000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxlutil.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0200\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=68168, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f45c000
mmap(NULL, 131784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f410000
mprotect(0xffff9f41f000, 65536, PROT_NONE) = 0
mmap(0xffff9f42f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff9f42f000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenlight.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\16\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=861848, ...}) = 0
mmap(NULL, 925752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f32d000
mprotect(0xffff9f3fa000, 61440, PROT_NONE) = 0
mmap(0xffff9f409000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcc000) = 0xffff9f409000
mmap(0xffff9f40f000, 56, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f40f000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxentoollog.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0P\r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10368, ...}) = 0
mmap(NULL, 73904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f31a000
mprotect(0xffff9f31c000, 61440, PROT_NONE) = 0
mmap(0xffff9f32b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff9f32b000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libyajl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\22\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38728, ...}) = 0
mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f300000
mprotect(0xffff9f309000, 61440, PROT_NONE) = 0
mmap(0xffff9f318000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9f318000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300j\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=113184, ...}) = 0
mmap(NULL, 192872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f2d0000
mprotect(0xffff9f2ea000, 65536, PROT_NONE) = 0
mmap(0xffff9f2fa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0xffff9f2fa000
mmap(0xffff9f2fc000, 12648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f2fc000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320I\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1428872, ...}) = 0
mmap(NULL, 1502000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f161000
mprotect(0xffff9f2b8000, 61440, PROT_NONE) = 0
mmap(0xffff9f2c7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x156000) = 0xffff9f2c7000
mmap(0xffff9f2cd000, 11056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f2cd000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenevtchn.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\f\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10240, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f45a000
mmap(NULL, 73856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f14e000
mprotect(0xffff9f150000, 61440, PROT_NONE) = 0
mmap(0xffff9f15f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff9f15f000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenctrl.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\203\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=154752, ...}) = 0
mmap(NULL, 218504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f118000
mprotect(0xffff9f13d000, 61440, PROT_NONE) = 0
mmap(0xffff9f14c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9f14c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenguest.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0PB\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=77248, ...}) = 0
mmap(NULL, 140880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0f5000
mprotect(0xffff9f107000, 61440, PROT_NONE) = 0
mmap(0xffff9f116000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xffff9f116000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenhypfs.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14432, ...}) = 0
mmap(NULL, 78048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0e1000
mprotect(0xffff9f0e3000, 65536, PROT_NONE) = 0
mmap(0xffff9f0f3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f0f3000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenstore.so.3.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 $\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31176, ...}) = 0
mmap(NULL, 107088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0c6000
mprotect(0xffff9f0cc000, 65536, PROT_NONE) = 0
mmap(0xffff9f0dc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9f0dc000
mmap(0xffff9f0de000, 8784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f0de000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\20\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
mmap(NULL, 77920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0b2000
mprotect(0xffff9f0b5000, 61440, PROT_NONE) = 0
mmap(0xffff9f0c4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f0c4000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxentoolcore.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 \10\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=6104, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f458000
mmap(NULL, 69768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0a0000
mprotect(0xffff9f0a1000, 61440, PROT_NONE) = 0
mmap(0xffff9f0b0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff9f0b0000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\21\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
mmap(NULL, 77840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f08c000
mprotect(0xffff9f08e000, 65536, PROT_NONE) = 0
mmap(0xffff9f09e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f09e000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\30\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=30680, ...}) = 0
mmap(NULL, 94240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f074000
mprotect(0xffff9f07a000, 65536, PROT_NONE) = 0
mmap(0xffff9f08a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9f08a000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libnl-route-3.so.200", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\200\327\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=536688, ...}) = 0
mmap(NULL, 609024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9efdf000
mprotect(0xffff9f05a000, 65536, PROT_NONE) = 0
mmap(0xffff9f06a000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7b000) = 0xffff9f06a000
mmap(0xffff9f072000, 6912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f072000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libnl-3.so.200", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360\221\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=141304, ...}) = 0
mmap(NULL, 205192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9efac000
mprotect(0xffff9efcd000, 61440, PROT_NONE) = 0
mmap(0xffff9efdc000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0xffff9efdc000
close(3)                                = 0
openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31032, ...}) = 0
mmap(NULL, 94568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef94000
mprotect(0xffff9ef9b000, 61440, PROT_NONE) = 0
mmap(0xffff9efaa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9efaa000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libfdt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38800, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f456000
mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef7a000
mprotect(0xffff9ef83000, 61440, PROT_NONE) = 0
mmap(0xffff9ef92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9ef92000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxengnttab.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\20\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14368, ...}) = 0
mmap(NULL, 77984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef66000
mprotect(0xffff9ef69000, 61440, PROT_NONE) = 0
mmap(0xffff9ef78000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef78000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxencall.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\17\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
mmap(NULL, 78064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef52000
mprotect(0xffff9ef55000, 61440, PROT_NONE) = 0
mmap(0xffff9ef64000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef64000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenforeignmemory.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14392, ...}) = 0
mmap(NULL, 78000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef3e000
mprotect(0xffff9ef40000, 65536, PROT_NONE) = 0
mmap(0xffff9ef50000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef50000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxendevicemodel.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\23\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
mmap(NULL, 78008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef2a000
mprotect(0xffff9ef2d000, 61440, PROT_NONE) = 0
mmap(0xffff9ef3c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef3c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\27\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=70472, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f454000
mmap(NULL, 134160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef09000
mprotect(0xffff9ef19000, 61440, PROT_NONE) = 0
mmap(0xffff9ef28000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff9ef28000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\3403\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=153496, ...}) = 0
mmap(NULL, 217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9eed3000
mprotect(0xffff9eef7000, 65536, PROT_NONE) = 0
mmap(0xffff9ef07000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9ef07000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzo2.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320&\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=120648, ...}) = 0
mmap(NULL, 184336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9eea5000
mprotect(0xffff9eec2000, 61440, PROT_NONE) = 0
mmap(0xffff9eed1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xffff9eed1000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360%\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92056, ...}) = 0
mmap(NULL, 155664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ee7e000
mprotect(0xffff9ee93000, 65536, PROT_NONE) = 0
mmap(0xffff9eea3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xffff9eea3000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9ee7c000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9ee7a000
mprotect(0xffff9f2c7000, 12288, PROT_READ) = 0
mprotect(0xffff9eea3000, 4096, PROT_READ) = 0
mprotect(0xffff9eed1000, 4096, PROT_READ) = 0
mprotect(0xffff9f2fa000, 4096, PROT_READ) = 0
mprotect(0xffff9ef07000, 4096, PROT_READ) = 0
mprotect(0xffff9ef28000, 4096, PROT_READ) = 0
mprotect(0xffff9f32b000, 4096, PROT_READ) = 0
mprotect(0xffff9f0b0000, 4096, PROT_READ) = 0
mprotect(0xffff9ef64000, 4096, PROT_READ) = 0
mprotect(0xffff9ef3c000, 4096, PROT_READ) = 0
mprotect(0xffff9ef50000, 4096, PROT_READ) = 0
mprotect(0xffff9ef78000, 4096, PROT_READ) = 0
mprotect(0xffff9ef92000, 4096, PROT_READ) = 0
mprotect(0xffff9efaa000, 4096, PROT_READ) = 0
mprotect(0xffff9efdc000, 8192, PROT_READ) = 0
mprotect(0xffff9f06a000, 16384, PROT_READ) = 0
mprotect(0xffff9f08a000, 4096, PROT_READ) = 0
mprotect(0xffff9f09e000, 4096, PROT_READ) = 0
mprotect(0xffff9f0c4000, 4096, PROT_READ) = 0
mprotect(0xffff9f0dc000, 4096, PROT_READ) = 0
mprotect(0xffff9f0f3000, 4096, PROT_READ) = 0
mprotect(0xffff9f15f000, 4096, PROT_READ) = 0
mprotect(0xffff9f14c000, 4096, PROT_READ) = 0
mprotect(0xffff9f116000, 4096, PROT_READ) = 0
mprotect(0xffff9f318000, 4096, PROT_READ) = 0
mprotect(0xffff9f409000, 8192, PROT_READ) = 0
mprotect(0xffff9f42f000, 4096, PROT_READ) = 0
mprotect(0xaaaabaa10000, 4096, PROT_READ) = 0
mprotect(0xffff9f463000, 4096, PROT_READ) = 0
munmap(0xffff9f45e000, 7840)            = 0
set_tid_address(0xffff9ee7a0e0)         = 813
set_robust_list(0xffff9ee7a0f0, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xffff9f2d6570, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xffff9f2d6630, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0xaaaaeaf3b000
brk(0xaaaaeaf5c000)                     = 0xaaaaeaf5c000
newfstatat(AT_FDCWD, "/etc/libnl/classid", {st_mode=S_IFREG|0644, st_size=1130, ...}, 0) = 0
openat(AT_FDCWD, "/etc/libnl/classid", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1130, ...}) = 0
read(3, "################################"..., 4096) = 1130
read(3, "", 4096)                       = 0
close(3)                                = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
pipe2([3, 4], 0)                        = 0
fcntl(3, F_GETFL)                       = 0 (flags O_RDONLY)
fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
fcntl(4, F_GETFL)                       = 0x1 (flags O_WRONLY)
fcntl(4, F_SETFL, O_WRONLY|O_NONBLOCK)  = 0
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 5
openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 6
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 7
ioctl(7, _IOC(_IOC_NONE, 0x50, 0xff, 0), 0) = -1 ENOTTY (Inappropriate ioctl for device)
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 8
openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 9
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 10
ioctl(10, _IOC(_IOC_NONE, 0x50, 0x5, 0x10), 0xffffe6e417f0) = 0
newfstatat(AT_FDCWD, "/var/run/xenstored/socket", {st_mode=S_IFSOCK|0600, st_size=0, ...}, 0) = 0
socket(AF_UNIX, SOCK_STREAM, 0)         = 11
fcntl(11, F_GETFD)                      = 0
fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
connect(11, {sa_family=AF_UNIX, sun_path="/var/run/xenstored/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(11)                               = 0
faccessat(AT_FDCWD, "/dev/xen/xenbus", F_OK) = 0
newfstatat(AT_FDCWD, "/dev/xen/xenbus", {st_mode=S_IFCHR|0600, st_rdev=makedev(0xa, 0x3e), ...}, 0) = 0
openat(AT_FDCWD, "/dev/xen/xenbus", O_RDWR) = 11
openat(AT_FDCWD, "/etc/xen/xl.conf", O_RDONLY) = 12
fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
read(12, "## Global XL config file ##\n\n# S"..., 4096) = 1602
close(12)                               = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 262158
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) = 0xffff9f45f000
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 4096
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41820) = -1 EPERM (Operation not permitted)
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
close(6)                                = 0
close(5)                                = 0
munmap(0xffff9f45f000, 4096)            = 0
close(7)                                = 0
close(10)                               = 0
close(9)                                = 0
close(8)                                = 0
close(11)                               = 0
close(3)                                = 0
close(4)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

royger told me that it is a BUG and not an issue with my setup. Therefore here I am.

Cheers,
Andrea

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-03 14:54 Network driver domain broken Andrea Stevanato
@ 2022-03-03 16:01 ` Andrea Stevanato
  2022-03-03 16:33   ` Roger Pau Monné
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-03 16:01 UTC (permalink / raw)
  To: xen-devel; +Cc: roger.pau, wl, anthony.perard

On 03/03/2022 15:54, Andrea Stevanato wrote:
> Hi all,
> 
> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
> 
> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
> 
> name    = "guest0"
> kernel  = "/media/sd-mmcblk0p1/Image"
> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> memory  = 1024 
> vcpus   = 2
> driver_domain = 1
> 
> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
> While the second guest has been started with the following cfg:
> 
> name    = "guest1"
> kernel  = "/media/sd-mmcblk0p1/Image"
> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> memory  = 1024 vcpus   = 2
> vcpus   = 2
> vif = [ 'bridge=xenbr0, backend=guest0' ]
> 
> Follows the result of strace xl devd:
> 
> # strace xl devd
> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> brk(NULL)                               = 0xaaaaeaf3b000
> faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=7840, ...}) = 0
> mmap(NULL, 7840, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff9f45e000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxlutil.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0200\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=68168, ...}) = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f45c000
> mmap(NULL, 131784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f410000
> mprotect(0xffff9f41f000, 65536, PROT_NONE) = 0
> mmap(0xffff9f42f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff9f42f000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenlight.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\16\2\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=861848, ...}) = 0
> mmap(NULL, 925752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f32d000
> mprotect(0xffff9f3fa000, 61440, PROT_NONE) = 0
> mmap(0xffff9f409000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcc000) = 0xffff9f409000
> mmap(0xffff9f40f000, 56, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f40f000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxentoollog.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0P\r\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=10368, ...}) = 0
> mmap(NULL, 73904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f31a000
> mprotect(0xffff9f31c000, 61440, PROT_NONE) = 0
> mmap(0xffff9f32b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff9f32b000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libyajl.so.2", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\22\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=38728, ...}) = 0
> mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f300000
> mprotect(0xffff9f309000, 61440, PROT_NONE) = 0
> mmap(0xffff9f318000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9f318000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300j\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=113184, ...}) = 0
> mmap(NULL, 192872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f2d0000
> mprotect(0xffff9f2ea000, 65536, PROT_NONE) = 0
> mmap(0xffff9f2fa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0xffff9f2fa000
> mmap(0xffff9f2fc000, 12648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f2fc000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320I\2\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=1428872, ...}) = 0
> mmap(NULL, 1502000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f161000
> mprotect(0xffff9f2b8000, 61440, PROT_NONE) = 0
> mmap(0xffff9f2c7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x156000) = 0xffff9f2c7000
> mmap(0xffff9f2cd000, 11056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f2cd000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenevtchn.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\f\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=10240, ...}) = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f45a000
> mmap(NULL, 73856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f14e000
> mprotect(0xffff9f150000, 61440, PROT_NONE) = 0
> mmap(0xffff9f15f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff9f15f000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenctrl.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\203\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=154752, ...}) = 0
> mmap(NULL, 218504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f118000
> mprotect(0xffff9f13d000, 61440, PROT_NONE) = 0
> mmap(0xffff9f14c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9f14c000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenguest.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0PB\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=77248, ...}) = 0
> mmap(NULL, 140880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0f5000
> mprotect(0xffff9f107000, 61440, PROT_NONE) = 0
> mmap(0xffff9f116000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xffff9f116000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenhypfs.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300\16\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14432, ...}) = 0
> mmap(NULL, 78048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0e1000
> mprotect(0xffff9f0e3000, 65536, PROT_NONE) = 0
> mmap(0xffff9f0f3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f0f3000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenstore.so.3.0", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 $\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=31176, ...}) = 0
> mmap(NULL, 107088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0c6000
> mprotect(0xffff9f0cc000, 65536, PROT_NONE) = 0
> mmap(0xffff9f0dc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9f0dc000
> mmap(0xffff9f0de000, 8784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f0de000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\20\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
> mmap(NULL, 77920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0b2000
> mprotect(0xffff9f0b5000, 61440, PROT_NONE) = 0
> mmap(0xffff9f0c4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f0c4000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxentoolcore.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 \10\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=6104, ...}) = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f458000
> mmap(NULL, 69768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0a0000
> mprotect(0xffff9f0a1000, 61440, PROT_NONE) = 0
> mmap(0xffff9f0b0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff9f0b0000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\21\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
> mmap(NULL, 77840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f08c000
> mprotect(0xffff9f08e000, 65536, PROT_NONE) = 0
> mmap(0xffff9f09e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f09e000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\30\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=30680, ...}) = 0
> mmap(NULL, 94240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f074000
> mprotect(0xffff9f07a000, 65536, PROT_NONE) = 0
> mmap(0xffff9f08a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9f08a000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libnl-route-3.so.200", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\200\327\1\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=536688, ...}) = 0
> mmap(NULL, 609024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9efdf000
> mprotect(0xffff9f05a000, 65536, PROT_NONE) = 0
> mmap(0xffff9f06a000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7b000) = 0xffff9f06a000
> mmap(0xffff9f072000, 6912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f072000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libnl-3.so.200", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360\221\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=141304, ...}) = 0
> mmap(NULL, 205192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9efac000
> mprotect(0xffff9efcd000, 61440, PROT_NONE) = 0
> mmap(0xffff9efdc000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0xffff9efdc000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0#\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=31032, ...}) = 0
> mmap(NULL, 94568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef94000
> mprotect(0xffff9ef9b000, 61440, PROT_NONE) = 0
> mmap(0xffff9efaa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9efaa000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libfdt.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000#\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=38800, ...}) = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f456000
> mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef7a000
> mprotect(0xffff9ef83000, 61440, PROT_NONE) = 0
> mmap(0xffff9ef92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9ef92000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxengnttab.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\20\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14368, ...}) = 0
> mmap(NULL, 77984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef66000
> mprotect(0xffff9ef69000, 61440, PROT_NONE) = 0
> mmap(0xffff9ef78000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef78000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxencall.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\17\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
> mmap(NULL, 78064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef52000
> mprotect(0xffff9ef55000, 61440, PROT_NONE) = 0
> mmap(0xffff9ef64000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef64000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxenforeignmemory.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\16\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14392, ...}) = 0
> mmap(NULL, 78000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef3e000
> mprotect(0xffff9ef40000, 65536, PROT_NONE) = 0
> mmap(0xffff9ef50000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef50000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libxendevicemodel.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\23\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
> mmap(NULL, 78008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef2a000
> mprotect(0xffff9ef2d000, 61440, PROT_NONE) = 0
> mmap(0xffff9ef3c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef3c000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\27\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=70472, ...}) = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f454000
> mmap(NULL, 134160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef09000
> mprotect(0xffff9ef19000, 61440, PROT_NONE) = 0
> mmap(0xffff9ef28000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff9ef28000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\3403\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=153496, ...}) = 0
> mmap(NULL, 217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9eed3000
> mprotect(0xffff9eef7000, 65536, PROT_NONE) = 0
> mmap(0xffff9ef07000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9ef07000
> close(3)                                = 0
> openat(AT_FDCWD, "/usr/lib/liblzo2.so.2", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320&\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=120648, ...}) = 0
> mmap(NULL, 184336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9eea5000
> mprotect(0xffff9eec2000, 61440, PROT_NONE) = 0
> mmap(0xffff9eed1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xffff9eed1000
> close(3)                                = 0
> openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360%\0\0\0\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=92056, ...}) = 0
> mmap(NULL, 155664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ee7e000
> mprotect(0xffff9ee93000, 65536, PROT_NONE) = 0
> mmap(0xffff9eea3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xffff9eea3000
> close(3)                                = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9ee7c000
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9ee7a000
> mprotect(0xffff9f2c7000, 12288, PROT_READ) = 0
> mprotect(0xffff9eea3000, 4096, PROT_READ) = 0
> mprotect(0xffff9eed1000, 4096, PROT_READ) = 0
> mprotect(0xffff9f2fa000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef07000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef28000, 4096, PROT_READ) = 0
> mprotect(0xffff9f32b000, 4096, PROT_READ) = 0
> mprotect(0xffff9f0b0000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef64000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef3c000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef50000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef78000, 4096, PROT_READ) = 0
> mprotect(0xffff9ef92000, 4096, PROT_READ) = 0
> mprotect(0xffff9efaa000, 4096, PROT_READ) = 0
> mprotect(0xffff9efdc000, 8192, PROT_READ) = 0
> mprotect(0xffff9f06a000, 16384, PROT_READ) = 0
> mprotect(0xffff9f08a000, 4096, PROT_READ) = 0
> mprotect(0xffff9f09e000, 4096, PROT_READ) = 0
> mprotect(0xffff9f0c4000, 4096, PROT_READ) = 0
> mprotect(0xffff9f0dc000, 4096, PROT_READ) = 0
> mprotect(0xffff9f0f3000, 4096, PROT_READ) = 0
> mprotect(0xffff9f15f000, 4096, PROT_READ) = 0
> mprotect(0xffff9f14c000, 4096, PROT_READ) = 0
> mprotect(0xffff9f116000, 4096, PROT_READ) = 0
> mprotect(0xffff9f318000, 4096, PROT_READ) = 0
> mprotect(0xffff9f409000, 8192, PROT_READ) = 0
> mprotect(0xffff9f42f000, 4096, PROT_READ) = 0
> mprotect(0xaaaabaa10000, 4096, PROT_READ) = 0
> mprotect(0xffff9f463000, 4096, PROT_READ) = 0
> munmap(0xffff9f45e000, 7840)            = 0
> set_tid_address(0xffff9ee7a0e0)         = 813
> set_robust_list(0xffff9ee7a0f0, 24)     = 0
> rt_sigaction(SIGRTMIN, {sa_handler=0xffff9f2d6570, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
> rt_sigaction(SIGRT_1, {sa_handler=0xffff9f2d6630, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
> rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
> prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
> brk(NULL)                               = 0xaaaaeaf3b000
> brk(0xaaaaeaf5c000)                     = 0xaaaaeaf5c000
> newfstatat(AT_FDCWD, "/etc/libnl/classid", {st_mode=S_IFREG|0644, st_size=1130, ...}, 0) = 0
> openat(AT_FDCWD, "/etc/libnl/classid", O_RDONLY|O_CLOEXEC) = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=1130, ...}) = 0
> read(3, "################################"..., 4096) = 1130
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
> pipe2([3, 4], 0)                        = 0
> fcntl(3, F_GETFL)                       = 0 (flags O_RDONLY)
> fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
> fcntl(4, F_GETFL)                       = 0x1 (flags O_WRONLY)
> fcntl(4, F_SETFL, O_WRONLY|O_NONBLOCK)  = 0
> openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 5
> openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 6
> openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 7
> ioctl(7, _IOC(_IOC_NONE, 0x50, 0xff, 0), 0) = -1 ENOTTY (Inappropriate ioctl for device)
> openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 8
> openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 9
> openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 10
> ioctl(10, _IOC(_IOC_NONE, 0x50, 0x5, 0x10), 0xffffe6e417f0) = 0
> newfstatat(AT_FDCWD, "/var/run/xenstored/socket", {st_mode=S_IFSOCK|0600, st_size=0, ...}, 0) = 0
> socket(AF_UNIX, SOCK_STREAM, 0)         = 11
> fcntl(11, F_GETFD)                      = 0
> fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
> connect(11, {sa_family=AF_UNIX, sun_path="/var/run/xenstored/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
> close(11)                               = 0
> faccessat(AT_FDCWD, "/dev/xen/xenbus", F_OK) = 0
> newfstatat(AT_FDCWD, "/dev/xen/xenbus", {st_mode=S_IFCHR|0600, st_rdev=makedev(0xa, 0x3e), ...}, 0) = 0
> openat(AT_FDCWD, "/dev/xen/xenbus", O_RDWR) = 11
> openat(AT_FDCWD, "/etc/xen/xl.conf", O_RDONLY) = 12
> fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
> fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
> read(12, "## Global XL config file ##\n\n# S"..., 4096) = 1602
> close(12)                               = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 262158
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) = 0xffff9f45f000
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 4096
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41820) = -1 EPERM (Operation not permitted)
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> write(2, "libxl: ", 7libxl: )                  = 7
> write(2, "error: ", 7error: )                  = 7
> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> write(2, "\n", 1
> )                       = 1
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> write(2, "libxl: ", 7libxl: )                  = 7
> write(2, "error: ", 7error: )                  = 7
> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> write(2, "\n", 1
> )                       = 1
> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> write(2, "libxl: ", 7libxl: )                  = 7
> write(2, "error: ", 7error: )                  = 7
> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> write(2, "\n", 1
> )                       = 1
> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> close(6)                                = 0
> close(5)                                = 0
> munmap(0xffff9f45f000, 4096)            = 0
> close(7)                                = 0
> close(10)                               = 0
> close(9)                                = 0
> close(8)                                = 0
> close(11)                               = 0
> close(3)                                = 0
> close(4)                                = 0
> exit_group(0)                           = ?
> +++ exited with 0 +++
> 
> royger told me that it is a BUG and not an issue with my setup. Therefore here I am.
> 
> Cheers,
> Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-03 16:01 ` Andrea Stevanato
@ 2022-03-03 16:33   ` Roger Pau Monné
  2022-03-03 18:08     ` Jason Andryuk
  0 siblings, 1 reply; 25+ messages in thread
From: Roger Pau Monné @ 2022-03-03 16:33 UTC (permalink / raw)
  To: Andrea Stevanato; +Cc: xen-devel, wl, anthony.perard

On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
> On 03/03/2022 15:54, Andrea Stevanato wrote:
> > Hi all,
> > 
> > according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
> > 
> > What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
> > 
> > name    = "guest0"
> > kernel  = "/media/sd-mmcblk0p1/Image"
> > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > memory  = 1024 vcpus   = 2
> > driver_domain = 1
> > 
> > On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
> > While the second guest has been started with the following cfg:
> > 
> > name    = "guest1"
> > kernel  = "/media/sd-mmcblk0p1/Image"
> > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > memory  = 1024 vcpus   = 2
> > vcpus   = 2
> > vif = [ 'bridge=xenbr0, backend=guest0' ]
> > 
> > Follows the result of strace xl devd:
> > 
> > # strace xl devd
> > execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> > brk(NULL)                               = 0xaaaaeaf3b000
> > faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> > openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=7840, ...}) = 0
> > mmap(NULL, 7840, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff9f45e000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxlutil.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0200\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=68168, ...}) = 0
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f45c000
> > mmap(NULL, 131784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f410000
> > mprotect(0xffff9f41f000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f42f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff9f42f000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenlight.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\16\2\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=861848, ...}) = 0
> > mmap(NULL, 925752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f32d000
> > mprotect(0xffff9f3fa000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f409000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcc000) = 0xffff9f409000
> > mmap(0xffff9f40f000, 56, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f40f000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxentoollog.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0P\r\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=10368, ...}) = 0
> > mmap(NULL, 73904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f31a000
> > mprotect(0xffff9f31c000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f32b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff9f32b000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libyajl.so.2", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\22\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=38728, ...}) = 0
> > mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f300000
> > mprotect(0xffff9f309000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f318000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9f318000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300j\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=113184, ...}) = 0
> > mmap(NULL, 192872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f2d0000
> > mprotect(0xffff9f2ea000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f2fa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0xffff9f2fa000
> > mmap(0xffff9f2fc000, 12648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f2fc000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320I\2\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=1428872, ...}) = 0
> > mmap(NULL, 1502000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f161000
> > mprotect(0xffff9f2b8000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f2c7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x156000) = 0xffff9f2c7000
> > mmap(0xffff9f2cd000, 11056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f2cd000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenevtchn.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\f\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=10240, ...}) = 0
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f45a000
> > mmap(NULL, 73856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f14e000
> > mprotect(0xffff9f150000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f15f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff9f15f000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenctrl.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\203\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=154752, ...}) = 0
> > mmap(NULL, 218504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f118000
> > mprotect(0xffff9f13d000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f14c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9f14c000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenguest.so.4.14", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0PB\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=77248, ...}) = 0
> > mmap(NULL, 140880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0f5000
> > mprotect(0xffff9f107000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f116000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xffff9f116000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenhypfs.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300\16\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14432, ...}) = 0
> > mmap(NULL, 78048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0e1000
> > mprotect(0xffff9f0e3000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f0f3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f0f3000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenstore.so.3.0", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 $\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=31176, ...}) = 0
> > mmap(NULL, 107088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0c6000
> > mprotect(0xffff9f0cc000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f0dc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9f0dc000
> > mmap(0xffff9f0de000, 8784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f0de000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\20\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
> > mmap(NULL, 77920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0b2000
> > mprotect(0xffff9f0b5000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f0c4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f0c4000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxentoolcore.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 \10\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=6104, ...}) = 0
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f458000
> > mmap(NULL, 69768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f0a0000
> > mprotect(0xffff9f0a1000, 61440, PROT_NONE) = 0
> > mmap(0xffff9f0b0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff9f0b0000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\21\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
> > mmap(NULL, 77840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f08c000
> > mprotect(0xffff9f08e000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f09e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9f09e000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\30\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=30680, ...}) = 0
> > mmap(NULL, 94240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9f074000
> > mprotect(0xffff9f07a000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f08a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9f08a000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libnl-route-3.so.200", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\200\327\1\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=536688, ...}) = 0
> > mmap(NULL, 609024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9efdf000
> > mprotect(0xffff9f05a000, 65536, PROT_NONE) = 0
> > mmap(0xffff9f06a000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7b000) = 0xffff9f06a000
> > mmap(0xffff9f072000, 6912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff9f072000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libnl-3.so.200", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360\221\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=141304, ...}) = 0
> > mmap(NULL, 205192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9efac000
> > mprotect(0xffff9efcd000, 61440, PROT_NONE) = 0
> > mmap(0xffff9efdc000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0xffff9efdc000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0#\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=31032, ...}) = 0
> > mmap(NULL, 94568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef94000
> > mprotect(0xffff9ef9b000, 61440, PROT_NONE) = 0
> > mmap(0xffff9efaa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9efaa000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libfdt.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000#\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=38800, ...}) = 0
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f456000
> > mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef7a000
> > mprotect(0xffff9ef83000, 61440, PROT_NONE) = 0
> > mmap(0xffff9ef92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9ef92000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxengnttab.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\20\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14368, ...}) = 0
> > mmap(NULL, 77984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef66000
> > mprotect(0xffff9ef69000, 61440, PROT_NONE) = 0
> > mmap(0xffff9ef78000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef78000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxencall.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\17\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
> > mmap(NULL, 78064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef52000
> > mprotect(0xffff9ef55000, 61440, PROT_NONE) = 0
> > mmap(0xffff9ef64000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef64000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxenforeignmemory.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\16\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14392, ...}) = 0
> > mmap(NULL, 78000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef3e000
> > mprotect(0xffff9ef40000, 65536, PROT_NONE) = 0
> > mmap(0xffff9ef50000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef50000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libxendevicemodel.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\23\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
> > mmap(NULL, 78008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef2a000
> > mprotect(0xffff9ef2d000, 61440, PROT_NONE) = 0
> > mmap(0xffff9ef3c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff9ef3c000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\27\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=70472, ...}) = 0
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9f454000
> > mmap(NULL, 134160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ef09000
> > mprotect(0xffff9ef19000, 61440, PROT_NONE) = 0
> > mmap(0xffff9ef28000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff9ef28000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\3403\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=153496, ...}) = 0
> > mmap(NULL, 217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9eed3000
> > mprotect(0xffff9eef7000, 65536, PROT_NONE) = 0
> > mmap(0xffff9ef07000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9ef07000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/usr/lib/liblzo2.so.2", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320&\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=120648, ...}) = 0
> > mmap(NULL, 184336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9eea5000
> > mprotect(0xffff9eec2000, 61440, PROT_NONE) = 0
> > mmap(0xffff9eed1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xffff9eed1000
> > close(3)                                = 0
> > openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
> > read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360%\0\0\0\0\0\0"..., 832) = 832
> > fstat(3, {st_mode=S_IFREG|0755, st_size=92056, ...}) = 0
> > mmap(NULL, 155664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff9ee7e000
> > mprotect(0xffff9ee93000, 65536, PROT_NONE) = 0
> > mmap(0xffff9eea3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xffff9eea3000
> > close(3)                                = 0
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9ee7c000
> > mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff9ee7a000
> > mprotect(0xffff9f2c7000, 12288, PROT_READ) = 0
> > mprotect(0xffff9eea3000, 4096, PROT_READ) = 0
> > mprotect(0xffff9eed1000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f2fa000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef07000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef28000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f32b000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f0b0000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef64000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef3c000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef50000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef78000, 4096, PROT_READ) = 0
> > mprotect(0xffff9ef92000, 4096, PROT_READ) = 0
> > mprotect(0xffff9efaa000, 4096, PROT_READ) = 0
> > mprotect(0xffff9efdc000, 8192, PROT_READ) = 0
> > mprotect(0xffff9f06a000, 16384, PROT_READ) = 0
> > mprotect(0xffff9f08a000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f09e000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f0c4000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f0dc000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f0f3000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f15f000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f14c000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f116000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f318000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f409000, 8192, PROT_READ) = 0
> > mprotect(0xffff9f42f000, 4096, PROT_READ) = 0
> > mprotect(0xaaaabaa10000, 4096, PROT_READ) = 0
> > mprotect(0xffff9f463000, 4096, PROT_READ) = 0
> > munmap(0xffff9f45e000, 7840)            = 0
> > set_tid_address(0xffff9ee7a0e0)         = 813
> > set_robust_list(0xffff9ee7a0f0, 24)     = 0
> > rt_sigaction(SIGRTMIN, {sa_handler=0xffff9f2d6570, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
> > rt_sigaction(SIGRT_1, {sa_handler=0xffff9f2d6630, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
> > rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
> > prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
> > brk(NULL)                               = 0xaaaaeaf3b000
> > brk(0xaaaaeaf5c000)                     = 0xaaaaeaf5c000
> > newfstatat(AT_FDCWD, "/etc/libnl/classid", {st_mode=S_IFREG|0644, st_size=1130, ...}, 0) = 0
> > openat(AT_FDCWD, "/etc/libnl/classid", O_RDONLY|O_CLOEXEC) = 3
> > fstat(3, {st_mode=S_IFREG|0644, st_size=1130, ...}) = 0
> > read(3, "################################"..., 4096) = 1130
> > read(3, "", 4096)                       = 0
> > close(3)                                = 0
> > ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
> > pipe2([3, 4], 0)                        = 0
> > fcntl(3, F_GETFL)                       = 0 (flags O_RDONLY)
> > fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
> > fcntl(4, F_GETFL)                       = 0x1 (flags O_WRONLY)
> > fcntl(4, F_SETFL, O_WRONLY|O_NONBLOCK)  = 0
> > openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 5
> > openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 6
> > openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 7
> > ioctl(7, _IOC(_IOC_NONE, 0x50, 0xff, 0), 0) = -1 ENOTTY (Inappropriate ioctl for device)
> > openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 8
> > openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 9
> > openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 10
> > ioctl(10, _IOC(_IOC_NONE, 0x50, 0x5, 0x10), 0xffffe6e417f0) = 0
> > newfstatat(AT_FDCWD, "/var/run/xenstored/socket", {st_mode=S_IFSOCK|0600, st_size=0, ...}, 0) = 0
> > socket(AF_UNIX, SOCK_STREAM, 0)         = 11
> > fcntl(11, F_GETFD)                      = 0
> > fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
> > connect(11, {sa_family=AF_UNIX, sun_path="/var/run/xenstored/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
> > close(11)                               = 0
> > faccessat(AT_FDCWD, "/dev/xen/xenbus", F_OK) = 0
> > newfstatat(AT_FDCWD, "/dev/xen/xenbus", {st_mode=S_IFCHR|0600, st_rdev=makedev(0xa, 0x3e), ...}, 0) = 0
> > openat(AT_FDCWD, "/dev/xen/xenbus", O_RDWR) = 11
> > openat(AT_FDCWD, "/etc/xen/xl.conf", O_RDONLY) = 12
> > fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
> > fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
> > read(12, "## Global XL config file ##\n\n# S"..., 4096) = 1602
> > close(12)                               = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 262158
> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) = 0xffff9f45f000
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 4096
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41850) = 0
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41820) = -1 EPERM (Operation not permitted)
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > write(2, "libxl: ", 7libxl: )                  = 7
> > write(2, "error: ", 7error: )                  = 7
> > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > write(2, "\n", 1
> > )                       = 1
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > write(2, "libxl: ", 7libxl: )                  = 7
> > write(2, "error: ", 7error: )                  = 7
> > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > write(2, "\n", 1
> > )                       = 1
> > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > write(2, "libxl: ", 7libxl: )                  = 7
> > write(2, "error: ", 7error: )                  = 7
> > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > write(2, "\n", 1
> > )                       = 1
> > clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
> > wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
> > --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> > close(6)                                = 0
> > close(5)                                = 0
> > munmap(0xffff9f45f000, 4096)            = 0
> > close(7)                                = 0
> > close(10)                               = 0
> > close(9)                                = 0
> > close(8)                                = 0
> > close(11)                               = 0
> > close(3)                                = 0
> > close(4)                                = 0
> > exit_group(0)                           = ?
> > +++ exited with 0 +++
> > 
> > royger told me that it is a BUG and not an issue with my setup. Therefore here I am.

Just a bit more context: AFAICT the calls to libxl_cpu_bitmap_alloc in
parse_global_config will prevent xl from being usable on anything
different than the control domain (due to sysctl only available to
privileged domains). This is an issue for 'xl devd', as it won't
start anymore.

A plausible solution might be to avoid the calls to init the several
masks when the domain is not privileged, as those are only used for
domain creation or vPCU pinning related operations that are not
possible for a driver domain anyway.

Thanks, Roger.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-03 16:33   ` Roger Pau Monné
@ 2022-03-03 18:08     ` Jason Andryuk
  2022-03-04 11:18       ` Andrea Stevanato
                         ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Jason Andryuk @ 2022-03-03 18:08 UTC (permalink / raw)
  To: Roger Pau Monné; +Cc: Andrea Stevanato, xen-devel, wl, Anthony PERARD

On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>
> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
> > On 03/03/2022 15:54, Andrea Stevanato wrote:
> > > Hi all,
> > >
> > > according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
> > >
> > > What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
> > >
> > > name    = "guest0"
> > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > memory  = 1024 vcpus   = 2
> > > driver_domain = 1
> > >
> > > On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
> > > While the second guest has been started with the following cfg:
> > >
> > > name    = "guest1"
> > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > memory  = 1024 vcpus   = 2
> > > vcpus   = 2
> > > vif = [ 'bridge=xenbr0, backend=guest0' ]
> > >
> > > Follows the result of strace xl devd:
> > >
> > > # strace xl devd
> > > execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0

> > > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > > write(2, "libxl: ", 7libxl: )                  = 7
> > > write(2, "error: ", 7error: )                  = 7
> > > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > > write(2, "\n", 1
> > > )                       = 1
> > > clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
> > > wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
> > > --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---

xl devd is daemonizing, but strace is only following the first
process.  Use `strace xl devd -F` to prevent the daemonizing (or
`strace -f xl devd` to follow children).

> > > close(6)                                = 0
> > > close(5)                                = 0
> > > munmap(0xffff9f45f000, 4096)            = 0
> > > close(7)                                = 0
> > > close(10)                               = 0
> > > close(9)                                = 0
> > > close(8)                                = 0
> > > close(11)                               = 0
> > > close(3)                                = 0
> > > close(4)                                = 0
> > > exit_group(0)                           = ?
> > > +++ exited with 0 +++
> > >
> > > royger told me that it is a BUG and not an issue with my setup. Therefore here I am.
>
> Just a bit more context: AFAICT the calls to libxl_cpu_bitmap_alloc in
> parse_global_config will prevent xl from being usable on anything
> different than the control domain (due to sysctl only available to
> privileged domains). This is an issue for 'xl devd', as it won't
> start anymore.

These look non-fatal at first glance?

Regards,
Jason


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-03 18:08     ` Jason Andryuk
@ 2022-03-04 11:18       ` Andrea Stevanato
  2022-03-04 11:52       ` Roger Pau Monné
  2022-03-04 11:56       ` Andrea Stevanato
  2 siblings, 0 replies; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-04 11:18 UTC (permalink / raw)
  To: Jason Andryuk, Roger Pau Monné; +Cc: xen-devel, wl, Anthony PERARD

On 03/03/2022 19:08, Jason Andryuk wrote:
> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>>
>> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
>>> On 03/03/2022 15:54, Andrea Stevanato wrote:
>>>> Hi all,
>>>>
>>>> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
>>>>
>>>> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
>>>>
>>>> name    = "guest0"
>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>> memory  = 1024 vcpus   = 2
>>>> driver_domain = 1
>>>>
>>>> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
>>>> While the second guest has been started with the following cfg:
>>>>
>>>> name    = "guest1"
>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>> memory  = 1024 vcpus   = 2
>>>> vcpus   = 2
>>>> vif = [ 'bridge=xenbr0, backend=guest0' ]
>>>>
>>>> Follows the result of strace xl devd:
>>>>
>>>> # strace xl devd
>>>> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> 
>>>> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
>>>> write(2, "libxl: ", 7libxl: )                  = 7
>>>> write(2, "error: ", 7error: )                  = 7
>>>> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
>>>> write(2, "\n", 1
>>>> )                       = 1
>>>> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
>>>> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
>>>> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> 
> xl devd is daemonizing, but strace is only following the first
> process.  Use `strace xl devd -F` to prevent the daemonizing (or
> `strace -f xl devd` to follow children).
> 
>>>> close(6)                                = 0
>>>> close(5)                                = 0
>>>> munmap(0xffff9f45f000, 4096)            = 0
>>>> close(7)                                = 0
>>>> close(10)                               = 0
>>>> close(9)                                = 0
>>>> close(8)                                = 0
>>>> close(11)                               = 0
>>>> close(3)                                = 0
>>>> close(4)                                = 0
>>>> exit_group(0)                           = ?
>>>> +++ exited with 0 +++
>>>>
>>>> royger told me that it is a BUG and not an issue with my setup. Therefore here I am.
>>
>> Just a bit more context: AFAICT the calls to libxl_cpu_bitmap_alloc in
>> parse_global_config will prevent xl from being usable on anything
>> different than the control domain (due to sysctl only available to
>> privileged domains). This is an issue for 'xl devd', as it won't
>> start anymore.
> 
> These look non-fatal at first glance?
> 
> Regards,
> Jason

Well, actually, this prevents me to be able to create network driver 
domains for inter-guests networking (no passthrough is required since 
they do not need to reach outside).

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-03 18:08     ` Jason Andryuk
  2022-03-04 11:18       ` Andrea Stevanato
@ 2022-03-04 11:52       ` Roger Pau Monné
  2022-03-04 12:05         ` Andrea Stevanato
  2022-03-04 11:56       ` Andrea Stevanato
  2 siblings, 1 reply; 25+ messages in thread
From: Roger Pau Monné @ 2022-03-04 11:52 UTC (permalink / raw)
  To: Jason Andryuk; +Cc: Andrea Stevanato, xen-devel, wl, Anthony PERARD

On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
> >
> > On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
> > > On 03/03/2022 15:54, Andrea Stevanato wrote:
> > > > Hi all,
> > > >
> > > > according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
> > > >
> > > > What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
> > > >
> > > > name    = "guest0"
> > > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > > memory  = 1024 vcpus   = 2
> > > > driver_domain = 1
> > > >
> > > > On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
> > > > While the second guest has been started with the following cfg:
> > > >
> > > > name    = "guest1"
> > > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > > memory  = 1024 vcpus   = 2
> > > > vcpus   = 2
> > > > vif = [ 'bridge=xenbr0, backend=guest0' ]
> > > >
> > > > Follows the result of strace xl devd:
> > > >
> > > > # strace xl devd
> > > > execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> 
> > > > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > > > write(2, "libxl: ", 7libxl: )                  = 7
> > > > write(2, "error: ", 7error: )                  = 7
> > > > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > > > write(2, "\n", 1
> > > > )                       = 1
> > > > clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
> > > > wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
> > > > --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> 
> xl devd is daemonizing, but strace is only following the first
> process.  Use `strace xl devd -F` to prevent the daemonizing (or
> `strace -f xl devd` to follow children).

Or as a first step try to see what kind of messages you get from `xl
devd -F` when trying to attach a device using the driver domain.

> > > > close(6)                                = 0
> > > > close(5)                                = 0
> > > > munmap(0xffff9f45f000, 4096)            = 0
> > > > close(7)                                = 0
> > > > close(10)                               = 0
> > > > close(9)                                = 0
> > > > close(8)                                = 0
> > > > close(11)                               = 0
> > > > close(3)                                = 0
> > > > close(4)                                = 0
> > > > exit_group(0)                           = ?
> > > > +++ exited with 0 +++
> > > >
> > > > royger told me that it is a BUG and not an issue with my setup. Therefore here I am.
> >
> > Just a bit more context: AFAICT the calls to libxl_cpu_bitmap_alloc in
> > parse_global_config will prevent xl from being usable on anything
> > different than the control domain (due to sysctl only available to
> > privileged domains). This is an issue for 'xl devd', as it won't
> > start anymore.
> 
> These look non-fatal at first glance?

Indeed. I was too quick reading the trace and assumed `xl devd` exited
due to the errors, but those are non fatal, the process just
daemonized.

Thanks, Roger.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-03 18:08     ` Jason Andryuk
  2022-03-04 11:18       ` Andrea Stevanato
  2022-03-04 11:52       ` Roger Pau Monné
@ 2022-03-04 11:56       ` Andrea Stevanato
  2 siblings, 0 replies; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-04 11:56 UTC (permalink / raw)
  To: Jason Andryuk, Roger Pau Monné; +Cc: xen-devel, wl, Anthony PERARD

On 3/3/2022 7:08 PM, Jason Andryuk wrote:
> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>>
>> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
>>> On 03/03/2022 15:54, Andrea Stevanato wrote:
>>>> Hi all,
>>>>
>>>> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
>>>>
>>>> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
>>>>
>>>> name    = "guest0"
>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>> memory  = 1024 vcpus   = 2
>>>> driver_domain = 1
>>>>
>>>> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
>>>> While the second guest has been started with the following cfg:
>>>>
>>>> name    = "guest1"
>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>> memory  = 1024 vcpus   = 2
>>>> vcpus   = 2
>>>> vif = [ 'bridge=xenbr0, backend=guest0' ]
>>>>
>>>> Follows the result of strace xl devd:
>>>>
>>>> # strace xl devd
>>>> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> 
>>>> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
>>>> write(2, "libxl: ", 7libxl: )                  = 7
>>>> write(2, "error: ", 7error: )                  = 7
>>>> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
>>>> write(2, "\n", 1
>>>> )                       = 1
>>>> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
>>>> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
>>>> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> 
> xl devd is daemonizing, but strace is only following the first
> process.  Use `strace xl devd -F` to prevent the daemonizing (or
> `strace -f xl devd` to follow children).

Sorry, I have not read this part.

# strace xl devd -F
execve("/usr/sbin/xl", ["xl", "devd", "-F"], 0xffffc53b6e50 /* 13 vars 
*/) = 0
brk(NULL)                               = 0xaaab058a0000
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such 
file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=7840, ...}) = 0
mmap(NULL, 7840, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff833c7000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxlutil.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0200\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=68168, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff833c5000
mmap(NULL, 131784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83379000
mprotect(0xffff83388000, 65536, PROT_NONE) = 0
mmap(0xffff83398000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff83398000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenlight.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\16\2\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=861848, ...}) = 0
mmap(NULL, 925752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83296000
mprotect(0xffff83363000, 61440, PROT_NONE) = 0
mmap(0xffff83372000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcc000) = 0xffff83372000
mmap(0xffff83378000, 56, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff83378000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxentoollog.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0P\r\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10368, ...}) = 0
mmap(NULL, 73904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83283000
mprotect(0xffff83285000, 61440, PROT_NONE) = 0
mmap(0xffff83294000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff83294000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libyajl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\22\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38728, ...}) = 0
mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83269000
mprotect(0xffff83272000, 61440, PROT_NONE) = 0
mmap(0xffff83281000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff83281000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300j\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=113184, ...}) = 0
mmap(NULL, 192872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83239000
mprotect(0xffff83253000, 65536, PROT_NONE) = 0
mmap(0xffff83263000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0xffff83263000
mmap(0xffff83265000, 12648, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff83265000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320I\2\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1428872, ...}) = 0
mmap(NULL, 1502000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 
0) = 0xffff830ca000
mprotect(0xffff83221000, 61440, PROT_NONE) = 0
mmap(0xffff83230000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x156000) = 0xffff83230000
mmap(0xffff83236000, 11056, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff83236000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenevtchn.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\f\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10240, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff833c3000
mmap(NULL, 73856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff830b7000
mprotect(0xffff830b9000, 61440, PROT_NONE) = 0
mmap(0xffff830c8000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff830c8000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenctrl.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\203\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=154752, ...}) = 0
mmap(NULL, 218504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83081000
mprotect(0xffff830a6000, 61440, PROT_NONE) = 0
mmap(0xffff830b5000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff830b5000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenguest.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0PB\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=77248, ...}) = 0
mmap(NULL, 140880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff8305e000
mprotect(0xffff83070000, 61440, PROT_NONE) = 0
mmap(0xffff8307f000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xffff8307f000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenhypfs.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300\16\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14432, ...}) = 0
mmap(NULL, 78048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff8304a000
mprotect(0xffff8304c000, 65536, PROT_NONE) = 0
mmap(0xffff8305c000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff8305c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenstore.so.3.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 
$\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31176, ...}) = 0
mmap(NULL, 107088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff8302f000
mprotect(0xffff83035000, 65536, PROT_NONE) = 0
mmap(0xffff83045000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff83045000
mmap(0xffff83047000, 8784, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff83047000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\20\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
mmap(NULL, 77920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff8301b000
mprotect(0xffff8301e000, 61440, PROT_NONE) = 0
mmap(0xffff8302d000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff8302d000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxentoolcore.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 
\10\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=6104, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff833c1000
mmap(NULL, 69768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff83009000
mprotect(0xffff8300a000, 61440, PROT_NONE) = 0
mmap(0xffff83019000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff83019000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\21\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
mmap(NULL, 77840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82ff5000
mprotect(0xffff82ff7000, 65536, PROT_NONE) = 0
mmap(0xffff83007000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff83007000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\30\0\0\0\0\0\0"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=30680, ...}) = 0
mmap(NULL, 94240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82fdd000
mprotect(0xffff82fe3000, 65536, PROT_NONE) = 0
mmap(0xffff82ff3000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff82ff3000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libnl-route-3.so.200", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\200\327\1\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=536688, ...}) = 0
mmap(NULL, 609024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82f48000
mprotect(0xffff82fc3000, 65536, PROT_NONE) = 0
mmap(0xffff82fd3000, 32768, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7b000) = 0xffff82fd3000
mmap(0xffff82fdb000, 6912, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff82fdb000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libnl-3.so.200", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360\221\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=141304, ...}) = 0
mmap(NULL, 205192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82f15000
mprotect(0xffff82f36000, 61440, PROT_NONE) = 0
mmap(0xffff82f45000, 12288, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0xffff82f45000
close(3)                                = 0
openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0#\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31032, ...}) = 0
mmap(NULL, 94568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82efd000
mprotect(0xffff82f04000, 61440, PROT_NONE) = 0
mmap(0xffff82f13000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff82f13000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libfdt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000#\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38800, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff833bf000
mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82ee3000
mprotect(0xffff82eec000, 61440, PROT_NONE) = 0
mmap(0xffff82efb000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff82efb000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxengnttab.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\20\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14368, ...}) = 0
mmap(NULL, 77984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82ecf000
mprotect(0xffff82ed2000, 61440, PROT_NONE) = 0
mmap(0xffff82ee1000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff82ee1000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxencall.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\17\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
mmap(NULL, 78064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82ebb000
mprotect(0xffff82ebe000, 61440, PROT_NONE) = 0
mmap(0xffff82ecd000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff82ecd000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenforeignmemory.so.1", 
O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\16\0\0\0\0\0\0"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14392, ...}) = 0
mmap(NULL, 78000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82ea7000
mprotect(0xffff82ea9000, 65536, PROT_NONE) = 0
mmap(0xffff82eb9000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff82eb9000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxendevicemodel.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\23\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
mmap(NULL, 78008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82e93000
mprotect(0xffff82e96000, 61440, PROT_NONE) = 0
mmap(0xffff82ea5000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff82ea5000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\27\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=70472, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff833bd000
mmap(NULL, 134160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82e72000
mprotect(0xffff82e82000, 61440, PROT_NONE) = 0
mmap(0xffff82e91000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff82e91000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\3403\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=153496, ...}) = 0
mmap(NULL, 217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82e3c000
mprotect(0xffff82e60000, 65536, PROT_NONE) = 0
mmap(0xffff82e70000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff82e70000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzo2.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320&\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=120648, ...}) = 0
mmap(NULL, 184336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82e0e000
mprotect(0xffff82e2b000, 61440, PROT_NONE) = 0
mmap(0xffff82e3a000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xffff82e3a000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360%\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92056, ...}) = 0
mmap(NULL, 155664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff82de7000
mprotect(0xffff82dfc000, 65536, PROT_NONE) = 0
mmap(0xffff82e0c000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xffff82e0c000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff82de5000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff82de3000
mprotect(0xffff83230000, 12288, PROT_READ) = 0
mprotect(0xffff82e0c000, 4096, PROT_READ) = 0
mprotect(0xffff82e3a000, 4096, PROT_READ) = 0
mprotect(0xffff83263000, 4096, PROT_READ) = 0
mprotect(0xffff82e70000, 4096, PROT_READ) = 0
mprotect(0xffff82e91000, 4096, PROT_READ) = 0
mprotect(0xffff83294000, 4096, PROT_READ) = 0
mprotect(0xffff83019000, 4096, PROT_READ) = 0
mprotect(0xffff82ecd000, 4096, PROT_READ) = 0
mprotect(0xffff82ea5000, 4096, PROT_READ) = 0
mprotect(0xffff82eb9000, 4096, PROT_READ) = 0
mprotect(0xffff82ee1000, 4096, PROT_READ) = 0
mprotect(0xffff82efb000, 4096, PROT_READ) = 0
mprotect(0xffff82f13000, 4096, PROT_READ) = 0
mprotect(0xffff82f45000, 8192, PROT_READ) = 0
mprotect(0xffff82fd3000, 16384, PROT_READ) = 0
mprotect(0xffff82ff3000, 4096, PROT_READ) = 0
mprotect(0xffff83007000, 4096, PROT_READ) = 0
mprotect(0xffff8302d000, 4096, PROT_READ) = 0
mprotect(0xffff83045000, 4096, PROT_READ) = 0
mprotect(0xffff8305c000, 4096, PROT_READ) = 0
mprotect(0xffff830c8000, 4096, PROT_READ) = 0
mprotect(0xffff830b5000, 4096, PROT_READ) = 0
mprotect(0xffff8307f000, 4096, PROT_READ) = 0
mprotect(0xffff83281000, 4096, PROT_READ) = 0
mprotect(0xffff83372000, 8192, PROT_READ) = 0
mprotect(0xffff83398000, 4096, PROT_READ) = 0
mprotect(0xaaaac7570000, 4096, PROT_READ) = 0
mprotect(0xffff833cc000, 4096, PROT_READ) = 0
munmap(0xffff833c7000, 7840)            = 0
set_tid_address(0xffff82de30e0)         = 767
set_robust_list(0xffff82de30f0, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xffff8323f570, sa_mask=[], 
sa_flags=SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xffff8323f630, sa_mask=[], 
sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, 
rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0xaaab058a0000
brk(0xaaab058c1000)                     = 0xaaab058c1000
newfstatat(AT_FDCWD, "/etc/libnl/classid", {st_mode=S_IFREG|0644, 
st_size=1130, ...}, 0) = 0
openat(AT_FDCWD, "/etc/libnl/classid", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1130, ...}) = 0
read(3, "################################"..., 4096) = 1130
read(3, "", 4096)                       = 0
close(3)                                = 0
ioctl(2, TCGETS, 0xffffdf6a4f18)        = -1 ENOTTY (Inappropriate ioctl 
for device)
pipe2([3, 4], 0)                        = 0
fcntl(3, F_GETFL)                       = 0 (flags O_RDONLY)
fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
fcntl(4, F_GETFL)                       = 0x1 (flags O_WRONLY)
fcntl(4, F_SETFL, O_WRONLY|O_NONBLOCK)  = 0
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 5
openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 6
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 7
ioctl(7, _IOC(_IOC_NONE, 0x50, 0xff, 0), 0) = -1 ENOTTY (Inappropriate 
ioctl for device)
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 8
openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 9
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 10
ioctl(10, _IOC(_IOC_NONE, 0x50, 0x5, 0x10), 0xffffdf6a4aa0) = 0
newfstatat(AT_FDCWD, "/var/run/xenstored/socket", 0xffffdf6a4ed0, 0) = 
-1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/dev/xen/xenbus", F_OK) = 0
newfstatat(AT_FDCWD, "/dev/xen/xenbus", {st_mode=S_IFCHR|0600, 
st_rdev=makedev(0xa, 0x3e), ...}, 0) = 0
openat(AT_FDCWD, "/dev/xen/xenbus", O_RDWR) = 11
openat(AT_FDCWD, "/etc/xen/xl.conf", O_RDONLY) = 12
fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
read(12, "## Global XL config file ##\n\n# S"..., 4096) = 1602
close(12)                               = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 262158
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) = 0xffff833c8000
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 4096
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4b00) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4ad0) = -1 EPERM 
(Operation not permitted)
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4df0) = -1 EPERM 
(Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 
87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the 
maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4df0) = -1 EPERM 
(Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 
87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the 
maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffdf6a4df0) = -1 EPERM 
(Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 
87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the 
maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
pipe2([12, 13], 0)                      = 0
fcntl(12, F_GETFL)                      = 0 (flags O_RDONLY)
fcntl(12, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
fcntl(13, F_GETFL)                      = 0x1 (flags O_WRONLY)
fcntl(13, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0", 16) = 16
write(11, "domid\0", 6)                 = 6
read(11, "\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0", 16) = 16
read(11, "1", 1)                        = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
pipe2([14, 15], 0)                      = 0
futex(0xffff8302e048, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
mmap(NULL, 141168, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 
0) = 0xffff82dc0000
mprotect(0xffff82dc1000, 137072, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], ~[KILL STOP RTMIN RT_1], 8) = 0
clone(child_stack=0xffff82de10e0, 
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, 
parent_tid=[768], tls=0xffff82de2000, child_tidptr=0xffff82de1940) = 768
rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\4\0\0\0\0\0\0\0\0\0\0\0\34\0\0\0", 16) = 16
write(11, "/local/domain/1/backend\0", 24) = 24
write(11, "3/0\0", 4)                   = 4
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\1\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", 16) = 16
write(11, "/local/domain/1/backend\0", 24) = 24
futex(0xaaab058a13b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab058a1360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0strace: Process 767 detached
  <detached ...>

>>>> close(6)                                = 0
>>>> close(5)                                = 0
>>>> munmap(0xffff9f45f000, 4096)            = 0
>>>> close(7)                                = 0
>>>> close(10)                               = 0
>>>> close(9)                                = 0
>>>> close(8)                                = 0
>>>> close(11)                               = 0
>>>> close(3)                                = 0
>>>> close(4)                                = 0
>>>> exit_group(0)                           = ?
>>>> +++ exited with 0 +++
>>>>
>>>> royger told me that it is a BUG and not an issue with my setup. Therefore here I am.
>>
>> Just a bit more context: AFAICT the calls to libxl_cpu_bitmap_alloc in
>> parse_global_config will prevent xl from being usable on anything
>> different than the control domain (due to sysctl only available to
>> privileged domains). This is an issue for 'xl devd', as it won't
>> start anymore.
> 
> These look non-fatal at first glance?
> 
> Regards,
> Jason

Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-04 11:52       ` Roger Pau Monné
@ 2022-03-04 12:05         ` Andrea Stevanato
  2022-03-04 12:27           ` Roger Pau Monné
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-04 12:05 UTC (permalink / raw)
  To: Roger Pau Monné, Jason Andryuk; +Cc: xen-devel, wl, Anthony PERARD

On 3/4/2022 12:52 PM, Roger Pau Monné wrote:
> On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
>> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>
>>> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
>>>> On 03/03/2022 15:54, Andrea Stevanato wrote:
>>>>> Hi all,
>>>>>
>>>>> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
>>>>>
>>>>> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
>>>>>
>>>>> name    = "guest0"
>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>> memory  = 1024 vcpus   = 2
>>>>> driver_domain = 1
>>>>>
>>>>> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
>>>>> While the second guest has been started with the following cfg:
>>>>>
>>>>> name    = "guest1"
>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>> memory  = 1024 vcpus   = 2
>>>>> vcpus   = 2
>>>>> vif = [ 'bridge=xenbr0, backend=guest0' ]
>>>>>
>>>>> Follows the result of strace xl devd:
>>>>>
>>>>> # strace xl devd
>>>>> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
>>
>>>>> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
>>>>> write(2, "libxl: ", 7libxl: )                  = 7
>>>>> write(2, "error: ", 7error: )                  = 7
>>>>> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
>>>>> write(2, "\n", 1
>>>>> )                       = 1
>>>>> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
>>>>> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
>>>>> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
>>
>> xl devd is daemonizing, but strace is only following the first
>> process.  Use `strace xl devd -F` to prevent the daemonizing (or
>> `strace -f xl devd` to follow children).
> 
> Or as a first step try to see what kind of messages you get from `xl
> devd -F` when trying to attach a device using the driver domain.

Nothing has changed. On guest0 (the driver domain):

# xl devd -F
libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to 
retrieve the maximum number of cpus
libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to 
retrieve the maximum number of cpus
libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to 
retrieve the maximum number of cpus
[  696.805619] xenbr0: port 1(vif2.0) entered blocking state
[  696.810334] xenbr0: port 1(vif2.0) entered disabled state
[  696.824518] device vif2.0 entered promiscuous mode

While on dom0:

# xl network-list guest1
Idx BE Mac Addr.         handle state evt-ch   tx-/rx-ring-ref BE-path
0   1  00:16:3e:18:52:ac     0     6     -1    -1/-1 
/local/domain/1/backend/vif/2/0

The same with using strace gives the following output:

# strace xl devd -F
execve("/usr/sbin/xl", ["xl", "devd", "-F"], 0xffffeed242a0 /* 13 vars 
*/) = 0
brk(NULL)                               = 0xaaab092a8000
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such 
file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=7840, ...}) = 0
mmap(NULL, 7840, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff986e2000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxlutil.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0200\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=68168, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff986e0000
mmap(NULL, 131784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98694000
mprotect(0xffff986a3000, 65536, PROT_NONE) = 0
mmap(0xffff986b3000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff986b3000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenlight.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\16\2\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=861848, ...}) = 0
mmap(NULL, 925752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff985b1000
mprotect(0xffff9867e000, 61440, PROT_NONE) = 0
mmap(0xffff9868d000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xcc000) = 0xffff9868d000
mmap(0xffff98693000, 56, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff98693000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxentoollog.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0P\r\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10368, ...}) = 0
mmap(NULL, 73904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff9859e000
mprotect(0xffff985a0000, 61440, PROT_NONE) = 0
mmap(0xffff985af000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff985af000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libyajl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\22\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38728, ...}) = 0
mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98584000
mprotect(0xffff9858d000, 61440, PROT_NONE) = 0
mmap(0xffff9859c000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff9859c000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300j\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=113184, ...}) = 0
mmap(NULL, 192872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98554000
mprotect(0xffff9856e000, 65536, PROT_NONE) = 0
mmap(0xffff9857e000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0xffff9857e000
mmap(0xffff98580000, 12648, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff98580000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320I\2\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1428872, ...}) = 0
mmap(NULL, 1502000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 
0) = 0xffff983e5000
mprotect(0xffff9853c000, 61440, PROT_NONE) = 0
mmap(0xffff9854b000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x156000) = 0xffff9854b000
mmap(0xffff98551000, 11056, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff98551000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenevtchn.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\f\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=10240, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff986de000
mmap(NULL, 73856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff983d2000
mprotect(0xffff983d4000, 61440, PROT_NONE) = 0
mmap(0xffff983e3000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xffff983e3000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenctrl.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\203\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=154752, ...}) = 0
mmap(NULL, 218504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff9839c000
mprotect(0xffff983c1000, 61440, PROT_NONE) = 0
mmap(0xffff983d0000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff983d0000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenguest.so.4.14", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0PB\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=77248, ...}) = 0
mmap(NULL, 140880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98379000
mprotect(0xffff9838b000, 61440, PROT_NONE) = 0
mmap(0xffff9839a000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xffff9839a000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenhypfs.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300\16\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14432, ...}) = 0
mmap(NULL, 78048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98365000
mprotect(0xffff98367000, 65536, PROT_NONE) = 0
mmap(0xffff98377000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff98377000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenstore.so.3.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 
$\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31176, ...}) = 0
mmap(NULL, 107088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff9834a000
mprotect(0xffff98350000, 65536, PROT_NONE) = 0
mmap(0xffff98360000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff98360000
mmap(0xffff98362000, 8784, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff98362000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0@\20\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
mmap(NULL, 77920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98336000
mprotect(0xffff98339000, 61440, PROT_NONE) = 0
mmap(0xffff98348000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff98348000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxentoolcore.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0 
\10\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=6104, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff986dc000
mmap(NULL, 69768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98324000
mprotect(0xffff98325000, 61440, PROT_NONE) = 0
mmap(0xffff98334000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff98334000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\21\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14296, ...}) = 0
mmap(NULL, 77840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98310000
mprotect(0xffff98312000, 65536, PROT_NONE) = 0
mmap(0xffff98322000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff98322000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\30\0\0\0\0\0\0"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=30680, ...}) = 0
mmap(NULL, 94240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff982f8000
mprotect(0xffff982fe000, 65536, PROT_NONE) = 0
mmap(0xffff9830e000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9830e000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libnl-route-3.so.200", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\200\327\1\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=536688, ...}) = 0
mmap(NULL, 609024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98263000
mprotect(0xffff982de000, 65536, PROT_NONE) = 0
mmap(0xffff982ee000, 32768, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7b000) = 0xffff982ee000
mmap(0xffff982f6000, 6912, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff982f6000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libnl-3.so.200", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360\221\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=141304, ...}) = 0
mmap(NULL, 205192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98230000
mprotect(0xffff98251000, 61440, PROT_NONE) = 0
mmap(0xffff98260000, 12288, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0xffff98260000
close(3)                                = 0
openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0#\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31032, ...}) = 0
mmap(NULL, 94568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98218000
mprotect(0xffff9821f000, 61440, PROT_NONE) = 0
mmap(0xffff9822e000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xffff9822e000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libfdt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000#\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=38800, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff986da000
mmap(NULL, 102416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff981fe000
mprotect(0xffff98207000, 61440, PROT_NONE) = 0
mmap(0xffff98216000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xffff98216000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxengnttab.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\20\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14368, ...}) = 0
mmap(NULL, 77984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff981ea000
mprotect(0xffff981ed000, 61440, PROT_NONE) = 0
mmap(0xffff981fc000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff981fc000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxencall.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\17\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
mmap(NULL, 78064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff981d6000
mprotect(0xffff981d9000, 61440, PROT_NONE) = 0
mmap(0xffff981e8000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff981e8000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxenforeignmemory.so.1", 
O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0000\16\0\0\0\0\0\0"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14392, ...}) = 0
mmap(NULL, 78000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff981c2000
mprotect(0xffff981c4000, 65536, PROT_NONE) = 0
mmap(0xffff981d4000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff981d4000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libxendevicemodel.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0`\23\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14400, ...}) = 0
mmap(NULL, 78008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff981ae000
mprotect(0xffff981b1000, 61440, PROT_NONE) = 0
mmap(0xffff981c0000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xffff981c0000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320\27\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=70472, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff986d8000
mmap(NULL, 134160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff9818d000
mprotect(0xffff9819d000, 61440, PROT_NONE) = 0
mmap(0xffff981ac000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xffff981ac000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\3403\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=153496, ...}) = 0
mmap(NULL, 217104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98157000
mprotect(0xffff9817b000, 65536, PROT_NONE) = 0
mmap(0xffff9818b000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0xffff9818b000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzo2.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\320&\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=120648, ...}) = 0
mmap(NULL, 184336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98129000
mprotect(0xffff98146000, 61440, PROT_NONE) = 0
mmap(0xffff98155000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xffff98155000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\360%\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=92056, ...}) = 0
mmap(NULL, 155664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xffff98102000
mprotect(0xffff98117000, 65536, PROT_NONE) = 0
mmap(0xffff98127000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xffff98127000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff98100000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0xffff980fe000
mprotect(0xffff9854b000, 12288, PROT_READ) = 0
mprotect(0xffff98127000, 4096, PROT_READ) = 0
mprotect(0xffff98155000, 4096, PROT_READ) = 0
mprotect(0xffff9857e000, 4096, PROT_READ) = 0
mprotect(0xffff9818b000, 4096, PROT_READ) = 0
mprotect(0xffff981ac000, 4096, PROT_READ) = 0
mprotect(0xffff985af000, 4096, PROT_READ) = 0
mprotect(0xffff98334000, 4096, PROT_READ) = 0
mprotect(0xffff981e8000, 4096, PROT_READ) = 0
mprotect(0xffff981c0000, 4096, PROT_READ) = 0
mprotect(0xffff981d4000, 4096, PROT_READ) = 0
mprotect(0xffff981fc000, 4096, PROT_READ) = 0
mprotect(0xffff98216000, 4096, PROT_READ) = 0
mprotect(0xffff9822e000, 4096, PROT_READ) = 0
mprotect(0xffff98260000, 8192, PROT_READ) = 0
mprotect(0xffff982ee000, 16384, PROT_READ) = 0
mprotect(0xffff9830e000, 4096, PROT_READ) = 0
mprotect(0xffff98322000, 4096, PROT_READ) = 0
mprotect(0xffff98348000, 4096, PROT_READ) = 0
mprotect(0xffff98360000, 4096, PROT_READ) = 0
mprotect(0xffff98377000, 4096, PROT_READ) = 0
mprotect(0xffff983e3000, 4096, PROT_READ) = 0
mprotect(0xffff983d0000, 4096, PROT_READ) = 0
mprotect(0xffff9839a000, 4096, PROT_READ) = 0
mprotect(0xffff9859c000, 4096, PROT_READ) = 0
mprotect(0xffff9868d000, 8192, PROT_READ) = 0
mprotect(0xffff986b3000, 4096, PROT_READ) = 0
mprotect(0xaaaaceff0000, 4096, PROT_READ) = 0
mprotect(0xffff986e7000, 4096, PROT_READ) = 0
munmap(0xffff986e2000, 7840)            = 0
set_tid_address(0xffff980fe0e0)         = 882
set_robust_list(0xffff980fe0f0, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xffff9855a570, sa_mask=[], 
sa_flags=SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xffff9855a630, sa_mask=[], 
sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, 
rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0xaaab092a8000
brk(0xaaab092c9000)                     = 0xaaab092c9000
newfstatat(AT_FDCWD, "/etc/libnl/classid", {st_mode=S_IFREG|0644, 
st_size=1130, ...}, 0) = 0
openat(AT_FDCWD, "/etc/libnl/classid", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1130, ...}) = 0
read(3, "################################"..., 4096) = 1130
read(3, "", 4096)                       = 0
close(3)                                = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
pipe2([3, 4], 0)                        = 0
fcntl(3, F_GETFL)                       = 0 (flags O_RDONLY)
fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
fcntl(4, F_GETFL)                       = 0x1 (flags O_WRONLY)
fcntl(4, F_SETFL, O_WRONLY|O_NONBLOCK)  = 0
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 5
openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 6
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 7
ioctl(7, _IOC(_IOC_NONE, 0x50, 0xff, 0), 0) = -1 ENOTTY (Inappropriate 
ioctl for device)
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 8
openat(AT_FDCWD, "/dev/xen/hypercall", O_RDWR|O_CLOEXEC) = 9
openat(AT_FDCWD, "/dev/xen/privcmd", O_RDWR|O_CLOEXEC) = 10
ioctl(10, _IOC(_IOC_NONE, 0x50, 0x5, 0x10), 0xffffd0b60960) = 0
newfstatat(AT_FDCWD, "/var/run/xenstored/socket", 0xffffd0b60d90, 0) = 
-1 ENOENT (No such file or directory)
faccessat(AT_FDCWD, "/dev/xen/xenbus", F_OK) = 0
newfstatat(AT_FDCWD, "/dev/xen/xenbus", {st_mode=S_IFCHR|0600, 
st_rdev=makedev(0xa, 0x3e), ...}, 0) = 0
openat(AT_FDCWD, "/dev/xen/xenbus", O_RDWR) = 11
openat(AT_FDCWD, "/etc/xen/xl.conf", O_RDONLY) = 12
fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
fstat(12, {st_mode=S_IFREG|0644, st_size=1602, ...}) = 0
read(12, "## Global XL config file ##\n\n# S"..., 4096) = 1602
close(12)                               = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 262158
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) = 0xffff986e3000
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 4096
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b609c0) = 0
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b60990) = -1 EPERM 
(Operation not permitted)
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b60cb0) = -1 EPERM 
(Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 
87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the 
maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b60cb0) = -1 EPERM 
(Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 
87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the 
maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffd0b60cb0) = -1 EPERM 
(Operation not permitted)
write(2, "libxl: ", 7libxl: )                  = 7
write(2, "error: ", 7error: )                  = 7
write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 
87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the 
maximum number of cpus) = 87
write(2, "\n", 1
)                       = 1
pipe2([12, 13], 0)                      = 0
fcntl(12, F_GETFL)                      = 0 (flags O_RDONLY)
fcntl(12, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
fcntl(13, F_GETFL)                      = 0x1 (flags O_WRONLY)
fcntl(13, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0", 16) = 16
write(11, "domid\0", 6)                 = 6
read(11, "\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0", 16) = 16
read(11, "1", 1)                        = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
pipe2([14, 15], 0)                      = 0
futex(0xffff98349048, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
mmap(NULL, 141168, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 
0) = 0xffff980db000
mprotect(0xffff980dc000, 137072, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], ~[KILL STOP RTMIN RT_1], 8) = 0
clone(child_stack=0xffff980fc0e0, 
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, 
parent_tid=[883], tls=0xffff980fd000, child_tidptr=0xffff980fc940) = 883
rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\4\0\0\0\0\0\0\0\0\0\0\0\34\0\0\0", 16) = 16
write(11, "/local/domain/1/backend\0", 24) = 24
write(11, "3/0\0", 4)                   = 4
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\1\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0", 16) = 16
write(11, "/local/domain/1/backend\0", 24) = 24
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource 
temporarily unavailable)
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\1\0\0\0\0\0\0\0\0\0\0\0\34\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif\0", 28) = 28
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = -1 EAGAIN (Resource 
temporarily unavailable)
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\1\0\0\0\0\0\0\0\0\0\0\0\36\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2\0", 30) = 30
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, NULL, NULL, 
0) = 1 ([{fd=14, revents=POLLIN}])
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
futex(0xaaab092a92e0, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0'\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 39) = 39
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource 
temporarily unavailable)
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\n\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0", 16) = 16
write(11, "1\0", 2)                     = 2
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\n\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0", 16) = 16
write(11, "1\0", 2)                     = 2
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\4\0\0\0\0\0\0\0\0\0\0\0*\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
write(11, "2/1\0", 4)                   = 4
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0'\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 39) = 39
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=736000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=719257893})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=703000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=692405877})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=675000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=652580293})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=628000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=626201831})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=608000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=606705200})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=587000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=579627984})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0'\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 39) = 39
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=446000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=402461923})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
read(14, "/", 1)                        = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0'\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 39) = 39
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
read(14, "/", 1)                        = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=173000000}, NULL, 0) = 1 ([{fd=14, revents=POLLIN}], left 
{tv_sec=9, tv_nsec=146785969})
ppoll([{fd=14, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 
([{fd=14, revents=POLLIN}], left {tv_sec=0, tv_nsec=0})
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0'\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 39) = 39
futex(0xaaab092a93b8, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
read(14, "/", 1)                        = 1
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 
{sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(11, "\2\0\0\0\0\0\0\0\0\0\0\0&\0\0\0", 16) = 16
write(11, "/local/domain/1/backend/vif/2/0/"..., 38) = 38
futex(0xaaab092a93bc, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0xaaab092a9360, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 
NULL, 8) = 0
ppoll([{fd=14, events=POLLIN}, {fd=12, events=POLLIN}], 2, {tv_sec=9, 
tv_nsec=13000000}, NULL, 0

>>>>> close(6)                                = 0
>>>>> close(5)                                = 0
>>>>> munmap(0xffff9f45f000, 4096)            = 0
>>>>> close(7)                                = 0
>>>>> close(10)                               = 0
>>>>> close(9)                                = 0
>>>>> close(8)                                = 0
>>>>> close(11)                               = 0
>>>>> close(3)                                = 0
>>>>> close(4)                                = 0
>>>>> exit_group(0)                           = ?
>>>>> +++ exited with 0 +++
>>>>>
>>>>> royger told me that it is a BUG and not an issue with my setup. Therefore here I am.
>>>
>>> Just a bit more context: AFAICT the calls to libxl_cpu_bitmap_alloc in
>>> parse_global_config will prevent xl from being usable on anything
>>> different than the control domain (due to sysctl only available to
>>> privileged domains). This is an issue for 'xl devd', as it won't
>>> start anymore.
>>
>> These look non-fatal at first glance?
> 
> Indeed. I was too quick reading the trace and assumed `xl devd` exited
> due to the errors, but those are non fatal, the process just
> daemonized.
> 
> Thanks, Roger.

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-04 12:05         ` Andrea Stevanato
@ 2022-03-04 12:27           ` Roger Pau Monné
  2022-03-04 13:46             ` Andrea Stevanato
  0 siblings, 1 reply; 25+ messages in thread
From: Roger Pau Monné @ 2022-03-04 12:27 UTC (permalink / raw)
  To: Andrea Stevanato; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On Fri, Mar 04, 2022 at 01:05:55PM +0100, Andrea Stevanato wrote:
> On 3/4/2022 12:52 PM, Roger Pau Monné wrote:
> > On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
> > > On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
> > > > 
> > > > On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
> > > > > On 03/03/2022 15:54, Andrea Stevanato wrote:
> > > > > > Hi all,
> > > > > > 
> > > > > > according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
> > > > > > 
> > > > > > What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
> > > > > > 
> > > > > > name    = "guest0"
> > > > > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > > > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > > > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > > > > memory  = 1024 vcpus   = 2
> > > > > > driver_domain = 1
> > > > > > 
> > > > > > On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
> > > > > > While the second guest has been started with the following cfg:
> > > > > > 
> > > > > > name    = "guest1"
> > > > > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > > > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > > > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > > > > memory  = 1024 vcpus   = 2
> > > > > > vcpus   = 2
> > > > > > vif = [ 'bridge=xenbr0, backend=guest0' ]
> > > > > > 
> > > > > > Follows the result of strace xl devd:
> > > > > > 
> > > > > > # strace xl devd
> > > > > > execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> > > 
> > > > > > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > > > > > write(2, "libxl: ", 7libxl: )                  = 7
> > > > > > write(2, "error: ", 7error: )                  = 7
> > > > > > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > > > > > write(2, "\n", 1
> > > > > > )                       = 1
> > > > > > clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
> > > > > > wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
> > > > > > --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> > > 
> > > xl devd is daemonizing, but strace is only following the first
> > > process.  Use `strace xl devd -F` to prevent the daemonizing (or
> > > `strace -f xl devd` to follow children).
> > 
> > Or as a first step try to see what kind of messages you get from `xl
> > devd -F` when trying to attach a device using the driver domain.
> 
> Nothing has changed. On guest0 (the driver domain):
> 
> # xl devd -F
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> the maximum number of cpus
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> the maximum number of cpus
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> the maximum number of cpus
> [  696.805619] xenbr0: port 1(vif2.0) entered blocking state
> [  696.810334] xenbr0: port 1(vif2.0) entered disabled state
> [  696.824518] device vif2.0 entered promiscuous mode

Can you use `xl -vvv devd -F` here?

I assume the process doesn't die unexpectedly?

Thanks, Roger.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-04 12:27           ` Roger Pau Monné
@ 2022-03-04 13:46             ` Andrea Stevanato
  2022-03-04 14:54               ` Andrea Stevanato
  2022-03-07 11:22               ` Roger Pau Monné
  0 siblings, 2 replies; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-04 13:46 UTC (permalink / raw)
  To: Roger Pau Monné; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On 3/4/2022 1:27 PM, Roger Pau Monné wrote:
> On Fri, Mar 04, 2022 at 01:05:55PM +0100, Andrea Stevanato wrote:
>> On 3/4/2022 12:52 PM, Roger Pau Monné wrote:
>>> On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
>>>> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>>>
>>>>> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
>>>>>> On 03/03/2022 15:54, Andrea Stevanato wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
>>>>>>>
>>>>>>> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
>>>>>>>
>>>>>>> name    = "guest0"
>>>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>>>> memory  = 1024 vcpus   = 2
>>>>>>> driver_domain = 1
>>>>>>>
>>>>>>> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
>>>>>>> While the second guest has been started with the following cfg:
>>>>>>>
>>>>>>> name    = "guest1"
>>>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>>>> memory  = 1024 vcpus   = 2
>>>>>>> vcpus   = 2
>>>>>>> vif = [ 'bridge=xenbr0, backend=guest0' ]
>>>>>>>
>>>>>>> Follows the result of strace xl devd:
>>>>>>>
>>>>>>> # strace xl devd
>>>>>>> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
>>>>
>>>>>>> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
>>>>>>> write(2, "libxl: ", 7libxl: )                  = 7
>>>>>>> write(2, "error: ", 7error: )                  = 7
>>>>>>> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
>>>>>>> write(2, "\n", 1
>>>>>>> )                       = 1
>>>>>>> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
>>>>>>> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
>>>>>>> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
>>>>
>>>> xl devd is daemonizing, but strace is only following the first
>>>> process.  Use `strace xl devd -F` to prevent the daemonizing (or
>>>> `strace -f xl devd` to follow children).
>>>
>>> Or as a first step try to see what kind of messages you get from `xl
>>> devd -F` when trying to attach a device using the driver domain.
>>
>> Nothing has changed. On guest0 (the driver domain):
>>
>> # xl devd -F
>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>> the maximum number of cpus
>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>> the maximum number of cpus
>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>> the maximum number of cpus
>> [  696.805619] xenbr0: port 1(vif2.0) entered blocking state
>> [  696.810334] xenbr0: port 1(vif2.0) entered disabled state
>> [  696.824518] device vif2.0 entered promiscuous mode
> 
> Can you use `xl -vvv devd -F` here?

# xl -vvv devd -F
libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to 
retrieve the maximum number of cpus
libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to 
retrieve the maximum number of cpus
libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to 
retrieve the maximum number of cpus
libxl: debug: libxl_device.c:1749:libxl_device_events_handler: ao 
0xaaaaece52130: create: how=(nil) callback=(nil) poller=0xaaaaece52430
libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch 
w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: register slotnum=3
libxl: debug: libxl_device.c:1806:libxl_device_events_handler: ao 
0xaaaaece52130: inprogress: poller=0xaaaaece52430, flags=i
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece51b90: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece51b90: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece4e7b0: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e7b0: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece4e990: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e990: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/frontend
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece4eaa0: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4eaa0: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/frontend-id
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece4ebb0: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4ebb0: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/online
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece52830: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_device.c:1714:backend_watch_callback: Domain 2:Added 
domain to the list of active guests
libxl: debug: libxl_device.c:1569:add_device: Domain 2:Added device 
/local/domain/1/backend/vif/2/0 to the list of active devices
libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch 
w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1: 
register slotnum=2
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece52d50: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/script
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece52f30: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece52f30: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/mac
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/bridge
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/handle
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/type
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-sg
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-sg
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: 
destroy
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53110: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10 
wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:1055:devstate_callback: backend 
/local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 5
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece53fa0: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10 
wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:1055:devstate_callback: backend 
/local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 5
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 
wpath=/local/domain/1/backend token=3/0: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 
0xaaaaece54180: nested ao, parent 0xaaaaece52130
libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10 
wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event 
epath=/local/domain/1/backend/vif/2/0/state
libxl: debug: libxl_event.c:1055:devstate_callback: backend 
/local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 6


> I assume the process doesn't die unexpectedly?

No, it does not.

> Thanks, Roger.

Regards,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-04 13:46             ` Andrea Stevanato
@ 2022-03-04 14:54               ` Andrea Stevanato
  2022-03-07 11:22               ` Roger Pau Monné
  1 sibling, 0 replies; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-04 14:54 UTC (permalink / raw)
  To: Roger Pau Monné; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On 04/03/2022 14:46, Andrea Stevanato wrote:
> On 3/4/2022 1:27 PM, Roger Pau Monné wrote:
>> On Fri, Mar 04, 2022 at 01:05:55PM +0100, Andrea Stevanato wrote:
>>> On 3/4/2022 12:52 PM, Roger Pau Monné wrote:
>>>> On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
>>>>> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>>>>
>>>>>> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
>>>>>>> On 03/03/2022 15:54, Andrea Stevanato wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
>>>>>>>>
>>>>>>>> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
>>>>>>>>
>>>>>>>> name    = "guest0"
>>>>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>>>>> memory  = 1024 vcpus   = 2
>>>>>>>> driver_domain = 1
>>>>>>>>
>>>>>>>> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
>>>>>>>> While the second guest has been started with the following cfg:
>>>>>>>>
>>>>>>>> name    = "guest1"
>>>>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>>>>> memory  = 1024 vcpus   = 2
>>>>>>>> vcpus   = 2
>>>>>>>> vif = [ 'bridge=xenbr0, backend=guest0' ]
>>>>>>>>
>>>>>>>> Follows the result of strace xl devd:
>>>>>>>>
>>>>>>>> # strace xl devd
>>>>>>>> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
>>>>>
>>>>>>>> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
>>>>>>>> write(2, "libxl: ", 7libxl: )                  = 7
>>>>>>>> write(2, "error: ", 7error: )                  = 7
>>>>>>>> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
>>>>>>>> write(2, "\n", 1
>>>>>>>> )                       = 1
>>>>>>>> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
>>>>>>>> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
>>>>>>>> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
>>>>>
>>>>> xl devd is daemonizing, but strace is only following the first
>>>>> process.  Use `strace xl devd -F` to prevent the daemonizing (or
>>>>> `strace -f xl devd` to follow children).
>>>>
>>>> Or as a first step try to see what kind of messages you get from `xl
>>>> devd -F` when trying to attach a device using the driver domain.
>>>
>>> Nothing has changed. On guest0 (the driver domain):
>>>
>>> # xl devd -F
>>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>>> the maximum number of cpus
>>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>>> the maximum number of cpus
>>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>>> the maximum number of cpus
>>> [  696.805619] xenbr0: port 1(vif2.0) entered blocking state
>>> [  696.810334] xenbr0: port 1(vif2.0) entered disabled state
>>> [  696.824518] device vif2.0 entered promiscuous mode
>>
>> Can you use `xl -vvv devd -F` here?
> 
> # xl -vvv devd -F
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus
> libxl: debug: libxl_device.c:1749:libxl_device_events_handler: ao 0xaaaaece52130: create: how=(nil) callback=(nil) poller=0xaaaaece52430
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: register slotnum=3
> libxl: debug: libxl_device.c:1806:libxl_device_events_handler: ao 0xaaaaece52130: inprogress: poller=0xaaaaece52430, flags=i
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece51b90: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece51b90: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4e7b0: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e7b0: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4e990: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e990: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/frontend
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4eaa0: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4eaa0: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/frontend-id
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4ebb0: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4ebb0: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/online
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52830: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_device.c:1714:backend_watch_callback: Domain 2:Added domain to the list of active guests
> libxl: debug: libxl_device.c:1569:add_device: Domain 2:Added device /local/domain/1/backend/vif/2/0 to the list of active devices
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1: register slotnum=2
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52d50: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/script
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52f30: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece52f30: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/mac
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/bridge
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/handle
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/type
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-sg
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-sg
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110: destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:1055:devstate_callback: backend /local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 5
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53fa0: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:1055:devstate_callback: backend /local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 5
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece54180: nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:1055:devstate_callback: backend /local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 6

There were one piece missing, I copied-pasted too early.

libxl: debug: libxl_aoutils.c:88:xswait_timeout_callback: backend /local/domain/1/backend/vif/2/0/state (hoping for state change to 2): xswait timeout (path=/local/domain/1/backend/vif/2/0/state)
libxl: debug: libxl_event.c:850:libxl__ev_xswatch_deregister: watch w=0xaaaadbbd3a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1: deregister slotnum=2
libxl: debug: libxl_event.c:1039:devstate_callback: backend /local/domain/1/backend/vif/2/0/state wanted state 2  timed out
libxl: debug: libxl_event.c:864:libxl__ev_xswatch_deregister: watch w=0xaaaadbbd3a10: deregister unregistered
libxl: debug: libxl_device.c:1090:device_backend_callback: Domain 2:calling device_backend_cleanup
libxl: debug: libxl_event.c:864:libxl__ev_xswatch_deregister: watch w=0xaaaadbbd3a10: deregister unregistered
libxl: error: libxl_device.c:1103:device_backend_callback: Domain 2:unable to add device with path /local/domain/1/backend/vif/2/0
libxl: debug: libxl_event.c:864:libxl__ev_xswatch_deregister: watch w=0xaaaadbbd3b10: deregister unregistered
libxl: debug: libxl_device.c:1444:device_complete: device /local/domain/1/backend/vif/2/0 add failed
libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaadbbd3830: destroy
 
>> I assume the process doesn't die unexpectedly?
> 
> No, it does not.
> 
>> Thanks, Roger.
> 
> Regards,
> Andrea

Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-04 13:46             ` Andrea Stevanato
  2022-03-04 14:54               ` Andrea Stevanato
@ 2022-03-07 11:22               ` Roger Pau Monné
  2022-03-07 11:39                 ` Andrea Stevanato
  1 sibling, 1 reply; 25+ messages in thread
From: Roger Pau Monné @ 2022-03-07 11:22 UTC (permalink / raw)
  To: Andrea Stevanato; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On Fri, Mar 04, 2022 at 02:46:37PM +0100, Andrea Stevanato wrote:
> On 3/4/2022 1:27 PM, Roger Pau Monné wrote:
> > On Fri, Mar 04, 2022 at 01:05:55PM +0100, Andrea Stevanato wrote:
> > > On 3/4/2022 12:52 PM, Roger Pau Monné wrote:
> > > > On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
> > > > > On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
> > > > > > 
> > > > > > On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
> > > > > > > On 03/03/2022 15:54, Andrea Stevanato wrote:
> > > > > > > > Hi all,
> > > > > > > > 
> > > > > > > > according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
> > > > > > > > 
> > > > > > > > What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
> > > > > > > > 
> > > > > > > > name    = "guest0"
> > > > > > > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > > > > > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > > > > > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > > > > > > memory  = 1024 vcpus   = 2
> > > > > > > > driver_domain = 1
> > > > > > > > 
> > > > > > > > On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
> > > > > > > > While the second guest has been started with the following cfg:
> > > > > > > > 
> > > > > > > > name    = "guest1"
> > > > > > > > kernel  = "/media/sd-mmcblk0p1/Image"
> > > > > > > > ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
> > > > > > > > extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
> > > > > > > > memory  = 1024 vcpus   = 2
> > > > > > > > vcpus   = 2
> > > > > > > > vif = [ 'bridge=xenbr0, backend=guest0' ]
> > > > > > > > 
> > > > > > > > Follows the result of strace xl devd:
> > > > > > > > 
> > > > > > > > # strace xl devd
> > > > > > > > execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
> > > > > 
> > > > > > > > ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
> > > > > > > > write(2, "libxl: ", 7libxl: )                  = 7
> > > > > > > > write(2, "error: ", 7error: )                  = 7
> > > > > > > > write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
> > > > > > > > write(2, "\n", 1
> > > > > > > > )                       = 1
> > > > > > > > clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
> > > > > > > > wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
> > > > > > > > --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
> > > > > 
> > > > > xl devd is daemonizing, but strace is only following the first
> > > > > process.  Use `strace xl devd -F` to prevent the daemonizing (or
> > > > > `strace -f xl devd` to follow children).
> > > > 
> > > > Or as a first step try to see what kind of messages you get from `xl
> > > > devd -F` when trying to attach a device using the driver domain.
> > > 
> > > Nothing has changed. On guest0 (the driver domain):
> > > 
> > > # xl devd -F
> > > libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> > > the maximum number of cpus
> > > libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> > > the maximum number of cpus
> > > libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> > > the maximum number of cpus
> > > [  696.805619] xenbr0: port 1(vif2.0) entered blocking state
> > > [  696.810334] xenbr0: port 1(vif2.0) entered disabled state
> > > [  696.824518] device vif2.0 entered promiscuous mode
> > 
> > Can you use `xl -vvv devd -F` here?
> 
> # xl -vvv devd -F
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> the maximum number of cpus
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> the maximum number of cpus
> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
> the maximum number of cpus
> libxl: debug: libxl_device.c:1749:libxl_device_events_handler: ao
> 0xaaaaece52130: create: how=(nil) callback=(nil) poller=0xaaaaece52430
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch
> w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: register slotnum=3
> libxl: debug: libxl_device.c:1806:libxl_device_events_handler: ao
> 0xaaaaece52130: inprogress: poller=0xaaaaece52430, flags=i
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece51b90:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece51b90:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4e7b0:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e7b0:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4e990:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e990:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/frontend
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4eaa0:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4eaa0:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/frontend-id
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4ebb0:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4ebb0:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/online
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52830:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_device.c:1714:backend_watch_callback: Domain 2:Added
> domain to the list of active guests
> libxl: debug: libxl_device.c:1569:add_device: Domain 2:Added device
> /local/domain/1/backend/vif/2/0 to the list of active devices
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch
> w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1:
> register slotnum=2
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52d50:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/script
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52f30:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece52f30:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/mac
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/bridge
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/handle
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/type
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-sg
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-sg
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
> destroy
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
> wpath=/local/domain/1/backend token=3/0: event
> epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
> nested ao, parent 0xaaaaece52130
> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10
> wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event
> epath=/local/domain/1/backend/vif/2/0/state
> libxl: debug: libxl_event.c:1055:devstate_callback: backend
> /local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 5

There's something wrong with the negotiation between the frontend and
the backend AFAICT. The backed switches to state 5 and 6 (Closed) so
the connection cannot be established.

Can you paste the output of `xenstore-ls -fp` from dom0 after `xl
devd` reports the timeout?

What OS/versions are you using for the guest and the driver domain, do
you have any local modifications?

Regards, Roger.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 11:22               ` Roger Pau Monné
@ 2022-03-07 11:39                 ` Andrea Stevanato
  2022-03-07 11:46                   ` Roger Pau Monné
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-07 11:39 UTC (permalink / raw)
  To: Roger Pau Monné; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On 3/7/22 12:22, Roger Pau Monné wrote:
> On Fri, Mar 04, 2022 at 02:46:37PM +0100, Andrea Stevanato wrote:
>> On 3/4/2022 1:27 PM, Roger Pau Monné wrote:
>>> On Fri, Mar 04, 2022 at 01:05:55PM +0100, Andrea Stevanato wrote:
>>>> On 3/4/2022 12:52 PM, Roger Pau Monné wrote:
>>>>> On Thu, Mar 03, 2022 at 01:08:31PM -0500, Jason Andryuk wrote:
>>>>>> On Thu, Mar 3, 2022 at 11:34 AM Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>>>>>
>>>>>>> On Thu, Mar 03, 2022 at 05:01:23PM +0100, Andrea Stevanato wrote:
>>>>>>>> On 03/03/2022 15:54, Andrea Stevanato wrote:
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> according to the conversation that I had with royger, aa67b97ed34  broke the driver domain support.
>>>>>>>>>
>>>>>>>>> What I'm trying to do is to setup networking between guests using driver domain. Therefore, the guest (driver) has been started with the following cfg.
>>>>>>>>>
>>>>>>>>> name    = "guest0"
>>>>>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>>>>>> memory  = 1024 vcpus   = 2
>>>>>>>>> driver_domain = 1
>>>>>>>>>
>>>>>>>>> On guest0 I created the bridge, assigned a static IP and started the udhcpd on xenbr0 interface.
>>>>>>>>> While the second guest has been started with the following cfg:
>>>>>>>>>
>>>>>>>>> name    = "guest1"
>>>>>>>>> kernel  = "/media/sd-mmcblk0p1/Image"
>>>>>>>>> ramdisk = "/media/sd-mmcblk0p1/rootfs.cpio.gz"
>>>>>>>>> extra   = "console=hvc0 rdinit=/sbin/init root=/dev/ram0"
>>>>>>>>> memory  = 1024 vcpus   = 2
>>>>>>>>> vcpus   = 2
>>>>>>>>> vif = [ 'bridge=xenbr0, backend=guest0' ]
>>>>>>>>>
>>>>>>>>> Follows the result of strace xl devd:
>>>>>>>>>
>>>>>>>>> # strace xl devd
>>>>>>>>> execve("/usr/sbin/xl", ["xl", "devd"], 0xffffdf0420c8 /* 13 vars */) = 0
>>>>>>
>>>>>>>>> ioctl(5, _IOC(_IOC_NONE, 0x50, 0, 0x30), 0xffffe6e41b40) = -1 EPERM (Operation not permitted)
>>>>>>>>> write(2, "libxl: ", 7libxl: )                  = 7
>>>>>>>>> write(2, "error: ", 7error: )                  = 7
>>>>>>>>> write(2, "libxl_utils.c:820:libxl_cpu_bitm"..., 87libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus) = 87
>>>>>>>>> write(2, "\n", 1
>>>>>>>>> )                       = 1
>>>>>>>>> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xffff9ee7a0e0) = 814
>>>>>>>>> wait4(814, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 814
>>>>>>>>> --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=814, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
>>>>>>
>>>>>> xl devd is daemonizing, but strace is only following the first
>>>>>> process.  Use `strace xl devd -F` to prevent the daemonizing (or
>>>>>> `strace -f xl devd` to follow children).
>>>>>
>>>>> Or as a first step try to see what kind of messages you get from `xl
>>>>> devd -F` when trying to attach a device using the driver domain.
>>>>
>>>> Nothing has changed. On guest0 (the driver domain):
>>>>
>>>> # xl devd -F
>>>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>>>> the maximum number of cpus
>>>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>>>> the maximum number of cpus
>>>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>>>> the maximum number of cpus
>>>> [  696.805619] xenbr0: port 1(vif2.0) entered blocking state
>>>> [  696.810334] xenbr0: port 1(vif2.0) entered disabled state
>>>> [  696.824518] device vif2.0 entered promiscuous mode
>>>
>>> Can you use `xl -vvv devd -F` here?
>>
>> # xl -vvv devd -F
>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>> the maximum number of cpus
>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>> the maximum number of cpus
>> libxl: error: libxl_utils.c:820:libxl_cpu_bitmap_alloc: failed to retrieve
>> the maximum number of cpus
>> libxl: debug: libxl_device.c:1749:libxl_device_events_handler: ao
>> 0xaaaaece52130: create: how=(nil) callback=(nil) poller=0xaaaaece52430
>> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch
>> w=0xffffe628caf8 wpath=/local/domain/1/backend token=3/0: register slotnum=3
>> libxl: debug: libxl_device.c:1806:libxl_device_events_handler: ao
>> 0xaaaaece52130: inprogress: poller=0xaaaaece52430, flags=i
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event epath=/local/domain/1/backend
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece51b90:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece51b90:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4e7b0:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e7b0:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4e990:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4e990:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/frontend
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4eaa0:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4eaa0:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/frontend-id
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece4ebb0:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece4ebb0:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/online
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52830:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_device.c:1714:backend_watch_callback: Domain 2:Added
>> domain to the list of active guests
>> libxl: debug: libxl_device.c:1569:add_device: Domain 2:Added device
>> /local/domain/1/backend/vif/2/0 to the list of active devices
>> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch
>> w=0xaaaaece52a10 wpath=/local/domain/1/backend/vif/2/0/state token=2/1:
>> register slotnum=2
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/state
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52d50:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/script
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece52f30:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece52f30:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/mac
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/bridge
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/handle
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/type
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-sg
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-sg
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv4
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-gso-tcpv6
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-rx-copy
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-xdp-headroom
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-rx-flip
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-multicast-control
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-split-event-channels
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/multi-queue-max-queues
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/feature-ctrl-ring
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:2035:libxl__ao__destroy: ao 0xaaaaece53110:
>> destroy
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xffffe628caf8
>> wpath=/local/domain/1/backend token=3/0: event
>> epath=/local/domain/1/backend/vif/2/0/state
>> libxl: debug: libxl_event.c:2445:libxl__nested_ao_create: ao 0xaaaaece53110:
>> nested ao, parent 0xaaaaece52130
>> libxl: debug: libxl_event.c:750:watchfd_callback: watch w=0xaaaaece52a10
>> wpath=/local/domain/1/backend/vif/2/0/state token=2/1: event
>> epath=/local/domain/1/backend/vif/2/0/state
>> libxl: debug: libxl_event.c:1055:devstate_callback: backend
>> /local/domain/1/backend/vif/2/0/state wanted state 2 still waiting state 5
> 
> There's something wrong with the negotiation between the frontend and
> the backend AFAICT. The backed switches to state 5 and 6 (Closed) so
> the connection cannot be established.
> 
> Can you paste the output of `xenstore-ls -fp` from dom0 after `xl
> devd` reports the timeout?

# xenstore-ls -fp
/tool = ""   (n0)
/tool/xenstored = ""   (n0)
/local = ""   (n0)
/local/domain = ""   (n0)
/local/domain/0 = ""   (n0)
/local/domain/0/control = ""   (n0)
/local/domain/0/control/feature-poweroff = "1"   (n0)
/local/domain/0/control/feature-reboot = "1"   (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/0 = ""   (n0)
/local/domain/0/device-model/0/backends = ""   (n0)
/local/domain/0/device-model/0/backends/console = ""   (n0,n0)
/local/domain/0/device-model/0/backends/vkbd = ""   (n0,n0)
/local/domain/0/device-model/0/backends/9pfs = ""   (n0,n0)
/local/domain/0/device-model/0/backends/vfb = ""   (n0,n0)
/local/domain/0/device-model/0/backends/qnic = ""   (n0,n0)
/local/domain/0/device-model/0/state = "running"   (n0)
/local/domain/0/backend = ""   (n0)
/local/domain/0/backend/console = ""   (n0)
/local/domain/0/backend/console/1 = ""   (n0)
/local/domain/0/backend/console/1/0 = ""   (n0,r1)
/local/domain/0/backend/console/1/0/frontend = "/local/domain/1/console" 
   (n0,r1)
/local/domain/0/backend/console/1/0/frontend-id = "1"   (n0,r1)
/local/domain/0/backend/console/1/0/online = "1"   (n0,r1)
/local/domain/0/backend/console/1/0/state = "1"   (n0,r1)
/local/domain/0/backend/console/1/0/protocol = "vt100"   (n0,r1)
/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/1 = ""   (n0,r1)
/local/domain/1/vm = "/vm/cd36b881-cd46-4de7-a59b-7d173198862e"   (n0,r1)
/local/domain/1/name = "guest0"   (n0,r1)
/local/domain/1/cpu = ""   (n0,r1)
/local/domain/1/cpu/0 = ""   (n0,r1)
/local/domain/1/cpu/0/availability = "online"   (n0,r1)
/local/domain/1/cpu/1 = ""   (n0,r1)
/local/domain/1/cpu/1/availability = "online"   (n0,r1)
/local/domain/1/memory = ""   (n0,r1)
/local/domain/1/memory/static-max = "1048576"   (n0,r1)
/local/domain/1/memory/target = "1048577"   (n0,r1)
/local/domain/1/memory/videoram = "-1"   (n0,r1)
/local/domain/1/device = ""   (n0,r1)
/local/domain/1/device/suspend = ""   (n0,r1)
/local/domain/1/device/suspend/event-channel = ""   (n1)
/local/domain/1/control = ""   (n0,r1)
/local/domain/1/control/shutdown = ""   (n1)
/local/domain/1/control/feature-poweroff = "1"   (n1)
/local/domain/1/control/feature-reboot = "1"   (n1)
/local/domain/1/control/feature-suspend = ""   (n1)
/local/domain/1/control/sysrq = ""   (n1)
/local/domain/1/control/platform-feature-multiprocessor-suspend = "1" 
(n0,r1)
/local/domain/1/control/platform-feature-xs_reset_watches = "1"   (n0,r1)
/local/domain/1/data = ""   (n1)
/local/domain/1/drivers = ""   (n1)
/local/domain/1/feature = ""   (n1)
/local/domain/1/attr = ""   (n1)
/local/domain/1/error = ""   (n1)
/local/domain/1/libxl = ""   (n1)
/local/domain/1/device-model = ""   (n1)
/local/domain/1/domid = "1"   (n0,r1)
/local/domain/1/store = ""   (n0,r1)
/local/domain/1/store/port = "1"   (n0,r1)
/local/domain/1/store/ring-ref = "233473"   (n0,r1)
/local/domain/1/console = ""   (n0,r1)
/local/domain/1/console/backend = "/local/domain/0/backend/console/1/0" 
   (n0,r1)
/local/domain/1/console/backend-id = "0"   (n1,r0)
/local/domain/1/console/limit = "1048576"   (n0,r1)
/local/domain/1/console/type = "xenconsoled"   (n0,r1)
/local/domain/1/console/output = "pty"   (n0,r1)
/local/domain/1/console/tty = "/dev/pts/0"   (n0,r1)
/local/domain/1/console/port = "2"   (n0,r1)
/local/domain/1/console/ring-ref = "233472"   (n0,r1)
/local/domain/1/backend = ""   (n0,r1)
/local/domain/1/backend/vif = ""   (n0,r1)
/local/domain/1/backend/vif/2 = ""   (n0,r1)
/local/domain/1/backend/vif/2/0 = ""   (n1,r2)
/local/domain/1/backend/vif/2/0/frontend = 
"/local/domain/2/device/vif/0"   (n1,r2)
/local/domain/1/backend/vif/2/0/frontend-id = "2"   (n1,r2)
/local/domain/1/backend/vif/2/0/online = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/state = "6"   (n1,r2)
/local/domain/1/backend/vif/2/0/script = "/etc/xen/scripts/vif-bridge" 
  (n1,r2)
/local/domain/1/backend/vif/2/0/mac = "00:16:3e:07:df:91"   (n1,r2)
/local/domain/1/backend/vif/2/0/bridge = "xenbr1"   (n1,r2)
/local/domain/1/backend/vif/2/0/handle = "0"   (n1,r2)
/local/domain/1/backend/vif/2/0/type = "vif"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-sg = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-gso-tcpv4 = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-gso-tcpv6 = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-ipv6-csum-offload = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-rx-copy = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-xdp-headroom = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-rx-flip = "0"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-multicast-control = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-dynamic-multicast-control = "1" 
   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-split-event-channels = "1"   (n1,r2)
/local/domain/1/backend/vif/2/0/multi-queue-max-queues = "2"   (n1,r2)
/local/domain/1/backend/vif/2/0/feature-ctrl-ring = "1"   (n1,r2)
/local/domain/2 = ""   (n0,r2)
/local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
/local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
/local/domain/2/cpu/1/availability = "online"   (n0,r2)
/local/domain/2/memory = ""   (n0,r2)
/local/domain/2/memory/static-max = "1048576"   (n0,r2)
/local/domain/2/memory/target = "1048577"   (n0,r2)
/local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
/local/domain/2/device/vif/0 = ""   (n2,r1)
/local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0" 
   (n2,r1)
/local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
/local/domain/2/device/vif/0/state = "6"   (n2,r1)
/local/domain/2/device/vif/0/handle = "0"   (n2,r1)
/local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
/local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
/local/domain/2/control = ""   (n0,r2)
/local/domain/2/control/shutdown = ""   (n2)
/local/domain/2/control/feature-poweroff = "1"   (n2)
/local/domain/2/control/feature-reboot = "1"   (n2)
/local/domain/2/control/feature-suspend = ""   (n2)
/local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
/local/domain/2/drivers = ""   (n2)
/local/domain/2/feature = ""   (n2)
/local/domain/2/attr = ""   (n2)
/local/domain/2/error = ""   (n2)
/local/domain/2/error/device = ""   (n2)
/local/domain/2/error/device/vif = ""   (n2)
/local/domain/2/error/device/vif/0 = ""   (n2)
/local/domain/2/error/device/vif/0/error = "1 allocating event channel" 
   (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 = "233473"   (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/3"   (n0,r2)
/local/domain/2/console/port = "2"   (n0,r2)
/local/domain/2/console/ring-ref = "233472"   (n0,r2)
/vm = ""   (n0)
/vm/cd36b881-cd46-4de7-a59b-7d173198862e = ""   (n0,r1)
/vm/cd36b881-cd46-4de7-a59b-7d173198862e/name = "guest0"   (n0,r1)
/vm/cd36b881-cd46-4de7-a59b-7d173198862e/uuid = 
"cd36b881-cd46-4de7-a59b-7d173198862e"   (n0,r1)
/vm/cd36b881-cd46-4de7-a59b-7d173198862e/start_time = "1646643480.69" 
(n0,r1)
/vm/f6dca20a-54bb-43af-9a62-67c55cb75708 = ""   (n0,r2)
/vm/f6dca20a-54bb-43af-9a62-67c55cb75708/name = "guest1"   (n0,r2)
/vm/f6dca20a-54bb-43af-9a62-67c55cb75708/uuid = 
"f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
/vm/f6dca20a-54bb-43af-9a62-67c55cb75708/start_time = "1646644038.80" 
(n0,r2)
/libxl = ""   (n0)
/libxl/1 = ""   (n0)
/libxl/1/device = ""   (n0)
/libxl/1/device/console = ""   (n0)
/libxl/1/device/console/0 = ""   (n0)
/libxl/1/device/console/0/frontend = "/local/domain/1/console"   (n0)
/libxl/1/device/console/0/backend = 
"/local/domain/0/backend/console/1/0"   (n0)
/libxl/1/device/console/0/frontend-id = "1"   (n0)
/libxl/1/device/console/0/online = "1"   (n0)
/libxl/1/device/console/0/state = "1"   (n0)
/libxl/1/device/console/0/protocol = "vt100"   (n0)
/libxl/1/type = "pvh"   (n0)
/libxl/1/dm-version = "qemu_xen"   (n0)
/libxl/2 = ""   (n0)
/libxl/2/device = ""   (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/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/1/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 = "/etc/xen/scripts/vif-bridge"   (n0)
/libxl/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n0)
/libxl/2/device/vif/0/bridge = "xenbr1"   (n0)
/libxl/2/device/vif/0/handle = "0"   (n0)
/libxl/2/device/vif/0/type = "vif"   (n0)
/libxl/2/type = "pvh"   (n0)
/libxl/2/dm-version = "qemu_xen"   (n0)

> What OS/versions are you using for the guest and the driver domain, do
> you have any local modifications?

I'm using the same OS for everything: dom0 and guestX. It is petalinux 
2021.2.

> Regards, Roger.

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 11:39                 ` Andrea Stevanato
@ 2022-03-07 11:46                   ` Roger Pau Monné
  2022-03-07 14:20                     ` Andrea Stevanato
  0 siblings, 1 reply; 25+ messages in thread
From: Roger Pau Monné @ 2022-03-07 11:46 UTC (permalink / raw)
  To: Andrea Stevanato; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
> /local/domain/2 = ""   (n0,r2)
> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
> /local/domain/2/memory = ""   (n0,r2)
> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
> /local/domain/2/memory/target = "1048577"   (n0,r2)
> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
> /local/domain/2/device/vif/0 = ""   (n2,r1)
> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
> (n2,r1)
> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
> /local/domain/2/control = ""   (n0,r2)
> /local/domain/2/control/shutdown = ""   (n2)
> /local/domain/2/control/feature-poweroff = "1"   (n2)
> /local/domain/2/control/feature-reboot = "1"   (n2)
> /local/domain/2/control/feature-suspend = ""   (n2)
> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
> /local/domain/2/drivers = ""   (n2)
> /local/domain/2/feature = ""   (n2)
> /local/domain/2/attr = ""   (n2)
> /local/domain/2/error = ""   (n2)
> /local/domain/2/error/device = ""   (n2)
> /local/domain/2/error/device/vif = ""   (n2)
> /local/domain/2/error/device/vif/0 = ""   (n2)
> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
> (n2)

That's the real error. Your guest netfront fails to allocate the event
channel. Do you get any messages in the guest dmesg after trying to
attach the network interface?

Does the same happen if you don't use a driver domain and run the
backend in dom0?

Regards, Roger.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 11:46                   ` Roger Pau Monné
@ 2022-03-07 14:20                     ` Andrea Stevanato
  2022-03-07 14:36                       ` Jan Beulich
  2022-03-07 14:52                       ` Roger Pau Monné
  0 siblings, 2 replies; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-07 14:20 UTC (permalink / raw)
  To: Roger Pau Monné; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>> /local/domain/2 = ""   (n0,r2)
>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>> /local/domain/2/memory = ""   (n0,r2)
>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>> (n2,r1)
>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>> /local/domain/2/control = ""   (n0,r2)
>> /local/domain/2/control/shutdown = ""   (n2)
>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>> /local/domain/2/control/feature-reboot = "1"   (n2)
>> /local/domain/2/control/feature-suspend = ""   (n2)
>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>> /local/domain/2/drivers = ""   (n2)
>> /local/domain/2/feature = ""   (n2)
>> /local/domain/2/attr = ""   (n2)
>> /local/domain/2/error = ""   (n2)
>> /local/domain/2/error/device = ""   (n2)
>> /local/domain/2/error/device/vif = ""   (n2)
>> /local/domain/2/error/device/vif/0 = ""   (n2)
>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>> (n2)
> 
> That's the real error. Your guest netfront fails to allocate the event
> channel. Do you get any messages in the guest dmesg after trying to
> attach the network interface?

Just these two lines:

[  389.453390] vif vif-0: 1 allocating event channel
[  389.804135] vif vif-0: 1 allocating event channel
 
> Does the same happen if you don't use a driver domain and run the
> backend in dom0?

No, it does not. On dom0 everything is set up correctly. Here the final
part of xl -vvv devd -F executed on dom0, which is different from the 
execution on guest0

libxl: debug: libxl_event.c:1052:devstate_callback: backend /local/domain/0/backend/vif/1/0/state wanted state 2 ok
libxl: debug: libxl_event.c:850:libxl__ev_xswatch_deregister: watch w=0xaaaaca342470 wpath=/local/domain/0/backend/vif/1/0/state token=1/2: deregister slotnum=1
libxl: debug: libxl_device.c:1090:device_backend_callback: Domain 1:calling device_backend_cleanup
libxl: debug: libxl_event.c:864:libxl__ev_xswatch_deregister: watch w=0xaaaaca342470: deregister unregistered
libxl: debug: libxl_device.c:1191:device_hotplug: Domain 1:calling hotplug script: /etc/xen/scripts/vif-bridge online
libxl: debug: libxl_device.c:1192:device_hotplug: Domain 1:extra args:
libxl: debug: libxl_device.c:1198:device_hotplug: Domain 1:     type_if=vif
libxl: debug: libxl_device.c:1200:device_hotplug: Domain 1:env:
libxl: debug: libxl_device.c:1207:device_hotplug: Domain 1:     script: /etc/xen/scripts/vif-bridge
libxl: debug: libxl_device.c:1207:device_hotplug: Domain 1:     XENBUS_TYPE: vif
libxl: debug: libxl_device.c:1207:device_hotplug: Domain 1:     XENBUS_PATH: backend/vif/1/0
libxl: debug: libxl_device.c:1207:device_hotplug: Domain 1:     XENBUS_BASE_PATH: backend
libxl: debug: libxl_device.c:1207:device_hotplug: Domain 1:     netdev:
libxl: debug: libxl_device.c:1207:device_hotplug: Domain 1:     vif: vif1.0
libxl: debug: libxl_aoutils.c:593:libxl__async_exec_start: forking to execute: /etc/xen/scripts/vif-bridge online

> 
> Regards, Roger.

Cheers,
Andrea.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:20                     ` Andrea Stevanato
@ 2022-03-07 14:36                       ` Jan Beulich
  2022-03-07 14:43                         ` Andrea Stevanato
  2022-03-07 14:52                       ` Roger Pau Monné
  1 sibling, 1 reply; 25+ messages in thread
From: Jan Beulich @ 2022-03-07 14:36 UTC (permalink / raw)
  To: Andrea Stevanato
  Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD, Roger Pau Monné

On 07.03.2022 15:20, Andrea Stevanato wrote:
> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
>> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>>> /local/domain/2 = ""   (n0,r2)
>>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>>> /local/domain/2/memory = ""   (n0,r2)
>>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>>> (n2,r1)
>>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>>> /local/domain/2/control = ""   (n0,r2)
>>> /local/domain/2/control/shutdown = ""   (n2)
>>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>>> /local/domain/2/control/feature-reboot = "1"   (n2)
>>> /local/domain/2/control/feature-suspend = ""   (n2)
>>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>>> /local/domain/2/drivers = ""   (n2)
>>> /local/domain/2/feature = ""   (n2)
>>> /local/domain/2/attr = ""   (n2)
>>> /local/domain/2/error = ""   (n2)
>>> /local/domain/2/error/device = ""   (n2)
>>> /local/domain/2/error/device/vif = ""   (n2)
>>> /local/domain/2/error/device/vif/0 = ""   (n2)
>>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>>> (n2)
>>
>> That's the real error. Your guest netfront fails to allocate the event
>> channel. Do you get any messages in the guest dmesg after trying to
>> attach the network interface?
> 
> Just these two lines:
> 
> [  389.453390] vif vif-0: 1 allocating event channel
> [  389.804135] vif vif-0: 1 allocating event channel

Well, these are the error messages, from xenbus_alloc_evtchn().
What's a little odd is that the error code is positive, but that's
how -EPERM is logged. Is there perhaps a strange or broken XSM
policy in use? I ask because evtchn_alloc_unbound() itself
wouldn't return -EPERM afaics.

Jan



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:36                       ` Jan Beulich
@ 2022-03-07 14:43                         ` Andrea Stevanato
  2022-03-07 14:50                           ` Andrew Cooper
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-07 14:43 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD, Roger Pau Monné

On 3/7/2022 3:36 PM, Jan Beulich wrote:
> On 07.03.2022 15:20, Andrea Stevanato wrote:
>> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
>>> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>>>> /local/domain/2 = ""   (n0,r2)
>>>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>>>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>>>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>>>> /local/domain/2/memory = ""   (n0,r2)
>>>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>>>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>>>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>>>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>>>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>>>> (n2,r1)
>>>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>>>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>>>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>>>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>>>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>>>> /local/domain/2/control = ""   (n0,r2)
>>>> /local/domain/2/control/shutdown = ""   (n2)
>>>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>>>> /local/domain/2/control/feature-reboot = "1"   (n2)
>>>> /local/domain/2/control/feature-suspend = ""   (n2)
>>>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>>>> /local/domain/2/drivers = ""   (n2)
>>>> /local/domain/2/feature = ""   (n2)
>>>> /local/domain/2/attr = ""   (n2)
>>>> /local/domain/2/error = ""   (n2)
>>>> /local/domain/2/error/device = ""   (n2)
>>>> /local/domain/2/error/device/vif = ""   (n2)
>>>> /local/domain/2/error/device/vif/0 = ""   (n2)
>>>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>>>> (n2)
>>>
>>> That's the real error. Your guest netfront fails to allocate the event
>>> channel. Do you get any messages in the guest dmesg after trying to
>>> attach the network interface?
>>
>> Just these two lines:
>>
>> [  389.453390] vif vif-0: 1 allocating event channel
>> [  389.804135] vif vif-0: 1 allocating event channel
> 
> Well, these are the error messages, from xenbus_alloc_evtchn().
> What's a little odd is that the error code is positive, but that's
> how -EPERM is logged. Is there perhaps a strange or broken XSM
> policy in use? I ask because evtchn_alloc_unbound() itself
> wouldn't return -EPERM afaics.

As you can see I'm pretty new to Xen. Furthermore, it is the first
time that I heard about XSM, so since I did not change anything I
do not know what to answer! The only thing that I can tell is that
for both dom0 and guests I'm using the same exact kernel and rootfs.
 
> Jan

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:43                         ` Andrea Stevanato
@ 2022-03-07 14:50                           ` Andrew Cooper
  2022-03-07 15:00                             ` Andrea Stevanato
  0 siblings, 1 reply; 25+ messages in thread
From: Andrew Cooper @ 2022-03-07 14:50 UTC (permalink / raw)
  To: Andrea Stevanato, Jan Beulich
  Cc: Jason Andryuk, xen-devel, wl, Anthony Perard, Roger Pau Monne

On 07/03/2022 14:43, Andrea Stevanato wrote:
> On 3/7/2022 3:36 PM, Jan Beulich wrote:
>> On 07.03.2022 15:20, Andrea Stevanato wrote:
>>> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
>>>> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>>>>> /local/domain/2 = ""   (n0,r2)
>>>>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>>>>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>>>>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>>>>> /local/domain/2/memory = ""   (n0,r2)
>>>>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>>>>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>>>>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>>>>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>>>>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>>>>> (n2,r1)
>>>>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>>>>> /local/domain/2/control = ""   (n0,r2)
>>>>> /local/domain/2/control/shutdown = ""   (n2)
>>>>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>>>>> /local/domain/2/control/feature-reboot = "1"   (n2)
>>>>> /local/domain/2/control/feature-suspend = ""   (n2)
>>>>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>>>>> /local/domain/2/drivers = ""   (n2)
>>>>> /local/domain/2/feature = ""   (n2)
>>>>> /local/domain/2/attr = ""   (n2)
>>>>> /local/domain/2/error = ""   (n2)
>>>>> /local/domain/2/error/device = ""   (n2)
>>>>> /local/domain/2/error/device/vif = ""   (n2)
>>>>> /local/domain/2/error/device/vif/0 = ""   (n2)
>>>>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>>>>> (n2)
>>>> That's the real error. Your guest netfront fails to allocate the event
>>>> channel. Do you get any messages in the guest dmesg after trying to
>>>> attach the network interface?
>>> Just these two lines:
>>>
>>> [  389.453390] vif vif-0: 1 allocating event channel
>>> [  389.804135] vif vif-0: 1 allocating event channel
>> Well, these are the error messages, from xenbus_alloc_evtchn().
>> What's a little odd is that the error code is positive, but that's
>> how -EPERM is logged. Is there perhaps a strange or broken XSM
>> policy in use? I ask because evtchn_alloc_unbound() itself
>> wouldn't return -EPERM afaics.
> As you can see I'm pretty new to Xen. Furthermore, it is the first
> time that I heard about XSM, so since I did not change anything I
> do not know what to answer!

Please can you attach the full output of `xl dmesg`, which will help
answer this question.

~Andrew

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:20                     ` Andrea Stevanato
  2022-03-07 14:36                       ` Jan Beulich
@ 2022-03-07 14:52                       ` Roger Pau Monné
  2022-03-07 14:56                         ` Jan Beulich
  1 sibling, 1 reply; 25+ messages in thread
From: Roger Pau Monné @ 2022-03-07 14:52 UTC (permalink / raw)
  To: Andrea Stevanato; +Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On Mon, Mar 07, 2022 at 03:20:22PM +0100, Andrea Stevanato wrote:
> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
> > On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
> >> /local/domain/2 = ""   (n0,r2)
> >> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
> >> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
> >> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
> >> /local/domain/2/memory = ""   (n0,r2)
> >> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
> >> /local/domain/2/memory/target = "1048577"   (n0,r2)
> >> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
> >> /local/domain/2/device/vif/0 = ""   (n2,r1)
> >> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
> >> (n2,r1)
> >> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
> >> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
> >> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
> >> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
> >> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
> >> /local/domain/2/control = ""   (n0,r2)
> >> /local/domain/2/control/shutdown = ""   (n2)
> >> /local/domain/2/control/feature-poweroff = "1"   (n2)
> >> /local/domain/2/control/feature-reboot = "1"   (n2)
> >> /local/domain/2/control/feature-suspend = ""   (n2)
> >> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
> >> /local/domain/2/drivers = ""   (n2)
> >> /local/domain/2/feature = ""   (n2)
> >> /local/domain/2/attr = ""   (n2)
> >> /local/domain/2/error = ""   (n2)
> >> /local/domain/2/error/device = ""   (n2)
> >> /local/domain/2/error/device/vif = ""   (n2)
> >> /local/domain/2/error/device/vif/0 = ""   (n2)
> >> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
> >> (n2)
> > 
> > That's the real error. Your guest netfront fails to allocate the event
> > channel. Do you get any messages in the guest dmesg after trying to
> > attach the network interface?
> 
> Just these two lines:
> 
> [  389.453390] vif vif-0: 1 allocating event channel
> [  389.804135] vif vif-0: 1 allocating event channel

Are you perhaps using some kind flask/xsm policy different from the
defaults?

Regards, Roger.


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:52                       ` Roger Pau Monné
@ 2022-03-07 14:56                         ` Jan Beulich
  2022-03-07 16:08                           ` Andrea Stevanato
  0 siblings, 1 reply; 25+ messages in thread
From: Jan Beulich @ 2022-03-07 14:56 UTC (permalink / raw)
  To: Roger Pau Monné, Andrea Stevanato
  Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On 07.03.2022 15:52, Roger Pau Monné wrote:
> On Mon, Mar 07, 2022 at 03:20:22PM +0100, Andrea Stevanato wrote:
>> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
>>> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>>>> /local/domain/2 = ""   (n0,r2)
>>>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>>>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>>>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>>>> /local/domain/2/memory = ""   (n0,r2)
>>>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>>>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>>>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>>>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>>>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>>>> (n2,r1)
>>>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>>>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>>>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>>>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>>>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>>>> /local/domain/2/control = ""   (n0,r2)
>>>> /local/domain/2/control/shutdown = ""   (n2)
>>>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>>>> /local/domain/2/control/feature-reboot = "1"   (n2)
>>>> /local/domain/2/control/feature-suspend = ""   (n2)
>>>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>>>> /local/domain/2/drivers = ""   (n2)
>>>> /local/domain/2/feature = ""   (n2)
>>>> /local/domain/2/attr = ""   (n2)
>>>> /local/domain/2/error = ""   (n2)
>>>> /local/domain/2/error/device = ""   (n2)
>>>> /local/domain/2/error/device/vif = ""   (n2)
>>>> /local/domain/2/error/device/vif/0 = ""   (n2)
>>>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>>>> (n2)
>>>
>>> That's the real error. Your guest netfront fails to allocate the event
>>> channel. Do you get any messages in the guest dmesg after trying to
>>> attach the network interface?
>>
>> Just these two lines:
>>
>> [  389.453390] vif vif-0: 1 allocating event channel
>> [  389.804135] vif vif-0: 1 allocating event channel
> 
> Are you perhaps using some kind flask/xsm policy different from the
> defaults?

Or SILO mode.

Jan



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:50                           ` Andrew Cooper
@ 2022-03-07 15:00                             ` Andrea Stevanato
  2022-03-07 16:07                               ` Jason Andryuk
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-07 15:00 UTC (permalink / raw)
  To: Andrew Cooper, Jan Beulich, Roger Pau Monne
  Cc: Jason Andryuk, xen-devel, wl, Anthony Perard

On 3/7/2022 3:50 PM, Andrew Cooper wrote:
> On 07/03/2022 14:43, Andrea Stevanato wrote:
>> On 3/7/2022 3:36 PM, Jan Beulich wrote:
>>> On 07.03.2022 15:20, Andrea Stevanato wrote:
>>>> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
>>>>> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>>>>>> /local/domain/2 = ""   (n0,r2)
>>>>>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>>>>>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>>>>>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>>>>>> /local/domain/2/memory = ""   (n0,r2)
>>>>>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>>>>>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>>>>>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>>>>>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>>>>>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>>>>>> (n2,r1)
>>>>>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>>>>>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>>>>>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>>>>>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>>>>>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>>>>>> /local/domain/2/control = ""   (n0,r2)
>>>>>> /local/domain/2/control/shutdown = ""   (n2)
>>>>>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>>>>>> /local/domain/2/control/feature-reboot = "1"   (n2)
>>>>>> /local/domain/2/control/feature-suspend = ""   (n2)
>>>>>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>>>>>> /local/domain/2/drivers = ""   (n2)
>>>>>> /local/domain/2/feature = ""   (n2)
>>>>>> /local/domain/2/attr = ""   (n2)
>>>>>> /local/domain/2/error = ""   (n2)
>>>>>> /local/domain/2/error/device = ""   (n2)
>>>>>> /local/domain/2/error/device/vif = ""   (n2)
>>>>>> /local/domain/2/error/device/vif/0 = ""   (n2)
>>>>>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>>>>>> (n2)
>>>>> That's the real error. Your guest netfront fails to allocate the event
>>>>> channel. Do you get any messages in the guest dmesg after trying to
>>>>> attach the network interface?
>>>> Just these two lines:
>>>>
>>>> [  389.453390] vif vif-0: 1 allocating event channel
>>>> [  389.804135] vif vif-0: 1 allocating event channel
>>> Well, these are the error messages, from xenbus_alloc_evtchn().
>>> What's a little odd is that the error code is positive, but that's
>>> how -EPERM is logged. Is there perhaps a strange or broken XSM
>>> policy in use? I ask because evtchn_alloc_unbound() itself
>>> wouldn't return -EPERM afaics.
>> As you can see I'm pretty new to Xen. Furthermore, it is the first
>> time that I heard about XSM, so since I did not change anything I
>> do not know what to answer!
> 
> Please can you attach the full output of `xl dmesg`, which will help
> answer this question.

# xl dmesg
(XEN) Checking for initrd in /chosen
(XEN) RAM: 0000000000000000 - 000000007fefffff
(XEN) RAM: 0000000800000000 - 000000087fffffff
(XEN)
(XEN) MODULE[0]: 0000000007000000 - 000000000700e000 Device Tree
(XEN) MODULE[1]: 0000000002a00000 - 0000000006d1e0aa Ramdisk
(XEN) MODULE[2]: 0000000000e00000 - 0000000002891200 Kernel
(XEN)
(XEN)
(XEN) Command line: console=dtuart dtuart=serial0 dom0_mem=1500M dom0_max_vcpus=1 bootscrub=0 vwfi=native sched=null loglvl=all guest_loglvl=all
(XEN) PFN compression on bits 19...22
(XEN) Domain heap initialised
(XEN) Booting using Device Tree
(XEN) Platform: Xilinx ZynqMP
(XEN) Looking for dtuart at "serial0", options ""
 Xen 4.14.3-pre
(XEN) Xen version 4.14.3-pre (xen-4.14+gitAUTOINC+e9efd896f9-r0@petalinux) (aarch64-xilinx-linux-gcc (GCC) 10.2.0) debug=n  2021-09-24
(XEN) Latest ChangeSet: Thu Sep 23 18:38:11 2021 -0700 git:e9efd896f9-dirty
(XEN) build-id: 4b7faa4d0c0a308eee0ae8eb52a6fda106026076
(XEN) Processor: 410fd034: "ARM Limited", variant: 0x0, part 0xd03, rev 0x4
(XEN) 64-bit Execution:
(XEN)   Processor Features: 1100000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00001231:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
(XEN)     Extensions: GenericTimer Security
(XEN)   Debug Features: 03010066
(XEN)   Auxiliary Features: 00000000
(XEN)   Memory Model Features: 10101105 40000000 01260000 02102211
(XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121
(XEN) Using SMC Calling Convention v1.2
(XEN) Using PSCI v1.1
(XEN) SMP: Allowing 4 CPUs
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 65000 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f9010000
(XEN)         gic_cpu_addr=00000000f9020000
(XEN)         gic_hyp_addr=00000000f9040000
(XEN)         gic_vcpu_addr=00000000f9060000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: Adjusting CPU interface base to 0xf902f000
(XEN) GICv2: 192 lines, 4 cpus, secure (IID 00000000).
(XEN) XSM Framework v1.0.0 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: null Scheduler (null)
(XEN) Initializing null scheduler
(XEN) WARNING: This is experimental software in development.
(XEN) Use at your own risk.
(XEN) Allocated console ring of 32 KiB.
(XEN) CPU0: Guest atomics will try 1 times before pausing the domain
(XEN) Bringing up CPU1
(XEN) CPU1: Guest atomics will try 1 times before pausing the domain
(XEN) CPU 1 booted.
(XEN) Bringing up CPU2
(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
(XEN) CPU 2 booted.
(XEN) Bringing up CPU3
(XEN) CPU3: Guest atomics will try 1 times before pausing the domain
(XEN) CPU 3 booted.
(XEN) Brought up 4 CPUs
(XEN) smmu: /axi/smmu@fd800000: probing hardware configuration...
(XEN) smmu: /axi/smmu@fd800000: SMMUv2 with:
(XEN) smmu: /axi/smmu@fd800000:         stage 2 translation
(XEN) smmu: /axi/smmu@fd800000:         stream matching with 48 register groups, mask 0x7fff
(XEN) smmu: /axi/smmu@fd800000:         16 context banks (0 stage-2 only)
(XEN) smmu: /axi/smmu@fd800000:         Stage-2: 48-bit IPA -> 48-bit PA
(XEN) smmu: /axi/smmu@fd800000: registered 29 master devices
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) alternatives: Patching with alt table 00000000002c3360 -> 00000000002c3b28
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 0000000000e00000
(XEN) Loading ramdisk from boot module @ 0000000002a00000
(XEN) Allocating 1:1 mappings totalling 1500MB for dom0:
(XEN) BANK[0] 0x00000020000000-0x0000007c000000 (1472MB)
(XEN) BANK[1] 0x0000007e000000-0x0000007fc00000 (28MB)
(XEN) Grant table range: 0x00000006e00000-0x00000006e40000
(XEN) smmu: /axi/smmu@fd800000: d0: p2maddr 0x000000087bf94000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 0000000000e00000 to 0000000020000000-0000000021a91200
(XEN) Loading d0 initrd from 0000000002a00000 to 0x0000000028200000-0x000000002c51e0aa
(XEN) Loading d0 DTB to 0x0000000028000000-0x000000002800c4d5
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 336kB init memory.
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER8
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER12
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER16
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER20
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) d1v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) d1v1: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) d2v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) d2v1: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) d3v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0

# cat /boot/xen-4.14.3-pre.config | grep XSM
CONFIG_XSM=y
CONFIG_XSM_FLASK=y
CONFIG_XSM_FLASK_AVC_STATS=y
# CONFIG_XSM_FLASK_POLICY is not set
CONFIG_XSM_SILO=y
# CONFIG_XSM_DUMMY_DEFAULT is not set
# CONFIG_XSM_FLASK_DEFAULT is not set
CONFIG_XSM_SILO_DEFAULT=y

This is the default configuration shipped with petalinux. From the
help menuconfig, it seems that this XSM SILO deny communication
between unprivileged VMs.
 
> ~Andrew

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 15:00                             ` Andrea Stevanato
@ 2022-03-07 16:07                               ` Jason Andryuk
  2022-03-07 16:10                                 ` Andrea Stevanato
  0 siblings, 1 reply; 25+ messages in thread
From: Jason Andryuk @ 2022-03-07 16:07 UTC (permalink / raw)
  To: Andrea Stevanato
  Cc: Andrew Cooper, Jan Beulich, Roger Pau Monne, xen-devel, wl,
	Anthony Perard

On Mon, Mar 7, 2022 at 10:00 AM Andrea Stevanato
<andrea.stevanato@santannapisa.it> wrote:
> (XEN) XSM Framework v1.0.0 initialized
> (XEN) Initialising XSM SILO mode

Yes, SILO mode is running.

> # cat /boot/xen-4.14.3-pre.config | grep XSM
> CONFIG_XSM=y
> CONFIG_XSM_FLASK=y
> CONFIG_XSM_FLASK_AVC_STATS=y
> # CONFIG_XSM_FLASK_POLICY is not set
> CONFIG_XSM_SILO=y
> # CONFIG_XSM_DUMMY_DEFAULT is not set
> # CONFIG_XSM_FLASK_DEFAULT is not set
> CONFIG_XSM_SILO_DEFAULT=y
>
> This is the default configuration shipped with petalinux. From the
> help menuconfig, it seems that this XSM SILO deny communication
> between unprivileged VMs.

You could try adding xsm=dummy to your hypervisor command line to turn
off SILO and allow the guests to communicate.

Regards,
Jason


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 14:56                         ` Jan Beulich
@ 2022-03-07 16:08                           ` Andrea Stevanato
  0 siblings, 0 replies; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-07 16:08 UTC (permalink / raw)
  To: Jan Beulich, Roger Pau Monné
  Cc: Jason Andryuk, xen-devel, wl, Anthony PERARD

On 3/7/2022 3:56 PM, Jan Beulich wrote:
> On 07.03.2022 15:52, Roger Pau Monné wrote:
>> On Mon, Mar 07, 2022 at 03:20:22PM +0100, Andrea Stevanato wrote:
>>> On 3/7/2022 12:46 PM, Roger Pau Monné wrote:
>>>> On Mon, Mar 07, 2022 at 12:39:22PM +0100, Andrea Stevanato wrote:
>>>>> /local/domain/2 = ""   (n0,r2)
>>>>> /local/domain/2/vm = "/vm/f6dca20a-54bb-43af-9a62-67c55cb75708"   (n0,r2)
>>>>> /local/domain/2/name = "guest1"   (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/cpu/1 = ""   (n0,r2)
>>>>> /local/domain/2/cpu/1/availability = "online"   (n0,r2)
>>>>> /local/domain/2/memory = ""   (n0,r2)
>>>>> /local/domain/2/memory/static-max = "1048576"   (n0,r2)
>>>>> /local/domain/2/memory/target = "1048577"   (n0,r2)
>>>>> /local/domain/2/memory/videoram = "-1"   (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/vif = ""   (n0,r2)
>>>>> /local/domain/2/device/vif/0 = ""   (n2,r1)
>>>>> /local/domain/2/device/vif/0/backend = "/local/domain/1/backend/vif/2/0"
>>>>> (n2,r1)
>>>>> /local/domain/2/device/vif/0/backend-id = "1"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/state = "6"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/handle = "0"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/mac = "00:16:3e:07:df:91"   (n2,r1)
>>>>> /local/domain/2/device/vif/0/xdp-headroom = "0"   (n2,r1)
>>>>> /local/domain/2/control = ""   (n0,r2)
>>>>> /local/domain/2/control/shutdown = ""   (n2)
>>>>> /local/domain/2/control/feature-poweroff = "1"   (n2)
>>>>> /local/domain/2/control/feature-reboot = "1"   (n2)
>>>>> /local/domain/2/control/feature-suspend = ""   (n2)
>>>>> /local/domain/2/control/sysrq = ""   (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/data = ""   (n2)
>>>>> /local/domain/2/drivers = ""   (n2)
>>>>> /local/domain/2/feature = ""   (n2)
>>>>> /local/domain/2/attr = ""   (n2)
>>>>> /local/domain/2/error = ""   (n2)
>>>>> /local/domain/2/error/device = ""   (n2)
>>>>> /local/domain/2/error/device/vif = ""   (n2)
>>>>> /local/domain/2/error/device/vif/0 = ""   (n2)
>>>>> /local/domain/2/error/device/vif/0/error = "1 allocating event channel"
>>>>> (n2)
>>>>
>>>> That's the real error. Your guest netfront fails to allocate the event
>>>> channel. Do you get any messages in the guest dmesg after trying to
>>>> attach the network interface?
>>>
>>> Just these two lines:
>>>
>>> [  389.453390] vif vif-0: 1 allocating event channel
>>> [  389.804135] vif vif-0: 1 allocating event channel
>>
>> Are you perhaps using some kind flask/xsm policy different from the
>> defaults?
> 
> Or SILO mode.

It turns out that this was the problem. I changed it to FLASK, added
flask=late to the bootloader cmd and now it works fine (at least for
now).

> Jan

Forgive me for bothering you so much, as soon as I can I will update
the wiki with all the information that I have discovered!
Thank you all!

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 16:07                               ` Jason Andryuk
@ 2022-03-07 16:10                                 ` Andrea Stevanato
  2022-03-07 16:21                                   ` Jason Andryuk
  0 siblings, 1 reply; 25+ messages in thread
From: Andrea Stevanato @ 2022-03-07 16:10 UTC (permalink / raw)
  To: Jason Andryuk
  Cc: Andrew Cooper, Jan Beulich, Roger Pau Monne, xen-devel, wl,
	Anthony Perard

On 3/7/2022 5:07 PM, Jason Andryuk wrote:
> On Mon, Mar 7, 2022 at 10:00 AM Andrea Stevanato
> <andrea.stevanato@santannapisa.it> wrote:
>> (XEN) XSM Framework v1.0.0 initialized
>> (XEN) Initialising XSM SILO mode
> 
> Yes, SILO mode is running.
> 
>> # cat /boot/xen-4.14.3-pre.config | grep XSM
>> CONFIG_XSM=y
>> CONFIG_XSM_FLASK=y
>> CONFIG_XSM_FLASK_AVC_STATS=y
>> # CONFIG_XSM_FLASK_POLICY is not set
>> CONFIG_XSM_SILO=y
>> # CONFIG_XSM_DUMMY_DEFAULT is not set
>> # CONFIG_XSM_FLASK_DEFAULT is not set
>> CONFIG_XSM_SILO_DEFAULT=y
>>
>> This is the default configuration shipped with petalinux. From the
>> help menuconfig, it seems that this XSM SILO deny communication
>> between unprivileged VMs.
> 
> You could try adding xsm=dummy to your hypervisor command line to turn
> off SILO and allow the guests to communicate.

I changed it to FLASK adding flask=late to hypervisor the command line.
Which one should I choose? SILO + xsm=dummy or FLASK + flask=late/disabled?
What are the differences?

Cheers,
Andrea


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: Network driver domain broken
  2022-03-07 16:10                                 ` Andrea Stevanato
@ 2022-03-07 16:21                                   ` Jason Andryuk
  0 siblings, 0 replies; 25+ messages in thread
From: Jason Andryuk @ 2022-03-07 16:21 UTC (permalink / raw)
  To: Andrea Stevanato
  Cc: Andrew Cooper, Jan Beulich, Roger Pau Monne, xen-devel, wl,
	Anthony Perard

On Mon, Mar 7, 2022 at 11:10 AM Andrea Stevanato
<andrea.stevanato@santannapisa.it> wrote:
>
> On 3/7/2022 5:07 PM, Jason Andryuk wrote:
> > On Mon, Mar 7, 2022 at 10:00 AM Andrea Stevanato
> > <andrea.stevanato@santannapisa.it> wrote:
> >> (XEN) XSM Framework v1.0.0 initialized
> >> (XEN) Initialising XSM SILO mode
> >
> > Yes, SILO mode is running.
> >
> >> # cat /boot/xen-4.14.3-pre.config | grep XSM
> >> CONFIG_XSM=y
> >> CONFIG_XSM_FLASK=y
> >> CONFIG_XSM_FLASK_AVC_STATS=y
> >> # CONFIG_XSM_FLASK_POLICY is not set
> >> CONFIG_XSM_SILO=y
> >> # CONFIG_XSM_DUMMY_DEFAULT is not set
> >> # CONFIG_XSM_FLASK_DEFAULT is not set
> >> CONFIG_XSM_SILO_DEFAULT=y
> >>
> >> This is the default configuration shipped with petalinux. From the
> >> help menuconfig, it seems that this XSM SILO deny communication
> >> between unprivileged VMs.
> >
> > You could try adding xsm=dummy to your hypervisor command line to turn
> > off SILO and allow the guests to communicate.
>
> I changed it to FLASK adding flask=late to hypervisor the command line.
> Which one should I choose? SILO + xsm=dummy or FLASK + flask=late/disabled?
> What are the differences?

xsm=dummy is the "default" policy.  Basically, it's allowing dom0 to
make privileged hypercalls and guests to make non-privileged
hypercalls.

flask without a policy may be allowing everything, which means guests
can make privileged hypercalls.  flask with a policy lets you define
what is or isn't allowed.

xsm=dummy is probably better for you than flask without a policy
(assuming it works :).

Regards,
Jason


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2022-03-07 16:22 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-03 14:54 Network driver domain broken Andrea Stevanato
2022-03-03 16:01 ` Andrea Stevanato
2022-03-03 16:33   ` Roger Pau Monné
2022-03-03 18:08     ` Jason Andryuk
2022-03-04 11:18       ` Andrea Stevanato
2022-03-04 11:52       ` Roger Pau Monné
2022-03-04 12:05         ` Andrea Stevanato
2022-03-04 12:27           ` Roger Pau Monné
2022-03-04 13:46             ` Andrea Stevanato
2022-03-04 14:54               ` Andrea Stevanato
2022-03-07 11:22               ` Roger Pau Monné
2022-03-07 11:39                 ` Andrea Stevanato
2022-03-07 11:46                   ` Roger Pau Monné
2022-03-07 14:20                     ` Andrea Stevanato
2022-03-07 14:36                       ` Jan Beulich
2022-03-07 14:43                         ` Andrea Stevanato
2022-03-07 14:50                           ` Andrew Cooper
2022-03-07 15:00                             ` Andrea Stevanato
2022-03-07 16:07                               ` Jason Andryuk
2022-03-07 16:10                                 ` Andrea Stevanato
2022-03-07 16:21                                   ` Jason Andryuk
2022-03-07 14:52                       ` Roger Pau Monné
2022-03-07 14:56                         ` Jan Beulich
2022-03-07 16:08                           ` Andrea Stevanato
2022-03-04 11:56       ` Andrea Stevanato

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.