release 6.11.7
This commit is contained in:
parent
a84cf6e84b
commit
02e7703ba0
8
debian/bin/refine-configs
vendored
8
debian/bin/refine-configs
vendored
@ -1,6 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -ef
|
set -ef
|
||||||
|
|
||||||
|
export PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1
|
||||||
|
|
||||||
prj_dir=$(readlink -f "$(dirname "$0")/../..")
|
prj_dir=$(readlink -f "$(dirname "$0")/../..")
|
||||||
cd "${prj_dir}"
|
cd "${prj_dir}"
|
||||||
|
|
||||||
@ -20,8 +22,6 @@ src_dir=$2
|
|||||||
[ -d "${src_dir}" ]
|
[ -d "${src_dir}" ]
|
||||||
src_dir=$(readlink -f "${src_dir}")
|
src_dir=$(readlink -f "${src_dir}")
|
||||||
|
|
||||||
export PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1
|
|
||||||
|
|
||||||
nproc=$(nproc || printf 2)
|
nproc=$(nproc || printf 2)
|
||||||
case "${nproc}" in
|
case "${nproc}" in
|
||||||
[0-1] ) nproc=2 ;;
|
[0-1] ) nproc=2 ;;
|
||||||
@ -48,8 +48,8 @@ for c in ${configs} ; do
|
|||||||
cp -f "${src_dir}/.config" "$f"
|
cp -f "${src_dir}/.config" "$f"
|
||||||
done
|
done
|
||||||
|
|
||||||
## remove BUILD_SALT
|
## remove build-generated options
|
||||||
find debian/build/ -name 'config.*' -type f -exec sed -i -E '/CONFIG_BUILD_SALT/d' {} +
|
find debian/build/ -name 'config.*' -type f -exec sed -i -E '/CONFIG_(BUILD_SALT|(BINDGEN|CC|RUSTC)_VERSION_TEXT|(CLANG|GCC|LD|LLD|PAHOLE)_VERSION)/d' {} +
|
||||||
|
|
||||||
## prepare configs for splitting
|
## prepare configs for splitting
|
||||||
find debian/build/ -name 'config.*' -type f -exec sed -i -En '/CONFIG_/p' {} +
|
find debian/build/ -name 'config.*' -type f -exec sed -i -En '/CONFIG_/p' {} +
|
||||||
|
7
debian/changelog
vendored
7
debian/changelog
vendored
@ -1,3 +1,10 @@
|
|||||||
|
linux (6.11.7-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.7
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 08 Nov 2024 22:31:17 +0300
|
||||||
|
|
||||||
linux (6.11.6-1) sid; urgency=medium
|
linux (6.11.6-1) sid; urgency=medium
|
||||||
|
|
||||||
* New upstream stable update:
|
* New upstream stable update:
|
||||||
|
6
debian/config/config
vendored
6
debian/config/config
vendored
@ -3464,10 +3464,8 @@ CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
|||||||
CONFIG_CC_IS_GCC=y
|
CONFIG_CC_IS_GCC=y
|
||||||
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
|
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
|
||||||
CONFIG_CC_VERSION_TEXT="gcc (Debian 14.2.0-7) 14.2.0"
|
|
||||||
CONFIG_CDROM=m
|
CONFIG_CDROM=m
|
||||||
CONFIG_CGROUP_WRITEBACK=y
|
CONFIG_CGROUP_WRITEBACK=y
|
||||||
CONFIG_CLANG_VERSION=0
|
|
||||||
CONFIG_CLKBLD_I8253=y
|
CONFIG_CLKBLD_I8253=y
|
||||||
CONFIG_CLKEVT_I8253=y
|
CONFIG_CLKEVT_I8253=y
|
||||||
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
|
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
|
||||||
@ -3630,7 +3628,6 @@ CONFIG_FW_LOADER_PAGED_BUF=y
|
|||||||
CONFIG_FW_LOADER_SYSFS=y
|
CONFIG_FW_LOADER_SYSFS=y
|
||||||
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
|
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
|
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
|
||||||
CONFIG_GCC_VERSION=140200
|
|
||||||
CONFIG_GENERIC_ALLOCATOR=y
|
CONFIG_GENERIC_ALLOCATOR=y
|
||||||
CONFIG_GENERIC_BUG=y
|
CONFIG_GENERIC_BUG=y
|
||||||
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
||||||
@ -3906,10 +3903,8 @@ CONFIG_KVM_XFER_TO_GUEST_WORK=y
|
|||||||
CONFIG_LD_IS_BFD=y
|
CONFIG_LD_IS_BFD=y
|
||||||
CONFIG_LD_ORPHAN_WARN=y
|
CONFIG_LD_ORPHAN_WARN=y
|
||||||
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
|
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
|
||||||
CONFIG_LD_VERSION=24301
|
|
||||||
CONFIG_LEGACY_DIRECT_IO=y
|
CONFIG_LEGACY_DIRECT_IO=y
|
||||||
CONFIG_LLC=m
|
CONFIG_LLC=m
|
||||||
CONFIG_LLD_VERSION=0
|
|
||||||
CONFIG_LOCKD=m
|
CONFIG_LOCKD=m
|
||||||
CONFIG_LOCKDEP_SUPPORT=y
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
CONFIG_LOCKD_V4=y
|
CONFIG_LOCKD_V4=y
|
||||||
@ -4021,7 +4016,6 @@ CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
|||||||
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
||||||
CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
|
CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
|
||||||
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
|
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
|
||||||
CONFIG_PAHOLE_VERSION=127
|
|
||||||
CONFIG_PANIC_ON_OOPS_VALUE=0
|
CONFIG_PANIC_ON_OOPS_VALUE=0
|
||||||
CONFIG_PCIE_PME=y
|
CONFIG_PCIE_PME=y
|
||||||
CONFIG_PCI_ATS=y
|
CONFIG_PCI_ATS=y
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
|
|||||||
|
|
||||||
--- a/kernel/fork.c
|
--- a/kernel/fork.c
|
||||||
+++ b/kernel/fork.c
|
+++ b/kernel/fork.c
|
||||||
@@ -118,6 +118,12 @@
|
@@ -119,6 +119,12 @@
|
||||||
|
|
||||||
#include <kunit/visibility.h>
|
#include <kunit/visibility.h>
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
|
|||||||
/*
|
/*
|
||||||
* Minimum number of threads to boot the kernel
|
* Minimum number of threads to boot the kernel
|
||||||
*/
|
*/
|
||||||
@@ -2135,6 +2141,10 @@ __latent_entropy struct task_struct *cop
|
@@ -2136,6 +2142,10 @@ __latent_entropy struct task_struct *cop
|
||||||
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
|
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
|
|||||||
/*
|
/*
|
||||||
* Thread groups must share signals as well, and detached threads
|
* Thread groups must share signals as well, and detached threads
|
||||||
* can only be started up within the thread group.
|
* can only be started up within the thread group.
|
||||||
@@ -3283,6 +3293,12 @@ int ksys_unshare(unsigned long unshare_f
|
@@ -3285,6 +3295,12 @@ int ksys_unshare(unsigned long unshare_f
|
||||||
if (unshare_flags & CLONE_NEWNS)
|
if (unshare_flags & CLONE_NEWNS)
|
||||||
unshare_flags |= CLONE_FS;
|
unshare_flags |= CLONE_FS;
|
||||||
|
|
||||||
|
@ -0,0 +1,183 @@
|
|||||||
|
From 27b069b518f77fffc337286a2fad8a6305daa60f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mario Limonciello <mario.limonciello@amd.com>
|
||||||
|
Date: Mon, 4 Nov 2024 16:28:55 -0600
|
||||||
|
Subject: ACPI: processor: Move arch_init_invariance_cppc() call later
|
||||||
|
|
||||||
|
arch_init_invariance_cppc() is called at the end of
|
||||||
|
acpi_cppc_processor_probe() in order to configure frequency invariance
|
||||||
|
based upon the values from _CPC.
|
||||||
|
|
||||||
|
This however doesn't work on AMD CPPC shared memory designs that have
|
||||||
|
AMD preferred cores enabled because _CPC needs to be analyzed from all
|
||||||
|
cores to judge if preferred cores are enabled.
|
||||||
|
|
||||||
|
This issue manifests to users as a warning since commit 21fb59ab4b97
|
||||||
|
("ACPI: CPPC: Adjust debug messages in amd_set_max_freq_ratio() to warn"):
|
||||||
|
```
|
||||||
|
Could not retrieve highest performance (-19)
|
||||||
|
```
|
||||||
|
|
||||||
|
However the warning isn't the cause of this, it was actually
|
||||||
|
commit 279f838a61f9 ("x86/amd: Detect preferred cores in
|
||||||
|
amd_get_boost_ratio_numerator()") which exposed the issue.
|
||||||
|
|
||||||
|
To fix this problem, change arch_init_invariance_cppc() into a new weak
|
||||||
|
symbol that is called at the end of acpi_processor_driver_init().
|
||||||
|
Each architecture that supports it can declare the symbol to override
|
||||||
|
the weak one.
|
||||||
|
|
||||||
|
Fixes: 279f838a61f9 ("x86/amd: Detect preferred cores in amd_get_boost_ratio_numerator()")
|
||||||
|
Reported-by: Ivan Shapovalov <intelfx@intelfx.name>
|
||||||
|
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219431
|
||||||
|
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
|
||||||
|
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
||||||
|
---
|
||||||
|
arch/arm64/include/asm/topology.h | 4 ----
|
||||||
|
arch/x86/include/asm/topology.h | 5 -----
|
||||||
|
arch/x86/kernel/acpi/cppc.c | 7 ++++++-
|
||||||
|
drivers/acpi/cppc_acpi.c | 6 ------
|
||||||
|
drivers/acpi/processor_driver.c | 9 +++++++++
|
||||||
|
drivers/base/arch_topology.c | 6 +++++-
|
||||||
|
include/acpi/processor.h | 2 ++
|
||||||
|
include/linux/arch_topology.h | 4 ----
|
||||||
|
8 files changed, 22 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/arm64/include/asm/topology.h
|
||||||
|
+++ b/arch/arm64/include/asm/topology.h
|
||||||
|
@@ -25,10 +25,6 @@ void update_freq_counters_refs(void);
|
||||||
|
#define arch_scale_freq_invariant topology_scale_freq_invariant
|
||||||
|
#define arch_scale_freq_ref topology_get_freq_ref
|
||||||
|
|
||||||
|
-#ifdef CONFIG_ACPI_CPPC_LIB
|
||||||
|
-#define arch_init_invariance_cppc topology_init_cpu_capacity_cppc
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
/* Replace task scheduler's default cpu-invariant accounting */
|
||||||
|
#define arch_scale_cpu_capacity topology_get_cpu_scale
|
||||||
|
|
||||||
|
--- a/arch/x86/include/asm/topology.h
|
||||||
|
+++ b/arch/x86/include/asm/topology.h
|
||||||
|
@@ -292,9 +292,4 @@ static inline void freq_invariance_set_p
|
||||||
|
extern void arch_scale_freq_tick(void);
|
||||||
|
#define arch_scale_freq_tick arch_scale_freq_tick
|
||||||
|
|
||||||
|
-#ifdef CONFIG_ACPI_CPPC_LIB
|
||||||
|
-void init_freq_invariance_cppc(void);
|
||||||
|
-#define arch_init_invariance_cppc init_freq_invariance_cppc
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#endif /* _ASM_X86_TOPOLOGY_H */
|
||||||
|
--- a/arch/x86/kernel/acpi/cppc.c
|
||||||
|
+++ b/arch/x86/kernel/acpi/cppc.c
|
||||||
|
@@ -110,7 +110,7 @@ static void amd_set_max_freq_ratio(void)
|
||||||
|
|
||||||
|
static DEFINE_MUTEX(freq_invariance_lock);
|
||||||
|
|
||||||
|
-void init_freq_invariance_cppc(void)
|
||||||
|
+static inline void init_freq_invariance_cppc(void)
|
||||||
|
{
|
||||||
|
static bool init_done;
|
||||||
|
|
||||||
|
@@ -127,6 +127,11 @@ void init_freq_invariance_cppc(void)
|
||||||
|
mutex_unlock(&freq_invariance_lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void acpi_processor_init_invariance_cppc(void)
|
||||||
|
+{
|
||||||
|
+ init_freq_invariance_cppc();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Get the highest performance register value.
|
||||||
|
* @cpu: CPU from which to get highest performance.
|
||||||
|
--- a/drivers/acpi/cppc_acpi.c
|
||||||
|
+++ b/drivers/acpi/cppc_acpi.c
|
||||||
|
@@ -671,10 +671,6 @@ static int pcc_data_alloc(int pcc_ss_id)
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#ifndef arch_init_invariance_cppc
|
||||||
|
-static inline void arch_init_invariance_cppc(void) { }
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
/**
|
||||||
|
* acpi_cppc_processor_probe - Search for per CPU _CPC objects.
|
||||||
|
* @pr: Ptr to acpi_processor containing this CPU's logical ID.
|
||||||
|
@@ -905,8 +901,6 @@ int acpi_cppc_processor_probe(struct acp
|
||||||
|
goto out_free;
|
||||||
|
}
|
||||||
|
|
||||||
|
- arch_init_invariance_cppc();
|
||||||
|
-
|
||||||
|
kfree(output.pointer);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
--- a/drivers/acpi/processor_driver.c
|
||||||
|
+++ b/drivers/acpi/processor_driver.c
|
||||||
|
@@ -237,6 +237,9 @@ static struct notifier_block acpi_proces
|
||||||
|
.notifier_call = acpi_processor_notifier,
|
||||||
|
};
|
||||||
|
|
||||||
|
+void __weak acpi_processor_init_invariance_cppc(void)
|
||||||
|
+{ }
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* We keep the driver loaded even when ACPI is not running.
|
||||||
|
* This is needed for the powernow-k8 driver, that works even without
|
||||||
|
@@ -270,6 +273,12 @@ static int __init acpi_processor_driver_
|
||||||
|
NULL, acpi_soft_cpu_dead);
|
||||||
|
|
||||||
|
acpi_processor_throttling_init();
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Frequency invariance calculations on AMD platforms can't be run until
|
||||||
|
+ * after acpi_cppc_processor_probe() has been called for all online CPUs
|
||||||
|
+ */
|
||||||
|
+ acpi_processor_init_invariance_cppc();
|
||||||
|
return 0;
|
||||||
|
err:
|
||||||
|
driver_unregister(&acpi_processor_driver);
|
||||||
|
--- a/drivers/base/arch_topology.c
|
||||||
|
+++ b/drivers/base/arch_topology.c
|
||||||
|
@@ -366,7 +366,7 @@ void __weak freq_inv_set_max_ratio(int c
|
||||||
|
#ifdef CONFIG_ACPI_CPPC_LIB
|
||||||
|
#include <acpi/cppc_acpi.h>
|
||||||
|
|
||||||
|
-void topology_init_cpu_capacity_cppc(void)
|
||||||
|
+static inline void topology_init_cpu_capacity_cppc(void)
|
||||||
|
{
|
||||||
|
u64 capacity, capacity_scale = 0;
|
||||||
|
struct cppc_perf_caps perf_caps;
|
||||||
|
@@ -417,6 +417,10 @@ void topology_init_cpu_capacity_cppc(voi
|
||||||
|
exit:
|
||||||
|
free_raw_capacity();
|
||||||
|
}
|
||||||
|
+void acpi_processor_init_invariance_cppc(void)
|
||||||
|
+{
|
||||||
|
+ topology_init_cpu_capacity_cppc();
|
||||||
|
+}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_CPU_FREQ
|
||||||
|
--- a/include/acpi/processor.h
|
||||||
|
+++ b/include/acpi/processor.h
|
||||||
|
@@ -465,4 +465,6 @@ extern int acpi_processor_ffh_lpi_probe(
|
||||||
|
extern int acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+void acpi_processor_init_invariance_cppc(void);
|
||||||
|
+
|
||||||
|
#endif
|
||||||
|
--- a/include/linux/arch_topology.h
|
||||||
|
+++ b/include/linux/arch_topology.h
|
||||||
|
@@ -11,10 +11,6 @@
|
||||||
|
void topology_normalize_cpu_scale(void);
|
||||||
|
int topology_update_cpu_topology(void);
|
||||||
|
|
||||||
|
-#ifdef CONFIG_ACPI_CPPC_LIB
|
||||||
|
-void topology_init_cpu_capacity_cppc(void);
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
struct device_node;
|
||||||
|
bool topology_parse_cpu_capacity(struct device_node *cpu_node, int cpu);
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
From c42a82a583646dcbba8500d47ed878616ab5c33a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Mon, 28 Oct 2024 09:55:42 -0500
|
|
||||||
Subject: cpufreq/amd-pstate: Move registration after static function call
|
|
||||||
update
|
|
||||||
|
|
||||||
On shared memory designs the static functions need to work before
|
|
||||||
registration is done or the system can hang at bootup.
|
|
||||||
|
|
||||||
Move the registration later in amd_pstate_init() to solve this.
|
|
||||||
|
|
||||||
Fixes: e238968a2087 ("cpufreq/amd-pstate: Remove the redundant amd_pstate_set_driver() call")
|
|
||||||
Reported-by: Klara Modin <klarasmodin@gmail.com>
|
|
||||||
Closes: https://lore.kernel.org/linux-pm/cf9c146d-bacf-444e-92e2-15ebf513af96@gmail.com/#t
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 12 ++++++------
|
|
||||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -1880,12 +1880,6 @@ static int __init amd_pstate_init(void)
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
- ret = amd_pstate_register_driver(cppc_state);
|
|
||||||
- if (ret) {
|
|
||||||
- pr_err("failed to register with return %d\n", ret);
|
|
||||||
- return ret;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
/* capability check */
|
|
||||||
if (cpu_feature_enabled(X86_FEATURE_CPPC)) {
|
|
||||||
pr_debug("AMD CPPC MSR based functionality is supported\n");
|
|
||||||
@@ -1896,6 +1890,12 @@ static int __init amd_pstate_init(void)
|
|
||||||
static_call_update(amd_pstate_update_perf, shmem_update_perf);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ ret = amd_pstate_register_driver(cppc_state);
|
|
||||||
+ if (ret) {
|
|
||||||
+ pr_err("failed to register with return %d\n", ret);
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (amd_pstate_prefcore) {
|
|
||||||
ret = amd_detect_prefcore(&amd_pstate_prefcore);
|
|
||||||
if (ret)
|
|
@ -10,7 +10,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|||||||
|
|
||||||
--- a/mm/vmscan.c
|
--- a/mm/vmscan.c
|
||||||
+++ b/mm/vmscan.c
|
+++ b/mm/vmscan.c
|
||||||
@@ -199,7 +199,7 @@ struct scan_control {
|
@@ -200,7 +200,7 @@ struct scan_control {
|
||||||
/*
|
/*
|
||||||
* From 0 .. MAX_SWAPPINESS. Higher means more swappy.
|
* From 0 .. MAX_SWAPPINESS. Higher means more swappy.
|
||||||
*/
|
*/
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
From 3c881c7323af4269aa58848dd9da694d5a73d353 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alex Deucher <alexander.deucher@amd.com>
|
|
||||||
Date: Thu, 3 Oct 2024 09:57:38 -0400
|
|
||||||
Subject: drm/amdgpu/swsmu: default to fullscreen 3D profile for dGPUs
|
|
||||||
|
|
||||||
This uses more aggressive hueristics than the the bootup default
|
|
||||||
profile. On windows the OS has a special fullscreen 3D mode
|
|
||||||
where this is used. Since we don't have the equivalent on Linux
|
|
||||||
default to this profile for dGPUs.
|
|
||||||
|
|
||||||
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3618
|
|
||||||
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/1500
|
|
||||||
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3131
|
|
||||||
Fixes: c50fe289ed72 ("drm/amdgpu/swsmu: always force a state reprogram on init")
|
|
||||||
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
|
|
||||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
||||||
---
|
|
||||||
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
|
|
||||||
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
|
|
||||||
@@ -1257,7 +1257,6 @@ static int smu_sw_init(void *handle)
|
|
||||||
atomic_set(&smu->smu_power.power_gate.vpe_gated, 1);
|
|
||||||
atomic_set(&smu->smu_power.power_gate.umsch_mm_gated, 1);
|
|
||||||
|
|
||||||
- smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT];
|
|
||||||
smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT] = 0;
|
|
||||||
smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D] = 1;
|
|
||||||
smu->workload_prority[PP_SMC_POWER_PROFILE_POWERSAVING] = 2;
|
|
||||||
@@ -1266,6 +1265,11 @@ static int smu_sw_init(void *handle)
|
|
||||||
smu->workload_prority[PP_SMC_POWER_PROFILE_COMPUTE] = 5;
|
|
||||||
smu->workload_prority[PP_SMC_POWER_PROFILE_CUSTOM] = 6;
|
|
||||||
|
|
||||||
+ if (smu->is_apu)
|
|
||||||
+ smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT];
|
|
||||||
+ else
|
|
||||||
+ smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D];
|
|
||||||
+
|
|
||||||
smu->workload_setting[0] = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT;
|
|
||||||
smu->workload_setting[1] = PP_SMC_POWER_PROFILE_FULLSCREEN3D;
|
|
||||||
smu->workload_setting[2] = PP_SMC_POWER_PROFILE_POWERSAVING;
|
|
@ -61,7 +61,7 @@ Subject: ZEN: drm/amdgpu/pm: Allow override of min_power_limit with
|
|||||||
|
|
||||||
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
|
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
|
||||||
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
|
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
|
||||||
@@ -2762,7 +2762,10 @@ int smu_get_power_limit(void *handle,
|
@@ -2775,7 +2775,10 @@ int smu_get_power_limit(void *handle,
|
||||||
*limit = smu->max_power_limit;
|
*limit = smu->max_power_limit;
|
||||||
break;
|
break;
|
||||||
case SMU_PPT_LIMIT_MIN:
|
case SMU_PPT_LIMIT_MIN:
|
||||||
@ -73,7 +73,7 @@ Subject: ZEN: drm/amdgpu/pm: Allow override of min_power_limit with
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -2786,7 +2789,14 @@ static int smu_set_power_limit(void *han
|
@@ -2799,7 +2802,14 @@ static int smu_set_power_limit(void *han
|
||||||
if (smu->ppt_funcs->set_power_limit)
|
if (smu->ppt_funcs->set_power_limit)
|
||||||
return smu->ppt_funcs->set_power_limit(smu, limit_type, limit);
|
return smu->ppt_funcs->set_power_limit(smu, limit_type, limit);
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ that don't know they need it.
|
|||||||
bool
|
bool
|
||||||
--- a/mm/vmscan.c
|
--- a/mm/vmscan.c
|
||||||
+++ b/mm/vmscan.c
|
+++ b/mm/vmscan.c
|
||||||
@@ -3968,7 +3968,11 @@ static bool lruvec_is_reclaimable(struct
|
@@ -3974,7 +3974,11 @@ static bool lruvec_is_reclaimable(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
/* to protect the working set of the last N jiffies */
|
/* to protect the working set of the last N jiffies */
|
||||||
|
31
debian/patches/series
vendored
31
debian/patches/series
vendored
@ -188,20 +188,20 @@ patchset-pf/amd-pstate/0018-cpufreq-amd-pstate-Rename-MSR-and-shared-memory-spec
|
|||||||
patchset-pf/amd-pstate/0019-cpufreq-Add-a-callback-to-update-the-min_freq_req-fr.patch
|
patchset-pf/amd-pstate/0019-cpufreq-Add-a-callback-to-update-the-min_freq_req-fr.patch
|
||||||
patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch
|
patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch
|
||||||
patchset-pf/amd-pstate/0021-cpufreq-amd-pstate-Cleanup-the-old-min_freq-qos-requ.patch
|
patchset-pf/amd-pstate/0021-cpufreq-amd-pstate-Cleanup-the-old-min_freq-qos-requ.patch
|
||||||
patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch
|
patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch
|
||||||
patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch
|
patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch
|
||||||
patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch
|
patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch
|
||||||
patchset-pf/amd-pstate/0026-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch
|
patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch
|
||||||
patchset-pf/amd-pstate/0027-amd-pstate-6.11-update-setting-the-minimum-frequency.patch
|
patchset-pf/amd-pstate/0026-amd-pstate-6.11-update-setting-the-minimum-frequency.patch
|
||||||
patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch
|
patchset-pf/amd-pstate/0027-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch
|
||||||
patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch
|
patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch
|
||||||
patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch
|
patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch
|
||||||
patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch
|
patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch
|
||||||
patchset-pf/amd-pstate/0032-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch
|
patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch
|
||||||
patchset-pf/amd-pstate/0033-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch
|
patchset-pf/amd-pstate/0032-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch
|
||||||
patchset-pf/amd-pstate/0034-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch
|
patchset-pf/amd-pstate/0033-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch
|
||||||
patchset-pf/amd-pstate/0035-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch
|
patchset-pf/amd-pstate/0034-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch
|
||||||
patchset-pf/amd-pstate/0036-cpufreq-amd-pstate-Move-registration-after-static-fu.patch
|
patchset-pf/amd-pstate/0035-ACPI-processor-Move-arch_init_invariance_cppc-call-l.patch
|
||||||
|
|
||||||
patchset-pf/amd-rapl/0001-perf-Generic-hotplug-support-for-a-PMU-with-a-scope.patch
|
patchset-pf/amd-rapl/0001-perf-Generic-hotplug-support-for-a-PMU-with-a-scope.patch
|
||||||
patchset-pf/amd-rapl/0002-perf-Add-PERF_EV_CAP_READ_SCOPE.patch
|
patchset-pf/amd-rapl/0002-perf-Add-PERF_EV_CAP_READ_SCOPE.patch
|
||||||
@ -307,7 +307,6 @@ patchset-pf/fixes/0002-cpufreq-Remove-LATENCY_MULTIPLIER.patch
|
|||||||
patchset-pf/fixes/0003-drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch
|
patchset-pf/fixes/0003-drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch
|
||||||
patchset-pf/fixes/0004-nfsd-add-more-info-to-WARN_ON_ONCE-on-failed-callbac.patch
|
patchset-pf/fixes/0004-nfsd-add-more-info-to-WARN_ON_ONCE-on-failed-callbac.patch
|
||||||
patchset-pf/fixes/0005-e1000e-Remove-Meteor-Lake-SMBUS-workarounds.patch
|
patchset-pf/fixes/0005-e1000e-Remove-Meteor-Lake-SMBUS-workarounds.patch
|
||||||
patchset-pf/fixes/0009-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch
|
patchset-pf/fixes/0006-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch
|
||||||
|
|
||||||
patchset-zen/fixes/0001-Partially-revert-drm-amd-amdgpu-add-pipe1-hardware-s.patch
|
patchset-zen/fixes/0001-Partially-revert-drm-amd-amdgpu-add-pipe1-hardware-s.patch
|
||||||
patchset-zen/fixes/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch
|
|
||||||
|
Loading…
Reference in New Issue
Block a user