On 3/21/24 13:51, David Gibson wrote:
On Thu, Mar 21, 2024 at 11:47:45PM +1100, David Gibson wrote:
On Thu, Mar 21, 2024 at 01:21:03PM +0100, Laurent Vivier wrote:
On 3/21/24 11:55, David Gibson wrote:
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
[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:
Welp, that would explain it.
$ 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 directory
So 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.
Can you get the output of running mbuto with sh -x? That might shed some light.
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, Laurent