DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Huisong Li <lihuisong@huawei.com>
To: <anatoly.burakov@intel.com>, <sivaprasad.tummala@amd.com>,
	<stephen@networkplumber.org>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>, <fengchengwen@huawei.com>,
	<yangxingui@huawei.com>, <zhanjie9@hisilicon.com>,
	<lihuisong@huawei.com>
Subject: [PATCH V2 02/15] power/kvm_vm: validate lcore role in cpufreq API
Date: Thu, 7 May 2026 10:42:17 +0800	[thread overview]
Message-ID: <20260507024230.1198111-3-lihuisong@huawei.com> (raw)
In-Reply-To: <20260507024230.1198111-1-lihuisong@huawei.com>

Currently, the kvm_vm driver only checks if the lcore_id is within
the RTE_MAX_LCORE range, but fails to verify if the core is actually
active or managed by the application. This lacks sufficient validation.

This patch add a lcore role check to the cpufreq-related APIs.
Although service cores do not typically invoke these APIs, they may
operate in polling states where power management is required.
To maintain compatibility with applications using service cores, the
validation logic now explicitly allows both ROLE_RTE and ROLE_SERVICE.

Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
 drivers/power/kvm_vm/kvm_vm.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/power/kvm_vm/kvm_vm.c b/drivers/power/kvm_vm/kvm_vm.c
index 5754a441cd..133d1f0882 100644
--- a/drivers/power/kvm_vm/kvm_vm.c
+++ b/drivers/power/kvm_vm/kvm_vm.c
@@ -24,11 +24,11 @@ power_kvm_vm_check_supported(void)
 int
 power_kvm_vm_init(unsigned int lcore_id)
 {
-	if (lcore_id >= RTE_MAX_LCORE) {
-		POWER_LOG(ERR, "Core(%u) is out of range 0...%d",
-				lcore_id, RTE_MAX_LCORE-1);
+	if (!rte_lcore_is_eal_managed(lcore_id)) {
+		POWER_LOG(ERR, "lcore id %u is invalid.", lcore_id);
 		return -1;
 	}
+
 	pkt[lcore_id].command = RTE_POWER_CPU_POWER;
 	pkt[lcore_id].resource_id = lcore_id;
 	return guest_channel_host_connect(FD_PATH, lcore_id);
@@ -73,11 +73,11 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction)
 {
 	int ret;
 
-	if (lcore_id >= RTE_MAX_LCORE) {
-		POWER_LOG(ERR, "Core(%u) is out of range 0...%d",
-				lcore_id, RTE_MAX_LCORE-1);
+	if (!rte_lcore_is_eal_managed(lcore_id)) {
+		POWER_LOG(ERR, "lcore id %u is invalid.", lcore_id);
 		return -1;
 	}
+
 	pkt[lcore_id].unit = scale_direction;
 	ret = guest_channel_send_msg(&pkt[lcore_id], lcore_id);
 	if (ret == 0)
-- 
2.33.0


  parent reply	other threads:[~2026-05-07  2:42 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-16  3:05 [PATCH v1 00/15] power: unify and improve lcore ID verification Huisong Li
2026-04-16  3:05 ` [PATCH v1 01/15] power/kvm_vm: enforce enabled lcore ID check Huisong Li
2026-04-16 15:48   ` Stephen Hemminger
2026-04-17  2:51     ` lihuisong (C)
2026-04-21 11:07       ` lihuisong (C)
2026-04-21 14:23       ` Stephen Hemminger
2026-04-22  9:18         ` lihuisong (C)
2026-04-16  3:05 ` [PATCH v1 02/15] power/acpi_cpufreq: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 03/15] power/amd_pstate: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 04/15] power/cppc_cpufreq: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 05/15] power/intel_pstate: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 06/15] power: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 07/15] power: add a common macro to verify lcore ID Huisong Li
2026-04-16  3:06 ` [PATCH v1 08/15] power/pmd_mgmt: replace lcore ID verification with new macro Huisong Li
2026-04-16  3:06 ` [PATCH v1 09/15] power/qos: replace the " Huisong Li
2026-04-16  3:06 ` [PATCH v1 10/15] power/cpufreq: add the lcore ID verification to framework Huisong Li
2026-04-16  3:06 ` [PATCH v1 11/15] power/acpi_cpufreq: remove the verification of lcore ID Huisong Li
2026-04-16  3:06 ` [PATCH v1 12/15] power/amd_pstate: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 13/15] power/cppc_cpufreq: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 14/15] power/intel_pstate: " Huisong Li
2026-04-16  3:06 ` [PATCH v1 15/15] power/kvm_vm: " Huisong Li
2026-04-16 15:51 ` [PATCH v1 00/15] power: unify and improve lcore ID verification Stephen Hemminger
2026-04-17  2:53   ` lihuisong (C)
2026-05-07  2:42 ` [PATCH V2 " Huisong Li
2026-05-07  2:42   ` [PATCH V2 01/15] eal: add interface to check if lcore is EAL managed Huisong Li
2026-05-07  2:42   ` Huisong Li [this message]
2026-05-07  2:42   ` [PATCH V2 03/15] power/acpi_cpufreq: validate lcore role in cpufreq API Huisong Li
2026-05-07  2:42   ` [PATCH V2 04/15] power/amd_pstate: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 05/15] power/cppc_cpufreq: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 06/15] power/intel_pstate: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 07/15] power: add a common macro to verify lcore ID Huisong Li
2026-05-07  2:42   ` [PATCH V2 08/15] power/cpufreq: add the lcore ID verification to framework Huisong Li
2026-05-07  2:42   ` [PATCH V2 09/15] power/acpi_cpufreq: remove the verification of lcore ID Huisong Li
2026-05-07  2:42   ` [PATCH V2 10/15] power/amd_pstate: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 11/15] power/cppc_cpufreq: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 12/15] power/intel_pstate: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 13/15] power/kvm_vm: " Huisong Li
2026-05-07  2:42   ` [PATCH V2 14/15] power: allow the service core to config power QoS Huisong Li
2026-05-07  2:42   ` [PATCH V2 15/15] power: add lcore ID check for PMD mgmt Huisong Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260507024230.1198111-3-lihuisong@huawei.com \
    --to=lihuisong@huawei.com \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=fengchengwen@huawei.com \
    --cc=sivaprasad.tummala@amd.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    --cc=yangxingui@huawei.com \
    --cc=zhanjie9@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox