[PATCH v7 11/12] platform/x86/amd: hfi: Set ITMT priority from ranking data

From: Mario Limonciello
Date: Sat Nov 30 2024 - 09:12:26 EST


The static ranking data that is read at module load should be used
to set up the priorities for the cores relative to the performance
values.

Reviewed-by: Gautham R. Shenoy <gautham.shenoy@xxxxxxx>
Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
---
drivers/platform/x86/amd/hfi/Kconfig | 1 +
drivers/platform/x86/amd/hfi/hfi.c | 10 ++++++++++
2 files changed, 11 insertions(+)

diff --git a/drivers/platform/x86/amd/hfi/Kconfig b/drivers/platform/x86/amd/hfi/Kconfig
index 532939eb08a6a..045f598f4866c 100644
--- a/drivers/platform/x86/amd/hfi/Kconfig
+++ b/drivers/platform/x86/amd/hfi/Kconfig
@@ -7,6 +7,7 @@ config AMD_HFI
bool "AMD Hetero Core Hardware Feedback Driver"
depends on ACPI
depends on CPU_SUP_AMD
+ depends on SCHED_MC_PRIO
help
Select this option to enable the AMD Heterogeneous Core Hardware
Feedback Interface. If selected, hardware provides runtime thread
diff --git a/drivers/platform/x86/amd/hfi/hfi.c b/drivers/platform/x86/amd/hfi/hfi.c
index 80ccc50ee0914..0940950dd7adc 100644
--- a/drivers/platform/x86/amd/hfi/hfi.c
+++ b/drivers/platform/x86/amd/hfi/hfi.c
@@ -115,6 +115,12 @@ static DEFINE_PER_CPU(struct amd_hfi_cpuinfo, amd_hfi_cpuinfo) = {.class_index =

static DEFINE_MUTEX(hfi_cpuinfo_lock);

+static void amd_hfi_sched_itmt_work(struct work_struct *work)
+{
+ sched_set_itmt_support();
+}
+static DECLARE_WORK(sched_amd_hfi_itmt_work, amd_hfi_sched_itmt_work);
+
static int find_cpu_index_by_apicid(unsigned int target_apicid)
{
int cpu_index;
@@ -234,6 +240,8 @@ static int amd_set_hfi_ipcc_score(struct amd_hfi_cpuinfo *hfi_cpuinfo, int cpu)
WRITE_ONCE(hfi_cpuinfo->ipcc_scores[i],
hfi_cpuinfo->amd_hfi_classes[i].perf);

+ sched_set_itmt_core_prio(hfi_cpuinfo->ipcc_scores[0], cpu);
+
return 0;
}

@@ -453,6 +461,8 @@ static int amd_hfi_probe(struct platform_device *pdev)
if (ret < 0)
return ret;

+ schedule_work(&sched_amd_hfi_itmt_work);
+
return 0;
}

--
2.43.0