Skip to content
This repository was archived by the owner on Sep 28, 2024. It is now read-only.
This repository was archived by the owner on Sep 28, 2024. It is now read-only.

Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT on QEMU #141

Description

@zamazan4ik

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!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions