On 3/21/24 13:51, David Gibson wrote:On Thu, Mar 21, 2024 at 11:47:45PM +1100, David Gibson wrote:Really strange: + /usr/bin/cpio --create -H newc --quiet + /usr/bin/gzip + '[' -n /usr/bin/archivemount ']' + /usr/bin/archivemount /home/lvivier/Projects/passt/test/mbuto.mem.img /tmp/tmp.AXKp3fwxoA + info 'Mounted CPIO archive /home/lvivier/Projects/passt/test/mbuto.mem.img at /tmp/tmp.AXKp3fwxoA' and then: $ find /tmp/tmp.AXKp3fwxoA /tmp/tmp.AXKp3fwxoA /tmp/tmp.AXKp3fwxoA/lib /tmp/tmp.AXKp3fwxoA/lib/modules /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64 /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/kernel /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/kernel/drivers /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/kernel/drivers/net /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/kernel/drivers/net/dummy.ko.xz /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.order /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.builtin /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.dep /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.dep.bin /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.alias /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.alias.bin /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.softdep /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.symbols /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.symbols.bin /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.builtin.bin /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.builtin.alias.bin /tmp/tmp.AXKp3fwxoA/lib/modules/6.7.9-200.fc39.x86_64/modules.devname /tmp/tmp.AXKp3fwxoA/proc /tmp/tmp.AXKp3fwxoA/sys /tmp/tmp.AXKp3fwxoA/tmp /tmp/tmp.AXKp3fwxoA/sbin /tmp/tmp.AXKp3fwxoA/usr /tmp/tmp.AXKp3fwxoA/usr/bin /tmp/tmp.AXKp3fwxoA/usr/bin/bash /tmp/tmp.AXKp3fwxoA/usr/bin/chmod /tmp/tmp.AXKp3fwxoA/usr/bin/mount /tmp/tmp.AXKp3fwxoA/usr/bin/mkdir /tmp/tmp.AXKp3fwxoA/usr/bin/ln /tmp/tmp.AXKp3fwxoA/usr/bin/cat /tmp/tmp.AXKp3fwxoA/usr/bin/grep /tmp/tmp.AXKp3fwxoA/usr/bin/mknod /tmp/tmp.AXKp3fwxoA/usr/bin/sed /tmp/tmp.AXKp3fwxoA/usr/bin/chown /tmp/tmp.AXKp3fwxoA/usr/bin/sleep /tmp/tmp.AXKp3fwxoA/usr/bin/bc /tmp/tmp.AXKp3fwxoA/usr/bin/ls /tmp/tmp.AXKp3fwxoA/usr/bin/ps /tmp/tmp.AXKp3fwxoA/usr/bin/unshare /tmp/tmp.AXKp3fwxoA/usr/bin/cp /tmp/tmp.AXKp3fwxoA/usr/bin/kill /tmp/tmp.AXKp3fwxoA/usr/bin/diff /tmp/tmp.AXKp3fwxoA/usr/bin/head /tmp/tmp.AXKp3fwxoA/usr/bin/tail /tmp/tmp.AXKp3fwxoA/usr/bin/sort /tmp/tmp.AXKp3fwxoA/usr/bin/tr /tmp/tmp.AXKp3fwxoA/usr/bin/tee /tmp/tmp.AXKp3fwxoA/usr/bin/cut /tmp/tmp.AXKp3fwxoA/usr/bin/nm /tmp/tmp.AXKp3fwxoA/usr/bin/which /tmp/tmp.AXKp3fwxoA/usr/lib64 /tmp/tmp.AXKp3fwxoA/usr/lib64/libfakeroot /tmp/tmp.AXKp3fwxoA/usr/lib64/libfakeroot/libfakeroot-tcp.so /tmp/tmp.AXKp3fwxoA/usr/lib64/libfakeroot/libfakeroot-0.so /tmp/tmp.AXKp3fwxoA/usr/sbin /tmp/tmp.AXKp3fwxoA/usr/sbin/ip /tmp/tmp.AXKp3fwxoA/usr/sbin/insmod /tmp/tmp.AXKp3fwxoA/usr/sbin/modprobe /tmp/tmp.AXKp3fwxoA/usr/sbin/chroot /tmp/tmp.AXKp3fwxoA/bin /tmp/tmp.AXKp3fwxoA/bin/sh /tmp/tmp.AXKp3fwxoA/bin/passt.avx2 /tmp/tmp.AXKp3fwxoA/etc /tmp/tmp.AXKp3fwxoA/etc/ld.so.conf /tmp/tmp.AXKp3fwxoA/etc/ld.so.cache /tmp/tmp.AXKp3fwxoA/lib64 /tmp/tmp.AXKp3fwxoA/lib64/libc.so.6 /tmp/tmp.AXKp3fwxoA/lib64/libnss_dns.so.2 /tmp/tmp.AXKp3fwxoA/lib64/libresolv.so.2 /tmp/tmp.AXKp3fwxoA/lib64/ld-linux-x86-64.so.2 /tmp/tmp.AXKp3fwxoA/lib64/libnss_files.so.2 /tmp/tmp.AXKp3fwxoA/lib64/libtinfo.so.6 /tmp/tmp.AXKp3fwxoA/lib64/libbpf.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libelf.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libz.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libzstd.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libmnl.so.0 /tmp/tmp.AXKp3fwxoA/lib64/libcap.so.2 /tmp/tmp.AXKp3fwxoA/lib64/libmount.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libblkid.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libselinux.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libpcre2-8.so.0 /tmp/tmp.AXKp3fwxoA/lib64/liblzma.so.5 /tmp/tmp.AXKp3fwxoA/lib64/libcrypto.so.3 /tmp/tmp.AXKp3fwxoA/lib64/libgcc_s.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libacl.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libattr.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libreadline.so.8 /tmp/tmp.AXKp3fwxoA/lib64/libproc2.so.0 /tmp/tmp.AXKp3fwxoA/lib64/libsystemd.so.0 /tmp/tmp.AXKp3fwxoA/lib64/liblz4.so.1 /tmp/tmp.AXKp3fwxoA/lib64/libbfd-2.40-14.fc39.so /tmp/tmp.AXKp3fwxoA/lib64/libsframe.so.0 /tmp/tmp.AXKp3fwxoA/dev /tmp/tmp.AXKp3fwxoA/dev/console /tmp/tmp.AXKp3fwxoA/dev/kmsg /tmp/tmp.AXKp3fwxoA/dev/null /tmp/tmp.AXKp3fwxoA/dev/ptmx /tmp/tmp.AXKp3fwxoA/dev/random /tmp/tmp.AXKp3fwxoA/dev/urandom /tmp/tmp.AXKp3fwxoA/dev/zero /tmp/tmp.AXKp3fwxoA/init but $ gzip -d -c < /home/lvivier/Projects/passt/test/mbuto.mem.img | cpio -t 1 block Any idea? Thanks, LaurentOn Thu, Mar 21, 2024 at 01:21:03PM +0100, Laurent Vivier wrote:Can you get the output of running mbuto with sh -x? That might shed some light.On 3/21/24 11:55, David Gibson wrote:Welp, that would explain it.On Thu, Mar 21, 2024 at 09:26:58AM +0100, Laurent Vivier wrote: > On 3/21/24 02:26, David Gibson wrote: >> On Wed, Mar 20, 2024 at 05:31:46PM +0100, Laurent Vivier wrote: >>> To be able to provide pointers to TCP headers and IP headers without >>> worrying about alignment in the structure, split the structure into >>> several arrays and point to each part of the frame using an iovec array. >>> >>> Using iovec also allows us to simply ignore the first entry when the >>> vnet length header is not needed. >>> >>> Signed-off-by: Laurent Vivier <lvivier(a)redhat.com> >> >> [snip] >>> +static_assert(MSS4 <= sizeof(tcp4_payload[0].data)); >> >> This generates a clang-tidy warning, because apparently the C11 >> version of static_assert() requires a message - making it optional is >> a C2x extension. >> >> Laurent, I know you're having trouble getting the full testsuite to >> run (but some ideas on that later today, I hope). But could you >> please add a "make cppcheck" and "make clang-tidy" to your pre-post >> routine. >> > > I'll do. > Thank you to have checked that. > Are there any other commands to run before to send? > Something like scripts/chekpatch.pl we have in QEMU? > > I have always the same problem with the test suite, even after a "make > realclean" in test (see attachment) > How to debug? Huh. Guest kernel can't find root. That's not a fault I was expecting (and alas, won't be helped by the patch I have in the works). What's really weird is I don't see any signs of loading the initrd before that failure, and with the mbuto images we're using we should never *leave* the initrd. Which kind of makes sense - if it's not seeing the initrd, then there is indeed no root to mount. Can you gran the full qemu command line it's trying to use?My file mbuto seems to be empty:$ cd test/ $ make ./mbuto/mbuto -p ./passt.mem.mbuto -c lz4 -f mbuto.mem.img Applying profile from file ./passt.mem.mbuto depmod: WARNING: could not open modules.builtin.modinfo at /tmp/tmp.0Xr88SNogx/lib/modules/6.7.9-200.fc39.x86_64: No such file or directorySo now we have two mysteries. 1) Why is depmod failing here, and 2) why isn't depmod failing causing mbuto to fail, rather than generating nonsense output.