From 02e7703ba0948981f3bb7c27bcaf2523c9cac73b Mon Sep 17 00:00:00 2001 From: Konstantin Demin Date: Fri, 8 Nov 2024 22:50:42 +0300 Subject: [PATCH] release 6.11.7 --- debian/bin/refine-configs | 8 +- debian/changelog | 7 + debian/config/config | 6 - ...nprivileged-CLONE_NEWUSER-by-default.patch | 6 +- ...e-Use-nominal-perf-for-limits-when-.patch} | 0 ...e-Don-t-update-CPPC-request-in-amd_.patch} | 0 ...e-Use-amd_pstate_update_min_max_lim.patch} | 0 ...te-Drop-needless-EPP-initialization.patch} | 0 ...pdate-setting-the-minimum-frequency.patch} | 0 ...e-Call-amd_pstate_register-in-amd_p.patch} | 0 ...e-Call-amd_pstate_set_driver-in-amd.patch} | 0 ...e-Remove-the-switch-case-in-amd_pst.patch} | 0 ...e-Remove-the-redundant-amd_pstate_s.patch} | 0 ...e-ut-Add-fix-for-min-freq-unit-test.patch} | 0 ...n_perf-to-nominal_perf-for-active-m.patch} | 0 ...-to-amd-pstate-by-default-on-some-S.patch} | 0 ...e-Push-adjust_perf-vfunc-init-into-.patch} | 0 ...ove-arch_init_invariance_cppc-call-l.patch | 183 ++++++++++++++++++ ...te-Move-registration-after-static-fu.patch | 47 ----- ...add-stripe-entries-for-NOCOW-writes.patch} | 0 ...mscan-Set-minimum-amount-of-swapping.patch | 2 +- ...-default-to-fullscreen-3D-profile-fo.patch | 42 ---- ...m-Allow-override-of-min_power_limit-.patch | 4 +- ...Tune-mgLRU-to-protect-cache-used-in-.patch | 2 +- debian/patches/series | 31 ++- 25 files changed, 216 insertions(+), 122 deletions(-) rename debian/patches/patchset-pf/amd-pstate/{0023-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch => 0022-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0024-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch => 0023-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0025-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch => 0024-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0026-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch => 0025-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0027-amd-pstate-6.11-update-setting-the-minimum-frequency.patch => 0026-amd-pstate-6.11-update-setting-the-minimum-frequency.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0028-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch => 0027-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0029-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch => 0028-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0030-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch => 0029-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0031-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch => 0030-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0032-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch => 0031-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0033-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch => 0032-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0034-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch => 0033-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch} (100%) rename debian/patches/patchset-pf/amd-pstate/{0035-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch => 0034-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch} (100%) create mode 100644 debian/patches/patchset-pf/amd-pstate/0035-ACPI-processor-Move-arch_init_invariance_cppc-call-l.patch delete mode 100644 debian/patches/patchset-pf/amd-pstate/0036-cpufreq-amd-pstate-Move-registration-after-static-fu.patch rename debian/patches/patchset-pf/fixes/{0009-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch => 0006-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch} (100%) delete mode 100644 debian/patches/patchset-zen/fixes/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch diff --git a/debian/bin/refine-configs b/debian/bin/refine-configs index fc09650..c30d5a2 100755 --- a/debian/bin/refine-configs +++ b/debian/bin/refine-configs @@ -1,6 +1,8 @@ #!/bin/sh set -ef +export PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1 + prj_dir=$(readlink -f "$(dirname "$0")/../..") cd "${prj_dir}" @@ -20,8 +22,6 @@ src_dir=$2 [ -d "${src_dir}" ] src_dir=$(readlink -f "${src_dir}") -export PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1 - nproc=$(nproc || printf 2) case "${nproc}" in [0-1] ) nproc=2 ;; @@ -48,8 +48,8 @@ for c in ${configs} ; do cp -f "${src_dir}/.config" "$f" done -## remove BUILD_SALT -find debian/build/ -name 'config.*' -type f -exec sed -i -E '/CONFIG_BUILD_SALT/d' {} + +## remove build-generated options +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 find debian/build/ -name 'config.*' -type f -exec sed -i -En '/CONFIG_/p' {} + diff --git a/debian/changelog b/debian/changelog index 29c358e..d55c9dc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Fri, 08 Nov 2024 22:31:17 +0300 + linux (6.11.6-1) sid; urgency=medium * New upstream stable update: diff --git a/debian/config/config b/debian/config/config index ce69a8d..3bb5478 100644 --- a/debian/config/config +++ b/debian/config/config @@ -3464,10 +3464,8 @@ CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" CONFIG_CC_IS_GCC=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_STRINGOP_OVERFLOW=y -CONFIG_CC_VERSION_TEXT="gcc (Debian 14.2.0-7) 14.2.0" CONFIG_CDROM=m CONFIG_CGROUP_WRITEBACK=y -CONFIG_CLANG_VERSION=0 CONFIG_CLKBLD_I8253=y CONFIG_CLKEVT_I8253=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y @@ -3630,7 +3628,6 @@ CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_SYSFS=y CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_GCC_NO_STRINGOP_OVERFLOW=y -CONFIG_GCC_VERSION=140200 CONFIG_GENERIC_ALLOCATOR=y CONFIG_GENERIC_BUG=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_ORPHAN_WARN=y CONFIG_LD_ORPHAN_WARN_LEVEL="warn" -CONFIG_LD_VERSION=24301 CONFIG_LEGACY_DIRECT_IO=y CONFIG_LLC=m -CONFIG_LLD_VERSION=0 CONFIG_LOCKD=m CONFIG_LOCKDEP_SUPPORT=y CONFIG_LOCKD_V4=y @@ -4021,7 +4016,6 @@ CONFIG_PAGE_SIZE_LESS_THAN_256KB=y CONFIG_PAGE_SIZE_LESS_THAN_64KB=y CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y CONFIG_PAHOLE_HAS_SPLIT_BTF=y -CONFIG_PAHOLE_VERSION=127 CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PCIE_PME=y CONFIG_PCI_ATS=y diff --git a/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch b/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch index 1f74518..e030945 100644 --- a/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch +++ b/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch @@ -21,7 +21,7 @@ Signed-off-by: Serge Hallyn --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -118,6 +118,12 @@ +@@ -119,6 +119,12 @@ #include @@ -34,7 +34,7 @@ Signed-off-by: Serge Hallyn /* * 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)) return ERR_PTR(-EINVAL); @@ -45,7 +45,7 @@ Signed-off-by: Serge Hallyn /* * Thread groups must share signals as well, and detached threads * 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) unshare_flags |= CLONE_FS; diff --git a/debian/patches/patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch b/debian/patches/patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch rename to debian/patches/patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch b/debian/patches/patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch rename to debian/patches/patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch b/debian/patches/patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch rename to debian/patches/patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0026-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch b/debian/patches/patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0026-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch rename to debian/patches/patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0027-amd-pstate-6.11-update-setting-the-minimum-frequency.patch b/debian/patches/patchset-pf/amd-pstate/0026-amd-pstate-6.11-update-setting-the-minimum-frequency.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0027-amd-pstate-6.11-update-setting-the-minimum-frequency.patch rename to debian/patches/patchset-pf/amd-pstate/0026-amd-pstate-6.11-update-setting-the-minimum-frequency.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch b/debian/patches/patchset-pf/amd-pstate/0027-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch rename to debian/patches/patchset-pf/amd-pstate/0027-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch b/debian/patches/patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch rename to debian/patches/patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch b/debian/patches/patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch rename to debian/patches/patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch b/debian/patches/patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch rename to debian/patches/patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0032-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch b/debian/patches/patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0032-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch rename to debian/patches/patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0033-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch b/debian/patches/patchset-pf/amd-pstate/0032-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0033-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch rename to debian/patches/patchset-pf/amd-pstate/0032-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0034-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch b/debian/patches/patchset-pf/amd-pstate/0033-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0034-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch rename to debian/patches/patchset-pf/amd-pstate/0033-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0035-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch b/debian/patches/patchset-pf/amd-pstate/0034-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch similarity index 100% rename from debian/patches/patchset-pf/amd-pstate/0035-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch rename to debian/patches/patchset-pf/amd-pstate/0034-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.patch diff --git a/debian/patches/patchset-pf/amd-pstate/0035-ACPI-processor-Move-arch_init_invariance_cppc-call-l.patch b/debian/patches/patchset-pf/amd-pstate/0035-ACPI-processor-Move-arch_init_invariance_cppc-call-l.patch new file mode 100644 index 0000000..f42926a --- /dev/null +++ b/debian/patches/patchset-pf/amd-pstate/0035-ACPI-processor-Move-arch_init_invariance_cppc-call-l.patch @@ -0,0 +1,183 @@ +From 27b069b518f77fffc337286a2fad8a6305daa60f Mon Sep 17 00:00:00 2001 +From: Mario Limonciello +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 +Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219431 +Tested-by: Oleksandr Natalenko +Signed-off-by: Mario Limonciello +--- + 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 + +-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); + diff --git a/debian/patches/patchset-pf/amd-pstate/0036-cpufreq-amd-pstate-Move-registration-after-static-fu.patch b/debian/patches/patchset-pf/amd-pstate/0036-cpufreq-amd-pstate-Move-registration-after-static-fu.patch deleted file mode 100644 index 32b6282..0000000 --- a/debian/patches/patchset-pf/amd-pstate/0036-cpufreq-amd-pstate-Move-registration-after-static-fu.patch +++ /dev/null @@ -1,47 +0,0 @@ -From c42a82a583646dcbba8500d47ed878616ab5c33a Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -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 -Closes: https://lore.kernel.org/linux-pm/cf9c146d-bacf-444e-92e2-15ebf513af96@gmail.com/#t -Signed-off-by: Mario Limonciello ---- - 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) diff --git a/debian/patches/patchset-pf/fixes/0009-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch b/debian/patches/patchset-pf/fixes/0006-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch similarity index 100% rename from debian/patches/patchset-pf/fixes/0009-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch rename to debian/patches/patchset-pf/fixes/0006-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch diff --git a/debian/patches/patchset-xanmod/xanmod/0011-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch b/debian/patches/patchset-xanmod/xanmod/0011-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch index 354cd74..cade3be 100644 --- a/debian/patches/patchset-xanmod/xanmod/0011-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch +++ b/debian/patches/patchset-xanmod/xanmod/0011-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch @@ -10,7 +10,7 @@ Signed-off-by: Alexandre Frade --- a/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. */ diff --git a/debian/patches/patchset-zen/fixes/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch b/debian/patches/patchset-zen/fixes/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch deleted file mode 100644 index 2fb4597..0000000 --- a/debian/patches/patchset-zen/fixes/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 3c881c7323af4269aa58848dd9da694d5a73d353 Mon Sep 17 00:00:00 2001 -From: Alex Deucher -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 -Signed-off-by: Alex Deucher ---- - 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; diff --git a/debian/patches/patchset-zen/sauce/0009-ZEN-drm-amdgpu-pm-Allow-override-of-min_power_limit-.patch b/debian/patches/patchset-zen/sauce/0009-ZEN-drm-amdgpu-pm-Allow-override-of-min_power_limit-.patch index d67e7f0..6e2803b 100644 --- a/debian/patches/patchset-zen/sauce/0009-ZEN-drm-amdgpu-pm-Allow-override-of-min_power_limit-.patch +++ b/debian/patches/patchset-zen/sauce/0009-ZEN-drm-amdgpu-pm-Allow-override-of-min_power_limit-.patch @@ -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 +++ 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; break; case SMU_PPT_LIMIT_MIN: @@ -73,7 +73,7 @@ Subject: ZEN: drm/amdgpu/pm: Allow override of min_power_limit with break; default: 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) return smu->ppt_funcs->set_power_limit(smu, limit_type, limit); diff --git a/debian/patches/patchset-zen/sauce/0015-ZEN-INTERACTIVE-Tune-mgLRU-to-protect-cache-used-in-.patch b/debian/patches/patchset-zen/sauce/0015-ZEN-INTERACTIVE-Tune-mgLRU-to-protect-cache-used-in-.patch index 75f392b..bbb30ec 100644 --- a/debian/patches/patchset-zen/sauce/0015-ZEN-INTERACTIVE-Tune-mgLRU-to-protect-cache-used-in-.patch +++ b/debian/patches/patchset-zen/sauce/0015-ZEN-INTERACTIVE-Tune-mgLRU-to-protect-cache-used-in-.patch @@ -27,7 +27,7 @@ that don't know they need it. bool --- a/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 */ diff --git a/debian/patches/series b/debian/patches/series index cafc398..6d9b1d2 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -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/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/0023-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/0025-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/0027-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/0029-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/0031-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/0033-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/0035-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/0022-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch +patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch +patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch +patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Drop-needless-EPP-initialization.patch +patchset-pf/amd-pstate/0026-amd-pstate-6.11-update-setting-the-minimum-frequency.patch +patchset-pf/amd-pstate/0027-cpufreq-amd-pstate-Call-amd_pstate_register-in-amd_p.patch +patchset-pf/amd-pstate/0028-cpufreq-amd-pstate-Call-amd_pstate_set_driver-in-amd.patch +patchset-pf/amd-pstate/0029-cpufreq-amd-pstate-Remove-the-switch-case-in-amd_pst.patch +patchset-pf/amd-pstate/0030-cpufreq-amd-pstate-Remove-the-redundant-amd_pstate_s.patch +patchset-pf/amd-pstate/0031-cpufreq-amd-pstate-ut-Add-fix-for-min-freq-unit-test.patch +patchset-pf/amd-pstate/0032-amd-pstate-Set-min_perf-to-nominal_perf-for-active-m.patch +patchset-pf/amd-pstate/0033-amd-pstate-Switch-to-amd-pstate-by-default-on-some-S.patch +patchset-pf/amd-pstate/0034-cpufreq-amd-pstate-Push-adjust_perf-vfunc-init-into-.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/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/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/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/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch