-
Notifications
You must be signed in to change notification settings - Fork 0
TCG Performance on PPC64
The following results were obtained in the following hosts
Arch | CPU |
---|---|
PPC64 | POWER9 |
x86_64 | E5-2687W |
aarch64 | Apple M1 (10 cores) |
With PPC64, aarch64, and s390x guests with 2 cores and 2G of RAM, booting Fedora Cloud Base 35-1.2.
All tests were at commit f7f40b8198ad, with QEMU configured with:
./configure --target-list=ppc64-softmmu,aarch64-softmmu,s390x-softmmu --disable-debug-tcg --disable-tsan --disable-sanitizers --enable-lto
The following command lines were used for each architecture:
Arch | QEMU Command Line |
---|---|
PPC64 | ./qemu-system-ppc64 -name Fedora-Cloud-Base-35-1.2.ppc64le -smp 2 -m 2G -vga none -nographic -serial pipe:Fedora-Cloud-Base-35-1.2.ppc64le -monitor unix:Fedora-Cloud-Base-35-1.2.ppc64le.mon,server,nowait -device virtio-net,netdev=vmnic -netdev user,id=vmnic -cdrom fedora-cloud-init.iso -cpu POWER10 -accel tcg -device virtio-scsi-pci -drive file=Fedora-Cloud-Base-35-1.2.ppc64le.temp.qcow2,if=none,format=qcow2,id=hd0 -device scsi-hd,drive=hd0 -boot c |
aarch64 | ./qemu-system-aarch64 -name Fedora-Cloud-Base-35-1.2.aarch64 -smp 2 -m 2G -vga none -nographic -serial pipe:Fedora-Cloud-Base-35-1.2.aarch64 -monitor unix:Fedora-Cloud-Base-35-1.2.aarch64.mon,server,nowait -device virtio-net,netdev=vmnic -netdev user,id=vmnic -cdrom fedora-cloud-init.iso -machine virt -cpu max -accel tcg -device virtio-scsi-pci -drive file=Fedora-Cloud-Base-35-1.2.aarch64.temp.qcow2,if=none,format=qcow2,id=hd0 -device scsi-hd,drive=hd0 -boot c -bios ./pc-bios/edk2-aarch64-code.fd |
s390x | ./qemu-system-s390x -name Fedora-Cloud-Base-35-1.2.s390x -smp 2 -m 2G -vga none -nographic -serial pipe:Fedora-Cloud-Base-35-1.2.s390x -monitor unix:Fedora-Cloud-Base-35-1.2.s390x.mon,server,nowait -device virtio-net,netdev=vmnic -netdev user,id=vmnic -cdrom fedora-cloud-init.iso -machine s390-ccw-virtio -cpu max -accel tcg -hda Fedora-Cloud-Base-35-1.2.s390x.temp.qcow2 -boot c |
A simple bash script reads the ".out" pipe until the "fedora login:" string is found and then issues a "system_powerdown" through QEMU monitor.
User, system and real time, reported by /usr/bin/time -v
.
Guest | PPC64 | x86_64 |
---|---|---|
PPC64 | 194.72 ± 7.28 | 162.75 ± 8.75 |
aarch64 | 501.89 ± 9.98 | 586.08 ± 10.55 |
s390x | 294.10 ± 21.62 | 223.71 ± 85.30 |
Guest | PPC64 | x86_64 |
---|---|---|
PPC64 | 233.98 ± 7.63 | 191.91 ± 11.55 |
aarch64 | 690.05 ± 14.60 | 846.87 ± 18.12 |
s390x | 268.96 ± 14.10 | 280.97 ± 90.82 |
Guest | PPC64 | x86_64 |
---|---|---|
PPC64 | 4.57 ± 0.27 | 3.20 ± 1.52 |
aarch64 | 11.86 ± 0.44 | 9.64 ± 6.93 |
s390x | 3.64 ± 1.23 | 4.30 ± 3.32 |
Captured with perf
at 251 Hz.
More about flame graphs: https://github.com/brendangregg/FlameGraph
Click a box to zoom the Flame Graph to this stack frame only. To search and highlight all stack frames matching a regular expression, click the search button in the upper right corner or press Ctrl-F.
The original Fedora Cloud image is modified to disable Cloud-Init, create an unlocked user account and have (bc-1.07)[https://ftp.gnu.org/gnu/bc/bc-1.07.tar.gz] sources downloaded and build dependencies installed. A bash script interacts with ".in" and ".out" pipes to login, extract, configure and build bc sources, and then shutdown the VM.
User, system and real time, reported by /usr/bin/time -v
on Linux or /usr/bin/time -l
on MacOS.
Guest | PPC64 | x86_64 | aarch64 |
---|---|---|---|
PPC64 | 429.82 ± 11.57 | 352.34 ± 8.51 | 180.78 ± 42.02 |
aarch64 | 1029.78 ± 46.01 | 1207.98 ± 80.49 | 487.50 ± 7.54 |
s390x | 589.97 ± 86.67 | 411.83 ± 41.88 | 221.86 ± 79.85 |
Guest | PPC64 | x86_64 | aarch64 |
---|---|---|---|
PPC64 | 572.19 ± 13.18 | 469.71 ± 10.46 | 217.43 ± 36.30 |
aarch64 | 1496.23 ± 103.24 | 1856.03 ± 173.53 | 683.98 ± 10.57 |
s390x | 578.65 ± 85.98 | 554.00 ± 58.31 | 196.65 ± 51.86 |
Guest | PPC64 | x86_64 | aarch64 |
---|---|---|---|
PPC64 | 9.39 ± 0.44 | 6.44 ± 2.68 | 0.99 ± 0.10 |
aarch64 | 25.00 ± 1.29 | 22.11 ± 11.44 | 3.31 ± 2.23 |
s390x | 7.31 ± 0.97 | 6.81 ± 3.10 | 1.03 ± 0.43 |
Captured with perf
at 251 Hz.
More about flame graphs: https://github.com/brendangregg/FlameGraph
Click a box to zoom the Flame Graph to this stack frame only. To search and highlight all stack frames matching a regular expression, click the search button in the upper right corner or press Ctrl-F.