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.

Reply via email to