diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2022-10-31 12:20:59 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2022-11-04 12:01:27 +0100 |
commit | 40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b (patch) | |
tree | b03442286486117b67d986886377ab0f93152bc1 /test/passt.mem.mbuto | |
parent | ce2a0a5bb45b23a28ac9b125bd67a4678c009231 (diff) | |
download | passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.tar passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.tar.gz passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.tar.bz2 passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.tar.lz passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.tar.xz passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.tar.zst passt-40fc9e6e7b46819bfa275abf8e0f0e5b6ae7316b.zip |
test: Add memory/passt test cases
These show a summary of memory usage in kernel and userspace with
different port forwarding configurations, details of userspace usage
using 'nm' (passt only uses statically allocated memory), and details
of kernel memory from slab reporting facilities.
This adds a new test image, mbuto.mem.img, with harcoded IPv4 and
IPv6 addresses and routes, and just the tools we need to start and
stop passt, to report from /proc/slabinfo, /proc/meminfo, and to
print and parse symbol sizes using nm(1).
passt can't pivot_root() for sandboxing purposes on ramfs, so we need
to create another filesystem and chroot into it, first.
We don't want to use pane context functions, as we're checking memory
usage for sockets: resort to screen-scraping.
Configure a dummy interface to provide passt with an appearance of
working IPv4 and IPv6 connectivity, contributed by David.
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'test/passt.mem.mbuto')
-rwxr-xr-x | test/passt.mem.mbuto | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/passt.mem.mbuto b/test/passt.mem.mbuto new file mode 100755 index 0000000..dc06015 --- /dev/null +++ b/test/passt.mem.mbuto @@ -0,0 +1,44 @@ +#!/bin/sh +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# PASST - Plug A Simple Socket Transport +# for qemu/UNIX domain socket mode +# +# test/passt.mem.mbuto - mbuto (https://mbuto.sh) profile for memory usage tests +# +# Copyright (c) 2022 Red Hat GmbH +# Author: Stefano Brivio <sbrivio@redhat.com> + +PROGS="${PROGS:-ash,dash,bash chmod ip mount insmod mkdir ln cat chmod modprobe + grep mknod sed chown sleep bc ls ps mount unshare chroot cp kill diff + head tail sort tr tee cut nm which}" + +KMODS="${KMODS:- dummy}" + +NODES="${NODES:-console kmsg null ptmx random urandom zero}" + +LINKS="${LINKS:- + ash,dash,bash /init + ash,dash,bash /bin/sh}" + +DIRS="${DIRS} /tmp /sbin" + +COPIES="${COPIES} ../passt.avx2,/bin/passt.avx2" + +FIXUP="${FIXUP}"' +ln -s /bin /usr/bin +chmod 777 /tmp +ip link add eth0 type dummy +ip link set eth0 up +ip address add 192.0.2.2/24 dev eth0 +ip address add 2001:db8::2/64 dev eth0 +ip route add default via 192.0.2.1 +ip -6 route add default via 2001:db8::1 dev eth0 +sleep 2 +sh +m +' + +OUTPUT="KERNEL=__KERNEL__ +INITRD=__INITRD__ +" |