Re: [PATCH v2 0/6] IPI virtualization support for VM

From: Zeng Guang
Date: Fri Jul 23 2021 - 03:16:51 EST

On 7/23/2021 2:11 PM, Wanpeng Li wrote:
On Fri, 23 Jul 2021 at 13:41, Zeng Guang <guang.zeng@xxxxxxxxx> wrote:

IPI microbenchmark:

2 vCPUs, 1:1 pin vCPU to pCPU, guest VM runs with idle=poll, x2APIC mode
Improve the performance for unicast ipi is as expected, however, I
wonder whether the broadcast performance is worse than PV
IPIs/Thomas's IPI shorthands(IPI shorthands are supported by upstream
linux apic/x2apic driver). The hardware acceleration is not always
outstanding on AMD(,
how about your Intel guys? Please try a big VM at least 96 vCPUs as
below or more bigger.

Intel IPIv target to accelerate unicast ipi process, not benefit to broadcast performance.

As to IPI benchmark, it's not big different to test with large or small scale of vCPUs. In essential, Normal IPI test try
to send ipi to any other online CPU in sequence. The cost on IPI process itself should be similar.

Result with IPIv enabled:

Dry-run: 0, 272798 ns
Self-IPI: 5094123, 11114037 ns
Normal IPI: 131697087, 173321200 ns
Broadcast IPI: 0, 155649075 ns
Broadcast lock: 0, 161518031 ns

Result with IPIv disabled:

Dry-run: 0, 272766 ns
Self-IPI: 5091788, 11123699 ns
Normal IPI: 145215772, 174558920 ns
Broadcast IPI: 0, 175785384 ns
Broadcast lock: 0, 149076195 ns

As IPIv can benefit unicast IPI to other CPU, Noraml IPI test case gain
about 9.73% time saving on average out of 15 test runs when IPIv is

w/o IPIv w/ IPIv
Normal IPI: 145944306.6 ns 131742993.1 ns
%Reduction -9.73%


8 vCPUs, guest VM free run, x2APIC mode
./hackbench -p -l 100000

w/o IPIv w/ IPIv
Time: 91.887 74.605
%Reduction: -18.808%

96 vCPUs, guest VM free run, x2APIC mode
./hackbench -p -l 1000000

w/o IPIv w/ IPIv
Time: 287.504 235.185
%Reduction: -18.198%
Good to know this.