Originally, libkrun was designed to prioritize having a minimal footprint. With newer use cases, we need to find a balance between being small and lean and being performant. In this series, we move the heavy hitters (block, net and fs) to their own threads, which reduces the latency and prevents them from starving each other.
We also adopt EVENT_IDX to reduce the signal traffic between the guest and the host and update EDK2 to remove the boot wait, along other minor optimizations in virtio-net.
Originally, libkrun was designed to prioritize having a minimal footprint. With newer use cases, we need to find a balance between being small and lean and being performant. In this series, we move the heavy hitters (block, net and fs) to their own threads, which reduces the latency and prevents them from starving each other.
We also adopt EVENT_IDX to reduce the signal traffic between the guest and the host and update EDK2 to remove the boot wait, along other minor optimizations in virtio-net.