Re: [PATCH v2 00/25] Enable FRED with KVM VMX

From: Kang, Shan
Date: Wed Mar 27 2024 - 04:09:16 EST


On Wed, 2024-02-07 at 09:26 -0800, Xin Li wrote:
> This patch set enables the Intel flexible return and event delivery
> (FRED) architecture with KVM VMX to allow guests to utilize FRED.
>
We tested this FRED KVM patch set on a 7th Intel(R) Core(TM) CPU and the Intel
Simics® Simulator with the following four configurations:

The first config is the baseline on bare metal.
The second config is the baseline on Intel Simics® Simulator.
The third config enables host FRED, but disables guest FRED.
The last config enables both host and guest FRED.

Following are the Kselftest results on KVM guests.

+---------------------------------------------+-------+-------+-------+-------+
| Config | Pass | Fail | Skip | Hang |
+---------------------------------------------+-------+-------+-------+-------+
|the 7th Intel(R) Core(TM) CPU | | | | |
| L0: 6.8.0-rc3+ w/ FRED native/KVM patch set| 1775 | 526 | 332 | 6 |
| L1: 6.8.0-rc3+ | | | | |
+---------------------------------------------+-------+-------+-------+-------+
|Intel Simics® Simulator w/o FRED model | | | | |
| L0: 6.8.0-rc3+ w/ FRED native/KVM patch set| 1770 | 526 | 331 | 12 |
| L1: 6.8.0-rc3+ w/ FRED native/KVM patch set| | | | |
+---------------------------------------------+-------+-------+-------+-------+
|Intel Simics® Simulator w/ FRED model | | | | |
| L0: 6.8.0-rc3+ w/ FRED native/KVM patch set| 1770 | 526 | 331 | 12 |
| L1: 6.8.0-rc3+ w/ FRED native/KVM patch set| | | | |
| but FRED disabled | | | | |
+---------------------------------------------+-------+-------+-------+-------+
|Intel Simics® Simulator w/ FRED model | | | | |
| L0: 6.8.0-rc3+ w/ FRED native/KVM patch set| 1769 | 528 | 330 | 12 |
| L1: 6.8.0-rc3+ w/ FRED native/KVM patch set| | | | |
+---------------------------------------------+-------+-------+-------+-------+

First of all we don't see any major issue. One major differences come from
perf tests. Another variances are from timer tests due to Intel Simics®
emulator's slowness.

The tests "x86:sysret_rip_64" and "x86:sigreturn_32" fail on the last config,
because they are not valid tests for FRED:
https://lore.kernel.org/lkml/20230220030959.119222-1-ammarfaizi2@xxxxxxxxxxx/T/#u
https://lore.kernel.org/lkml/20230706052231.2183-1-xin3.li@xxxxxxxxx/

NB: Some tests pass on Intel Simics® emulator, but not bare metal. If needed,
we can share the data.

We conducted local live migration tests with LKGS/FRED/WRMSRNS enabled/disabled
on Intel Simics® Simulator, and see no problems.

We also tested KVM Kselftest on a nested FRED KVM guest, 48 out of 83 cases
passed and the rest cases failed due to the slowness of Intel Simics® emulator.

Detailed report upon request.