From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id ECCCD4566A; Sun, 21 Jul 2024 04:18:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7C9AE4014F; Sun, 21 Jul 2024 04:18:18 +0200 (CEST) Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by mails.dpdk.org (Postfix) with ESMTP id 8895340041 for ; Sun, 21 Jul 2024 04:18:17 +0200 (CEST) Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-6bce380eb9bso2027659a12.0 for ; Sat, 20 Jul 2024 19:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1721528296; x=1722133096; darn=dpdk.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=9pnwdDZK+36kK6LvgHuWqmNcySuBf38Os4/I+ZzxUak=; b=jHHtyunji6RJi15YOGU0V3Onsw5hlEcc0xPBjZ62l2PSBIOq1RdhyIYdDjMqsAmJGw j+VqQIEX6T1Dyhe772d9MG/ETTkLvabA/Dwdt4iZEjOuIW6s1NOFm+IKyFptAmm1R092 IcFl4Q5yFxdt6VbvtP/7cviPiT6d/vVypD+Y3L3CqJsZVOBFiORSE8YS4QbYSKeBOIsm p67/hC9szCvlSCMv3NZ92Suupk271LGidi6008FCgv6KIkGj4y/T3MnWHkVjD4xDTf77 i1ibsZTeBf8ymQIfSyspA4ZEhbxiU1VkGlmp/q7UQp9ri9Ftew9ed/1Wd9jeRoHRIiPA +dCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721528296; x=1722133096; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9pnwdDZK+36kK6LvgHuWqmNcySuBf38Os4/I+ZzxUak=; b=YPNHp95BljWQbIgDKTpl/k4Xx7UJ0ydP16PiXMNa5yTBwRiYsIvpdkL8izAHYD/ELI nlBXzUwKljcTWlSI83rY8DVpb5QSWoPiUQlGM26rjPI24hQObWXnmYcWJLUiShQza7Sq 1fSfp+m6YvAimPgnejtElJ7bccmihldelVV1WSSRRuzhG44q4OYzjp5XHb0HApv3ccDw TV8kPL5WxC7Yp2aNGvDAIFxqhEqRAEL53G+WDNDOrHezKfGNAOolBZOXadYmZ4ow5ggf YuaVVRCoCh8xrKC7wFnXoWmt8dvZGaDBFBrHx1vQ0ET5ZIuSfDK4k3Vm8EJT10q2uxv5 GHXA== X-Gm-Message-State: AOJu0YzNxSzaQF5CuiMb/8OfykGFmdtl8qvBiTQb5E5o4B4CYp7xaRCL 1G/93jqQpwMiKveUQB5EJrs4QqBE7wI1y7mtxsN/EeuuWST0loasxDM2KFMtfsU85sXJLn//ju0 EZaA= X-Google-Smtp-Source: AGHT+IEkEftJAS5tPvRcNuFb+UkwXY5jsF9j6PZbMZVRqOTjigTKdm4Ot9ayrarFC5PME7BJvX+2kw== X-Received: by 2002:a05:6a20:2590:b0:1c3:b102:bfd2 with SMTP id adf61e73a8af0-1c42288bb61mr6307628637.14.1721528296488; Sat, 20 Jul 2024 19:18:16 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2cb76a470d4sm1928955a91.0.2024.07.20.19.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jul 2024 19:18:16 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Anatoly Burakov , David Hunt , Sivaprasad Tummala , Tadhg Kearney Subject: [PATCH] power: fix number of uncore freqs Date: Sat, 20 Jul 2024 19:18:06 -0700 Message-ID: <20240721021806.67465-1-stephen@networkplumber.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The number of uncore frequencies was defined in three places, and two of them were too small leading to test failures. All places should be using RTE_MAX_UNCORE_FREQS. Bugzilla ID: 1499 Fixes: 60b8a661a957 ("power: add Intel uncore frequency control") Signed-off-by: Stephen Hemminger --- app/test/test_power_intel_uncore.c | 4 +-- lib/power/power_intel_uncore.c | 55 ++++++++++++++++-------------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/app/test/test_power_intel_uncore.c b/app/test/test_power_intel_uncore.c index 80b45ce46e..049658627d 100644 --- a/app/test/test_power_intel_uncore.c +++ b/app/test/test_power_intel_uncore.c @@ -17,14 +17,12 @@ test_power_intel_uncore(void) #include #include -#define MAX_UNCORE_FREQS 32 - #define VALID_PKG 0 #define VALID_DIE 0 #define INVALID_PKG (rte_power_uncore_get_num_pkgs() + 1) #define INVALID_DIE (rte_power_uncore_get_num_dies(VALID_PKG) + 1) #define VALID_INDEX 1 -#define INVALID_INDEX (MAX_UNCORE_FREQS + 1) +#define INVALID_INDEX (RTE_MAX_UNCORE_FREQS + 1) static int check_power_uncore_init(void) { diff --git a/lib/power/power_intel_uncore.c b/lib/power/power_intel_uncore.c index 9c152e4ed2..c6b22b5ffb 100644 --- a/lib/power/power_intel_uncore.c +++ b/lib/power/power_intel_uncore.c @@ -11,7 +11,6 @@ #include "power_intel_uncore.h" #include "power_common.h" -#define MAX_UNCORE_FREQS 32 #define MAX_NUMA_DIE 8 #define BUS_FREQ 100000 #define FILTER_LENGTH 18 @@ -32,7 +31,7 @@ struct __rte_cache_aligned uncore_power_info { unsigned int die; /* Core die id */ unsigned int pkg; /* Package id */ - uint32_t freqs[MAX_UNCORE_FREQS]; /* Frequency array */ + uint32_t freqs[RTE_MAX_UNCORE_FREQS]; /* Frequency array */ uint32_t nb_freqs; /* Number of available freqs */ FILE *f_cur_min; /* FD of scaling_min */ FILE *f_cur_max; /* FD of scaling_max */ @@ -51,9 +50,10 @@ set_uncore_freq_internal(struct uncore_power_info *ui, uint32_t idx) uint32_t target_uncore_freq, curr_max_freq; int ret; - if (idx >= MAX_UNCORE_FREQS || idx >= ui->nb_freqs) { - POWER_LOG(DEBUG, "Invalid uncore frequency index %u, which " - "should be less than %u", idx, ui->nb_freqs); + if (idx >= ui->nb_freqs) { + POWER_LOG(ERR, + "Invalid uncore frequency index %u, which should be less than %u", + idx, ui->nb_freqs); return -1; } @@ -71,7 +71,7 @@ set_uncore_freq_internal(struct uncore_power_info *ui, uint32_t idx) } ret = read_core_sysfs_u32(ui->f_cur_max, &curr_max_freq); if (ret < 0) { - POWER_LOG(DEBUG, "Failed to read %s", + POWER_LOG(ERR, "Failed to read %s", POWER_INTEL_UNCORE_SYSFILE_MAX_FREQ); fclose(ui->f_cur_max); return -1; @@ -79,14 +79,15 @@ set_uncore_freq_internal(struct uncore_power_info *ui, uint32_t idx) /* check this value first before fprintf value to f_cur_max, so value isn't overwritten */ if (fprintf(ui->f_cur_min, "%u", target_uncore_freq) < 0) { - POWER_LOG(ERR, "Fail to write new uncore frequency for " - "pkg %02u die %02u", ui->pkg, ui->die); + POWER_LOG(ERR, "Fail to write new uncore frequency for pkg %02u die %02u", + ui->pkg, ui->die); return -1; } if (fprintf(ui->f_cur_max, "%u", target_uncore_freq) < 0) { - POWER_LOG(ERR, "Fail to write new uncore frequency for " - "pkg %02u die %02u", ui->pkg, ui->die); + POWER_LOG(ERR, + "Fail to write new uncore frequency for pkg %02u die %02u", + ui->pkg, ui->die); return -1; } @@ -121,13 +122,13 @@ power_init_for_setting_uncore_freq(struct uncore_power_info *ui) open_core_sysfs_file(&f_base_max, "r", POWER_INTEL_UNCORE_SYSFILE_BASE_MAX_FREQ, ui->pkg, ui->die); if (f_base_max == NULL) { - POWER_LOG(DEBUG, "failed to open %s", + POWER_LOG(ERR, "failed to open %s", POWER_INTEL_UNCORE_SYSFILE_BASE_MAX_FREQ); goto err; } ret = read_core_sysfs_u32(f_base_max, &base_max_freq); if (ret < 0) { - POWER_LOG(DEBUG, "Failed to read %s", + POWER_LOG(ERR, "Failed to read %s", POWER_INTEL_UNCORE_SYSFILE_BASE_MAX_FREQ); goto err; } @@ -136,14 +137,14 @@ power_init_for_setting_uncore_freq(struct uncore_power_info *ui) open_core_sysfs_file(&f_base_min, "r", POWER_INTEL_UNCORE_SYSFILE_BASE_MIN_FREQ, ui->pkg, ui->die); if (f_base_min == NULL) { - POWER_LOG(DEBUG, "failed to open %s", + POWER_LOG(ERR, "failed to open %s", POWER_INTEL_UNCORE_SYSFILE_BASE_MIN_FREQ); goto err; } if (f_base_min != NULL) { ret = read_core_sysfs_u32(f_base_min, &base_min_freq); if (ret < 0) { - POWER_LOG(DEBUG, "Failed to read %s", + POWER_LOG(ERR, "Failed to read %s", POWER_INTEL_UNCORE_SYSFILE_BASE_MIN_FREQ); goto err; } @@ -153,14 +154,14 @@ power_init_for_setting_uncore_freq(struct uncore_power_info *ui) open_core_sysfs_file(&f_min, "rw+", POWER_INTEL_UNCORE_SYSFILE_MIN_FREQ, ui->pkg, ui->die); if (f_min == NULL) { - POWER_LOG(DEBUG, "failed to open %s", + POWER_LOG(ERR, "failed to open %s", POWER_INTEL_UNCORE_SYSFILE_MIN_FREQ); goto err; } if (f_min != NULL) { ret = read_core_sysfs_u32(f_min, &min_freq); if (ret < 0) { - POWER_LOG(DEBUG, "Failed to read %s", + POWER_LOG(ERR, "Failed to read %s", POWER_INTEL_UNCORE_SYSFILE_MIN_FREQ); goto err; } @@ -170,14 +171,14 @@ power_init_for_setting_uncore_freq(struct uncore_power_info *ui) open_core_sysfs_file(&f_max, "rw+", POWER_INTEL_UNCORE_SYSFILE_MAX_FREQ, ui->pkg, ui->die); if (f_max == NULL) { - POWER_LOG(DEBUG, "failed to open %s", + POWER_LOG(ERR, "failed to open %s", POWER_INTEL_UNCORE_SYSFILE_MAX_FREQ); goto err; } if (f_max != NULL) { ret = read_core_sysfs_u32(f_max, &max_freq); if (ret < 0) { - POWER_LOG(DEBUG, "Failed to read %s", + POWER_LOG(ERR, "Failed to read %s", POWER_INTEL_UNCORE_SYSFILE_MAX_FREQ); goto err; } @@ -221,7 +222,7 @@ power_get_available_uncore_freqs(struct uncore_power_info *ui) uint32_t i, num_uncore_freqs = 0; num_uncore_freqs = (ui->init_max_freq - ui->init_min_freq) / BUS_FREQ + 1; - if (num_uncore_freqs >= MAX_UNCORE_FREQS) { + if (num_uncore_freqs >= RTE_MAX_UNCORE_FREQS) { POWER_LOG(ERR, "Too many available uncore frequencies: %d", num_uncore_freqs); goto out; @@ -250,7 +251,7 @@ check_pkg_die_values(unsigned int pkg, unsigned int die) if (max_pkgs == 0) return -1; if (pkg >= max_pkgs) { - POWER_LOG(DEBUG, "Package number %02u can not exceed %u", + POWER_LOG(ERR, "Package number %02u can not exceed %u", pkg, max_pkgs); return -1; } @@ -259,7 +260,7 @@ check_pkg_die_values(unsigned int pkg, unsigned int die) if (max_dies == 0) return -1; if (die >= max_dies) { - POWER_LOG(DEBUG, "Die number %02u can not exceed %u", + POWER_LOG(ERR, "Die number %02u can not exceed %u", die, max_dies); return -1; } @@ -282,15 +283,17 @@ power_intel_uncore_init(unsigned int pkg, unsigned int die) /* Init for setting uncore die frequency */ if (power_init_for_setting_uncore_freq(ui) < 0) { - POWER_LOG(DEBUG, "Cannot init for setting uncore frequency for " - "pkg %02u die %02u", pkg, die); + POWER_LOG(ERR, + "Cannot init for setting uncore frequency for pkg %02u die %02u", + pkg, die); return -1; } /* Get the available frequencies */ if (power_get_available_uncore_freqs(ui) < 0) { - POWER_LOG(DEBUG, "Cannot get available uncore frequencies of " - "pkg %02u die %02u", pkg, die); + POWER_LOG(ERR, + "Cannot get available uncore frequencies of pkg %02u die %02u", + pkg, die); return -1; } @@ -451,7 +454,7 @@ power_intel_uncore_get_num_dies(unsigned int pkg) if (max_pkgs == 0) return 0; if (pkg >= max_pkgs) { - POWER_LOG(DEBUG, "Invalid package number"); + POWER_LOG(ERR, "Invalid package number"); return 0; } -- 2.43.0