On Tue, Oct 29, 2024 at 11:47 AM Marc Zyngier <maz@xxxxxxxxxx> wrote: > > On Tue, 29 Oct 2024 17:06:09 +0000, > Raghavendra Rao Ananta <rananta@xxxxxxxxxx> wrote: > > > > On Tue, Oct 29, 2024 at 9:27 AM Marc Zyngier <maz@xxxxxxxxxx> wrote: > > > > > > On Mon, 28 Oct 2024 23:45:33 +0000, > > > Raghavendra Rao Ananta <rananta@xxxxxxxxxx> wrote: > > > > > > > Did you have a chance to check whether this had any negative impact on > > > actual workloads? Since the entry/exit code is a bit of a hot spot, > > > I'd like to make sure we're not penalising the common case (I only > > > wrote this patch while waiting in an airport, and didn't test it at > > > all). > > > > > I ran the kvm selftests, kvm-unit-tests and booted a linux guest to > > test the change and noticed no failures. > > Any specific test you want to try out? > > My question is not about failures (I didn't expect any), but > specifically about *performance*, and whether checking the flag > without a static key can lead to any performance drop on the hot path. > > Can you please run an exit-heavy workload (such as hackbench, for > example), and report any significant delta you could measure? Oh, I see. I ran hackbench and micro-bench from kvm-unit-tests (which also causes a lot of entry/exits), on Ampere Altra with kernel at v6.12-rc1, and see no significant difference in perf. hackbench: ========= Ran on a guest with 64 vCPUs and backed by 8G of memory. The results are an average of 3 runs: Task groups | Baseline | Patch | Approx. entry/exits ----------------|------------|--------- |------------------------ 100 | 0.154 | 0.164 | 150k 250 | 0.456 | 0.458 | 500k 500 | 0.851 | 0.826 | 920k (Total tasks for each row == task groups * 40) kvm-unit-tests micro-bench ====================== The test causes ~530k entry/exits. Baseline: name total ns avg ns -------------------------------------------------------------------------------------------- hvc 20095360.0 306.0 mmio_read_user 110350040.0 1683.0 mmio_read_vgic 29572840.0 451.0 eoi 964080.0 14.0 ipi 126236640.0 1926.0 lpi 142848920.0 2179.0 timer_10ms 231040.0 902.0 Patch: name total ns avg ns -------------------------------------------------------------------------------------------- hvc 20067680.0 306.0 mmio_read_user 109513800.0 1671.0 mmio_read_vgic 29190080.0 445.0 eoi 963400.0 14.0 ipi 116481640.0 1777.0 lpi 136556000.0 2083.0 timer_10ms 234120.0 914.0 Thank you. Raghavendra