From c42a056ba67b121c40b67d332ce9489077bece36 Mon Sep 17 00:00:00 2001 From: Ilias Apalodimas Date: Tue, 5 Oct 2021 13:07:56 +0300 Subject: Enable SR-IR in QEMU and x86 some old script cleanups as well Signed-off-by: Ilias Apalodimas --- execs/sr-ir.yaml | 19 +++++++ execs/ubuntu-build-essential.yaml | 2 + lng-generator-02/ixgbe-ubuntu-17.10.yaml | 84 ----------------------------- scripts/build-u-boot.sh | 15 ++++++ scripts/sr-ir.sh | 90 ++++++++++++++++++++++++++++++++ sr-ir/sr-ir-qemu.yaml | 39 ++++++++++++++ sr-ir/sr-ir-ubuntu-21.04.yaml | 73 ++++++++++++++++++++++++++ 7 files changed, 238 insertions(+), 84 deletions(-) create mode 100644 execs/sr-ir.yaml delete mode 100644 lng-generator-02/ixgbe-ubuntu-17.10.yaml create mode 100755 scripts/build-u-boot.sh create mode 100755 scripts/sr-ir.sh create mode 100644 sr-ir/sr-ir-qemu.yaml create mode 100644 sr-ir/sr-ir-ubuntu-21.04.yaml diff --git a/execs/sr-ir.yaml b/execs/sr-ir.yaml new file mode 100644 index 0000000..64d4200 --- /dev/null +++ b/execs/sr-ir.yaml @@ -0,0 +1,19 @@ +metadata: + name: SR-IR + format: "Lava-Test-Shell Test Definition 1.0" + description: "Run SystemReady-IR" + version: 1.0 + + +install: + deps: + - util-linux + - tmux + - python3 + - python3-yaml + - python3-packaging + +run: + steps: + - echo "QEMU SystemReady-IR" + - ./scripts/sr-ir.sh diff --git a/execs/ubuntu-build-essential.yaml b/execs/ubuntu-build-essential.yaml index ce1ff60..fb14ebb 100644 --- a/execs/ubuntu-build-essential.yaml +++ b/execs/ubuntu-build-essential.yaml @@ -42,3 +42,5 @@ install: - lsb-release - net-tools - tcpdump + - wget + - qemu-system-arm diff --git a/lng-generator-02/ixgbe-ubuntu-17.10.yaml b/lng-generator-02/ixgbe-ubuntu-17.10.yaml deleted file mode 100644 index cf32328..0000000 --- a/lng-generator-02/ixgbe-ubuntu-17.10.yaml +++ /dev/null @@ -1,84 +0,0 @@ -job_name: ubuntu-17.10-hacking-session-ixgbe - -timeouts: - job: - minutes: 900 - action: - minutes: 20 - connection: - minutes: 20 - -visibility: public -priority: medium -device_type: x86 - -protocols: - lava-multinode: - roles: - mdev_host: - device_type: x86 - count: 1 - context: - extra_kernel_args: default_hugepagesz=2M hugepagesz=1G hugepages=1 hugepagesz=2M hugepages=1024 intel_iommu=on iommu=on - lava-vland: - mdev_host: - vlan_one: - tags: - - 10G -actions: -- deploy: - role: - - mdev_host - timeout: - minutes: 10 - to: tftp - - kernel: - url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-17.10/vmlinuz-4.18-rc6-net-next - nfsrootfs: - url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-17.10/binary-4.13.0-46.tar.xz - compression: xz - prefix: binary/ - modules: - url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-17.10/modules.4.18-rc6-net-next.tar.xz - compression: xz - ramdisk: - url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-17.10/initrd.img-4.13.0-46-generic - compression: gz - os: debian - #protocols: - #lava-vland: - #- action: lava-vland-overlay - #request: deploy_vlans - -- boot: - role: - - mdev_host - timeout: - minutes: 15 - method: ipxe - commands: nfs - parameters: - shutdown-message: "reboot: Restarting system" - prompts: - - 'root@lng(.*)' - -- test: - role: - - mdev_host - timeout: - minutes: 900 - - definitions: - - repository: https://git.linaro.org/people/ilias.apalodimas/lava-sessions.git/ - from: git - path: execs/ubuntu-build-essential.yaml - name: ubuntu-build-essential - - - repository: https://git.linaro.org/lava-team/hacking-session.git - from: git - path: hacking-session-debian.yaml - name: hacking-server - parameters: - "IRC_USER": "apalos" - "PUB_KEY": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6q2BgQb4F3WXT89p5XoPe2J32DHKaeQAL/IHWKYFKoHnvMSVLIODBciG9CWQ+FrYO67tOlc7IaxZqhSOK2zXNID4oqIiM5O/iAlW4LXdNtSNQUR2B+528/FKt+10ZyKH0C7zV31lEWjVfv7CsNVRumOv2bwmYoQH3kCxpwyYhGkdTLdnpXGEaSLp2YDUrgDzi/+j5CH2tkJWaWXl48qXHPUuJf89nbcT52kMwHUSV/c5XHb5kVjpIpUaapgemy9HfBVi8f4T1paFU6BPymJaF43a3vIXm3byVkBi4nZDUgPFX3HL1v7jNypVbQyK1r5LO+BCPu6cyfcjXO9W0EzNV2tdmEEAHYqgBvMiHBQ5+zcvFBHztzs5xIIBA5fsYFPe2xRmUz9Ah15NcFbXlPl/QlRCoVGMC/RztMDDdbv+/mAh5Kaqas8FDRJyyebDIu/TKAajekTq6wdifjcTZbFFO/fx3UJnwt9QKArYJfcfqeRyNDQ2cdAWPBU4cwAa4dr2Txxl43N7DnT1qe3Dd9Yg0P3W03Lr7jR2JBFlGlIFhpaQSO/kAt07PTNj98P+3L/UfeVZrYR9py+WolYkgTZOvb7BJ2JfD7RwIhHpfez8m2ddoBhBbfufm1mepYBmHxD8jqzdiANu+j9a5hsQM+2MAS6GrrDVMn5e3FYa/PtKsbQ== ilias.apalodimas@linaro.org" diff --git a/scripts/build-u-boot.sh b/scripts/build-u-boot.sh new file mode 100755 index 0000000..58f6bf0 --- /dev/null +++ b/scripts/build-u-boot.sh @@ -0,0 +1,15 @@ +#!/bin/bash +. scripts/lava-common.sh + +U_BOOT_REPO='https://github.com/u-boot/u-boot.git' +CROSS_REPO='https://snapshots.linaro.org/gnu-toolchain/11.0-2021.03-1/aarch64-linux-gnu/gcc-linaro-11.0.1-2021.03-x86_64_aarch64-linux-gnu.tar.xz' + +wget "$CROSS_REPO" +tar xf gcc-linaro-11.0.1-2021.03-x86_64_aarch64-linux-gnu.tar.xz +export PATH="gcc-linaro-11.0.1-2021.03-x86_64_aarch64-linux-gnu:$PATH" + +git clone "$U_BOOT_REPO" --depth 1 && pushd u-boot && + git checkout master && make qemu_arm64_defconfig && \ + CROSS_COMPILE=../gcc-linaro-11.0.1-2021.03-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- make -j $(nproc) + + diff --git a/scripts/sr-ir.sh b/scripts/sr-ir.sh new file mode 100755 index 0000000..5cc6e73 --- /dev/null +++ b/scripts/sr-ir.sh @@ -0,0 +1,90 @@ +#!/bin/bash +. scripts/lava-common.sh + +# urls +acs_img='ir_acs_live_image.img' +acs_url='https://people.linaro.org/~ilias.apalodimas/qemu/debian/'"$acs_img" +post_url='https://archive.validation.linaro.org/artifacts/team/systemready/' + +# final log files +log_file_part='/media/acs_results/sct_results/Overall/Summary' +ekl="$log_file_part"'.ekl' +log="$log_file_part"'.log' + +wget "$acs_url" +wget https://people.linaro.org/~ilias.apalodimas/images/ubuntu-21.04/variables.img +# FIXME compile this from source +wget https://people.linaro.org/~ilias.apalodimas/qemu/debian/u-boot.bin + +# Ordering matters here keep variables.img first +tmux new-session -d -s qemu \ + "qemu-system-aarch64 \ + -bios u-boot.bin \ + -machine virt \ + -cpu cortex-a57 -m 4G \ + -nographic -no-acpi \ + -drive id=disk0,file=variables.img,if=none,format=raw \ + -device virtio-blk-device,drive=disk0 \ + -drive id=disk1,file=$acs_img,if=none,format=raw \ + -device virtio-blk-device,drive=disk1" + +echo '########################################' +echo '# Checking QEMU ACS for completion ... #' +echo '########################################' + +part=$(losetup -f -P -r --show $acs_img)'p2' +[ -z "$part" ] && lava_result 'MOUNT_LOOPBACK' 'FAILED' 'yes' + +el=0 +while true; do + sudo mount "$part" /media > /dev/null 2>&1 + # Since there's no indication in SCT, grep for a very late entry in FWTS + # logs (FWTS executes after SCT) + stop_compl=$(grep 'Other failures' /media/acs_results/fwts/FWTSResults.log 2>/dev/null) + [ -n "$stop_compl" ] && echo "Found SCT logs. Parsing..." && break + stop_qemu=$(pidof qemu-system-aarch64) + [ -z "$stop_qemu" ] && lava_result 'QEMU_PROCESS' 'FAILED' 'yes' && break + + sudo umount /media > /dev/null 2>&1 + echo "Test running for $((el/60)) minutes ..." + sleep 120 + el=$((el+120)) +done + +#git clone --depth=1 https://gitlab.arm.com/systemready/edk2-test-parser +git clone --branch vincent/master https://gitlab.arm.com/systemready/edk2-test-parser +cd edk2-test-parser +./parser.py "$ekl" \ + /media/acs_results/sct_results/Sequence/EBBR.seq \ + --filter "x['result'] in ['DROPPED', 'FAILURE', 'WARNING']" --uniq \ + --fields 'count,result,name' --print + +# Get the key +lava_test_dir="$(find /lava-* -maxdepth 0 -type d | grep -E '^/lava-[0-9]+' 2>/dev/null | sort | tail -1)" +[ -n "$lava_test_dir" ] && . $lava_test_dir/secrets + +# store files +ekl=$(curl -F "path=@$ekl" -F "token=$API_KEY" "$post_url") +log=$(curl -F "path=@$log" -F "token=$API_KEY" "$post_url") +final_dir=$(echo $ekl | awk 'BEGIN{FS=OFS="/"}NF--') +final_dir="$final_dir"'/' + +# used for prints +title='Download Logs' +url_num_char=${#final_dir} +title_num_char=${#title} + +# pretty print logs location +printc=$(printf '%*s' "$url_num_char" | tr ' ' '#') +start=$(((url_num_char-title_num_char)/2)) +echo "$printc" | awk -v start="$start" \ + -v rep="$title_num_char" \ + -v title="$title" \ + '{target=substr($0,0,rep); gsub(/#############/,title,target); \ + trail=substr($0,0,start) + print trail target trail}' +echo "$final_dir" +echo "$printc" + +sudo umount /media > /dev/null 2>&1 +sudo losetup -D > /dev/null 2>&1 diff --git a/sr-ir/sr-ir-qemu.yaml b/sr-ir/sr-ir-qemu.yaml new file mode 100644 index 0000000..0209130 --- /dev/null +++ b/sr-ir/sr-ir-qemu.yaml @@ -0,0 +1,39 @@ +device_type: qemu +job_name: QEMU SR-IR aarch64 +timeouts: + job: + minutes: 1200 + action: + minutes: 1200 + connection: + minutes: 2 +visibility: public +context: + arch: arm64 + machine: virt,gic-version=3 + cpu: cortex-a72 + guestfs_interface: virtio + netdevice: user +actions: +- deploy: + namespace: target + timeout: + minutes: 15 + to: tmpfs + images: + acs: + image_arg: -drive id=disk0,file={acs},if=none,format=raw -device virtio-blk-device,drive=disk0 + -nographic -nographic -no-acpi -m 4G -smp 2 + url: https://people.linaro.org/~ilias.apalodimas/qemu/debian/ir_acs_live_image.img + firmware: + image_arg: -bios {firmware} + url: https://people.linaro.org/~ilias.apalodimas/qemu/debian/u-boot.bin + os: oe +- boot: + namespace: target + timeout: + minutes: 1200 + method: qemu + media: tmpfs + prompts: + - '# ~' diff --git a/sr-ir/sr-ir-ubuntu-21.04.yaml b/sr-ir/sr-ir-ubuntu-21.04.yaml new file mode 100644 index 0000000..127c330 --- /dev/null +++ b/sr-ir/sr-ir-ubuntu-21.04.yaml @@ -0,0 +1,73 @@ +job_name: SR-IR x86_64 + +timeouts: + job: + minutes: 1200 + action: + minutes: 1200 + connection: + minutes: 20 + +visibility: public +priority: medium +device_type: x86 + +actions: +- deploy: + role: + - target + timeout: + minutes: 10 + to: tftp + kernel: + url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-21.04/vmlinuz-5.11.0-37-generic + nfsrootfs: + #url: https://cloud-images.ubuntu.com/hirsute/current/hirsute-server-cloudimg-amd64-root.tar.xz + url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-21.04/binary.tar.bz2 + prefix: binary/ + compression: bz2 + ramdisk: + url: http://people.linaro.org/~ilias.apalodimas/images/ubuntu-21.04/initrd.img.gz + compression: gz + os: debian + +- boot: + role: + - target + timeout: + minutes: 45 + method: ipxe + commands: nfs + parameters: + shutdown-message: "reboot: Restarting system" + auto_login: + login_prompt: 'login:' + username: linaro + password_prompt: 'Password:' + password: linaro + login_commands: + - sudo su - + prompts: + - root@(.*) + - linaro@(.*) + +- test: + role: + - target + timeout: + minutes: 1200 + + definitions: + - repository: https://git.linaro.org/people/ilias.apalodimas/lava-sessions.git/ + from: git + path: execs/ubuntu-build-essential.yaml + name: deps + + - repository: https://git.linaro.org/people/ilias.apalodimas/lava-sessions.git/ + from: git + path: execs/sr-ir.yaml + name: sr-ir + +secrets: + API_USER: ilias.apalodimas + API_KEY: 99560485eb934a96d4e18b4a20be2d84 -- cgit v1.2.3