From ec42e99cdb80c8bb333ae8fb4c0bdf867dae8c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Barb=C3=A1chano?= Date: Fri, 6 Dec 2024 11:48:41 +0100 Subject: [PATCH] fix(tests): bring back the AMD Genoa check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: f4f7536eae69dce49895b476b0e58fa8fc597b7d Signed-off-by: Pablo Barbáchano --- .../test_cpu_features_host_vs_guest.py | 151 +++++++++++------- 1 file changed, 89 insertions(+), 62 deletions(-) diff --git a/tests/integration_tests/functional/test_cpu_features_host_vs_guest.py b/tests/integration_tests/functional/test_cpu_features_host_vs_guest.py index 71e61262c69..ea15c224aba 100644 --- a/tests/integration_tests/functional/test_cpu_features_host_vs_guest.py +++ b/tests/integration_tests/functional/test_cpu_features_host_vs_guest.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # pylint: disable=too-many-statements +# pylint: disable=too-many-branches """ Check CPU features in the host vs the guest. @@ -70,6 +71,85 @@ "xtpr", } +AMD_HOST_ONLY_FEATS = { + "amd_ppin", + "aperfmperf", + "bpext", + "cat_l3", + "cdp_l3", + "cpb", + "cqm", + "cqm_llc", + "cqm_mbm_local", + "cqm_mbm_total", + "cqm_occup_llc", + "decodeassists", + "extapic", + "extd_apicid", + "flushbyasid", + "hw_pstate", + "ibs", + "irperf", + "lbrv", + "mba", + "monitor", + "mwaitx", + "overflow_recov", + "pausefilter", + "perfctr_llc", + "perfctr_nb", + "pfthreshold", + "rdpru", + "rdt_a", + "sev", + "sev_es", + "skinit", + "smca", + "sme", + "succor", + "svm_lock", + "tce", + "tsc_scale", + "v_vmsave_vmload", + "vgif", + "vmcb_clean", + "wdt", +} + +AMD_GUEST_ONLY_FEATS = { + "hypervisor", + "tsc_adjust", + "tsc_deadline_timer", + "tsc_known_freq", +} + +AMD_HOST_ONLY_FEATS_6_1 = AMD_HOST_ONLY_FEATS - { + "lbrv", + "pausefilter", + "pfthreshold", + "sme", + "tsc_scale", + "v_vmsave_vmload", + "vgif", + "vmcb_clean", +} | {"brs", "rapl", "v_spec_ctrl"} + +AMD_GENOA_HOST_ONLY_FEATS = AMD_HOST_ONLY_FEATS | { + "avic", + "flush_l1d", + "ibrs_enhanced", +} + +AMD_GENOA_HOST_ONLY_FEATS_6_1 = AMD_HOST_ONLY_FEATS_6_1 | { + "amd_lbr_v2", + "avic", + "cppc", + "flush_l1d", + "ibrs_enhanced", + "perfmon_v2", + "x2avic", +} - {"brs"} + def test_host_vs_guest_cpu_features(uvm_nano): """Check CPU features host vs guest""" @@ -82,73 +162,20 @@ def test_host_vs_guest_cpu_features(uvm_nano): match CPU_MODEL: case CpuModel.AMD_MILAN: - host_guest_diff_5_10 = { - "amd_ppin", - "aperfmperf", - "bpext", - "cat_l3", - "cdp_l3", - "cpb", - "cqm", - "cqm_llc", - "cqm_mbm_local", - "cqm_mbm_total", - "cqm_occup_llc", - "decodeassists", - "extapic", - "extd_apicid", - "flushbyasid", - "hw_pstate", - "ibs", - "irperf", - "lbrv", - "mba", - "monitor", - "mwaitx", - "overflow_recov", - "pausefilter", - "perfctr_llc", - "perfctr_nb", - "pfthreshold", - "rdpru", - "rdt_a", - "sev", - "sev_es", - "skinit", - "smca", - "sme", - "succor", - "svm_lock", - "tce", - "tsc_scale", - "v_vmsave_vmload", - "vgif", - "vmcb_clean", - "wdt", - } + if global_props.host_linux_version_tpl < (6, 1): + assert host_feats - guest_feats == AMD_HOST_ONLY_FEATS + else: + assert host_feats - guest_feats == AMD_HOST_ONLY_FEATS_6_1 - host_guest_diff_6_1 = host_guest_diff_5_10 - { - "lbrv", - "pausefilter", - "pfthreshold", - "sme", - "tsc_scale", - "v_vmsave_vmload", - "vgif", - "vmcb_clean", - } | {"brs", "rapl", "v_spec_ctrl"} + assert guest_feats - host_feats == AMD_GUEST_ONLY_FEATS + case CpuModel.AMD_GENOA: if global_props.host_linux_version_tpl < (6, 1): - assert host_feats - guest_feats == host_guest_diff_5_10 + assert host_feats - guest_feats == AMD_GENOA_HOST_ONLY_FEATS else: - assert host_feats - guest_feats == host_guest_diff_6_1 + assert host_feats - guest_feats == AMD_GENOA_HOST_ONLY_FEATS_6_1 - assert guest_feats - host_feats == { - "hypervisor", - "tsc_adjust", - "tsc_deadline_timer", - "tsc_known_freq", - } + assert guest_feats - host_feats == AMD_GUEST_ONLY_FEATS case CpuModel.AMD_GENOA: # Return here to allow the test to pass until CPU features to enable are confirmed