Skip to content

Commit 658b1a3

Browse files
author
CKI KWF Bot
committed
Merge: Update drivers/powercap/intel* to match upstream 6.17
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/7345 JIRA: https://issues.redhat.com/browse/RHEL-111365 Intel RAPL is used on a number of platforms. Update it accordingly. Signed-off-by: David Arcari <darcari@redhat.com> Approved-by: Tony Camuso <tcamuso@redhat.com> Approved-by: Steve Best <sbest@redhat.com> Approved-by: Lenny Szubowicz <lszubowi@redhat.com> Approved-by: Mark Langsdorf <mlangsdo@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: CKI GitLab Kmaint Pipeline Bot <26919896-cki-kmaint-pipeline-bot@users.noreply.gitlab.com>
2 parents f9c7c46 + 8917314 commit 658b1a3

File tree

5 files changed

+23
-8
lines changed

5 files changed

+23
-8
lines changed

drivers/powercap/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ config DTPM
6969

7070
config DTPM_CPU
7171
bool "Add CPU power capping based on the energy model"
72-
depends on DTPM && ENERGY_MODEL
72+
depends on DTPM && ENERGY_MODEL && SMP
7373
help
7474
This enables support for CPU power limitation based on
7575
energy model.

drivers/powercap/idle_inject.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,7 @@ struct idle_inject_device *idle_inject_register_full(struct cpumask *cpumask,
339339
return NULL;
340340

341341
cpumask_copy(to_cpumask(ii_dev->cpumask), cpumask);
342-
hrtimer_init(&ii_dev->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
343-
ii_dev->timer.function = idle_inject_timer_fn;
342+
hrtimer_setup(&ii_dev->timer, idle_inject_timer_fn, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
344343
ii_dev->latency_us = UINT_MAX;
345344
ii_dev->update = update;
346345

drivers/powercap/intel_rapl_common.c

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,28 @@ static int set_domain_enable(struct powercap_zone *power_zone, bool mode)
340340
{
341341
struct rapl_domain *rd = power_zone_to_rapl_domain(power_zone);
342342
struct rapl_defaults *defaults = get_defaults(rd->rp);
343+
u64 val;
343344
int ret;
344345

345346
cpus_read_lock();
346347
ret = rapl_write_pl_data(rd, POWER_LIMIT1, PL_ENABLE, mode);
347-
if (!ret && defaults->set_floor_freq)
348+
if (ret)
349+
goto end;
350+
351+
ret = rapl_read_pl_data(rd, POWER_LIMIT1, PL_ENABLE, false, &val);
352+
if (ret)
353+
goto end;
354+
355+
if (mode != val) {
356+
pr_debug("%s cannot be %s\n", power_zone->name,
357+
str_enabled_disabled(mode));
358+
goto end;
359+
}
360+
361+
if (defaults->set_floor_freq)
348362
defaults->set_floor_freq(rd, mode);
363+
364+
end:
349365
cpus_read_unlock();
350366

351367
return ret;
@@ -1260,6 +1276,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = {
12601276
X86_MATCH_VFM(INTEL_RAPTORLAKE, &rapl_defaults_core),
12611277
X86_MATCH_VFM(INTEL_RAPTORLAKE_P, &rapl_defaults_core),
12621278
X86_MATCH_VFM(INTEL_RAPTORLAKE_S, &rapl_defaults_core),
1279+
X86_MATCH_VFM(INTEL_BARTLETTLAKE, &rapl_defaults_core),
12631280
X86_MATCH_VFM(INTEL_METEORLAKE, &rapl_defaults_core),
12641281
X86_MATCH_VFM(INTEL_METEORLAKE_L, &rapl_defaults_core),
12651282
X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, &rapl_defaults_spr_server),
@@ -2064,8 +2081,7 @@ int rapl_package_add_pmu(struct rapl_package *rp)
20642081
raw_spin_lock_init(&data->lock);
20652082
INIT_LIST_HEAD(&data->active_list);
20662083
data->timer_interval = ms_to_ktime(rapl_pmu.timer_ms);
2067-
hrtimer_init(&data->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
2068-
data->hrtimer.function = rapl_hrtimer_handle;
2084+
hrtimer_setup(&data->hrtimer, rapl_hrtimer_handle, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
20692085

20702086
return rapl_pmu_update(rp);
20712087
}

drivers/powercap/intel_rapl_msr.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ static const struct x86_cpu_id pl4_support_ids[] = {
149149
X86_MATCH_VFM(INTEL_METEORLAKE_L, NULL),
150150
X86_MATCH_VFM(INTEL_ARROWLAKE_U, NULL),
151151
X86_MATCH_VFM(INTEL_ARROWLAKE_H, NULL),
152+
X86_MATCH_VFM(INTEL_PANTHERLAKE_L, NULL),
152153
{}
153154
};
154155

kernel/power/Kconfig

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ config CPU_PM
319319

320320
config ENERGY_MODEL
321321
bool "Energy Model for devices with DVFS (CPUs, GPUs, etc)"
322-
depends on SMP
323-
depends on CPU_FREQ
322+
depends on CPU_FREQ || PM_DEVFREQ
324323
help
325324
Several subsystems (thermal and/or the task scheduler for example)
326325
can leverage information about the energy consumed by devices to

0 commit comments

Comments
 (0)