As discussed on our call, the current line_read() implementation is
pretty ugly and has some definite bugs. This series replaces it with
a new implementation which should be more solid and more readable.
The new implementation is larger than I'd really like, but it turns
out its fiddlier to handle the various edge cases than you might
think.
David Gibson (4):
Add cleaner line-by-line reading primitives
Parse resolv.conf with new lineread implementation
Use new lineread implementation for procfs_scan_listen()
Remove unused line_read()
Makefile | 8 ++--
conf.c | 22 ++++++----
lineread.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++
lineread.h | 31 +++++++++++++++
util.c | 64 +++--------------------------
5 files changed, 170 insertions(+), 70 deletions(-)
create mode 100644 lineread.c
create mode 100644 lineread.h
--
2.36.1
Now that the mbuto profile change is around, I tried getting the passt
tests working. I fixed a couple of minor problems, before hitting
another mbuto issue.
On my host, mbuto isn't managing to find and include the virtio_net
module. I think this is because on current Fedora the modules in
/lib/modules are compressed. So it needs to include:
/lib/modules/5.18.6-200.fc36.x86_64/kernel/drivers/net/virtio_net.ko.xz
but I think it's only looking for a plain '.ko' file.
I had a look at the mbuto code to see if I could fix it, but I'm
afraid mbuto is a long way past the complexity level at which I find
shell remotely comprehensible.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
Here's another batch of fixes to get more passt/pasta tests running on
my system, this time focused on the distro test cases. A number of
those tests now run on my Fedora 36 host. Unfortunately they still
fail on the Fedora 30, aarch64 test for reasons I haven't figured out
(one of the yum downloads times out with passt but not -net user).
This series is based on my earlier series adding the new "lineread"
subsystem.
David Gibson (5):
tests: qemu-system-ppc64le isn't a thing
Invoke specific qemu-system-* binaries
tests: Cache downloaded guest images
Handle the case of a DNS server on localhost
tests: Try multiple paths for aarch64 EDK2 bios image
conf.c | 16 +++++++
passt.1 | 6 +--
test/.gitignore | 1 +
test/demo/passt | 2 +-
test/distro/debian | 60 +++++++++++---------------
test/distro/fedora | 100 +++++++++++++++++++------------------------
test/distro/opensuse | 23 +++++-----
test/distro/ubuntu | 25 +++++------
test/lib/setup | 15 +++++--
test/lib/test | 12 ++++++
test/run | 4 ++
11 files changed, 140 insertions(+), 124 deletions(-)
--
2.36.1
As discussed on our call, the current line_read() implementation is
pretty ugly and has some definite bugs. This series replaces it with
a new implementation which should be more solid and more readable.
The new implementation is larger than I'd really like, but it turns
out its fiddlier to handle the various edge cases than you might
think.
David Gibson (4):
Add cleaner line-by-line reading primitives
Parse resolv.conf with new lineread implementation
Use new lineread implementation for procfs_scan_listen()
Remove unused line_read()
Makefile | 8 ++--
conf.c | 22 +++++++----
lineread.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++
lineread.h | 23 ++++++++++++
util.c | 64 +++----------------------------
5 files changed, 155 insertions(+), 70 deletions(-)
create mode 100644 lineread.c
create mode 100644 lineread.h
--
2.36.1
I alluded to this in my last patchset, but here's the information I've
gathered on the current problem I'm hitting running the passt distro
tests. It's pretty weird.
On at least two occasions the tests have stalled during the Fedora 30,
aarch64 test, with the guest getting a timeout downloading the package
lists before installing new packages. For me this is selecting the
mirror mirror.2degrees.nz. I'm not sure which factors are are
relevant to reproducing the problem though.
* The problem seems to me that the download suddenly stops progressing
* partway through, causing dnf to eventually time out
* If I manually try a "dnf clean all && dnf makecache -v" using the
same guest image, it doesn't fail every time, but it fails
significantly more often than not
* It doesn't fail on the same file every time
* I haven't been able to reproduce manually downloading the failing
file with curl (tried repeatedly)
* If I restrict dnf to a single repository rather than the whole set,
I haven't managed to reproduce the problem
* If I use qemu's -net user slirp instead of passt with the same disk
image , I haven't been able to reproduce the problem (tried a bunch
of times)
* I've reproduced with the guest using both IPv4 and IPv6
* I have reproduced what looks like the same problem with an x86 guest
image under KVM (also Fedora 30), but it seems to happen much less
often (seen once in 10 or more attempts)
* Seems to reproduce fairly readily with an x86 guest under TCG
though, so I'm guessing the difference is timing related.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
These are not directly apropose anything, but I encountered a number
of minor uglies in the Makefiles while I was working on other stuff,
so heres a bunch of cleanups.
David Gibson (6):
Makefile: Avoid using wildcard sources
Makefile: Use $(BIN) and $(MANPAGES) variable to simplify several
targets
Makefile: Simplify pasta* targets with a pattern rule
Makefile: Tweak $(RM) usage
Makefile: Don't create extraneous -.s file
Makefile: Spell prefix as PREFIX
Makefile | 77 +++++++++++++++++++++++++++---------------------------
seccomp.sh | 5 ++--
2 files changed, 41 insertions(+), 41 deletions(-)
--
2.36.1
Hi Stefano,
Here's another batch of fixes for the passt/pasta tests. With this
lot I'm now able to get the build and pasta tests passing on my Fedora
workstation. The passt and distro tests still fail or crash, I'm
continuing to look at those (it looks like there are some very fragile
behaviours in qrap which means they're not even getting started).
David Gibson (5):
tests: Use more explicit netcat options for distro/fedora tests
Don't abbreviate ip(8) arguments in examples and tests
Tweak dhclient arguments for readability
Use dhclient instead of udhcpc
tests: Use nmap-ncat instead of openbsd netcat for pasta tests
contrib/kata-containers/README.md | 2 +-
doc/demo.sh | 8 ++---
passt.1 | 16 +++------
test/README.md | 2 +-
test/demo/passt | 16 ++++-----
test/demo/pasta | 24 ++++++-------
test/demo/podman | 20 +++++------
test/dhcp/passt | 24 ++++++-------
test/dhcp/pasta | 26 +++++++-------
test/distro/fedora | 14 ++++----
test/distro/ubuntu | 4 +--
test/icmp/passt_in_ns | 4 +--
test/lib/setup | 12 +++----
test/ndp/passt | 12 +++----
test/ndp/pasta | 12 +++----
test/perf/passt_tcp | 8 ++---
test/perf/passt_udp | 8 ++---
test/perf/pasta_tcp | 6 ++--
test/perf/pasta_udp | 6 ++--
test/tcp/passt | 6 ++--
test/tcp/passt_in_ns | 22 ++++++------
test/tcp/pasta | 60 +++++++++++++++----------------
test/two_guests/basic | 26 +++++++-------
test/udp/passt | 6 ++--
test/udp/passt_in_ns | 14 ++++----
test/udp/pasta | 35 +++++++++---------
26 files changed, 193 insertions(+), 200 deletions(-)
--
2.36.1