Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT on QEMU #141
Description
Hi! Thanks a lot for the project!
Recently I read a great article about "Firecracker vs QEMU" in your blog - link. Since you are using QEMU and (hopefully) you care about the QEMU performance, I have an idea of how to improve QEMU performance for your scenarios.
Some time ago, I started evaluating Profile-Guided Optimization (PGO) improvements on different projects in different domains. Current results are available here. According to the tests (not only mine), PGO can help with achieving better performance. The most interesting stuff is that there are the benchmarks for QEMU (link) and CrosVM (link) about improvements in these projects with PGO.
I can suggest the following possible steps:
- Perform the PGO benchmarks for QEMU in your scenarios.
- Add a note about improvements in Hocus's performance with PGO-optimized QEMU somewhere in the documentation. Even a few percent can be important to someone (especially if Hocus cares about performance).
- Providing an easier way (e.g. a build option) to build scripts with PGO can be useful for the end-users and maintainers since they will be able to optimize Hocus according to their own workloads. I understand that QEMU is not your project but maybe you have a way to work with the upstream - who knows... :)
If you already did some benchmarks about PGO-optimized QEMU for your platform - would be great if you could share your numbers.
Thanks in advance!