Commit graph

7755 commits

Author SHA1 Message Date
Ksawlii
1bb919f2d1 Reapply "configs: Nuke CONFIG_EXYNOS_ACPM_PLGDBG"
This reverts commit 8c6ac67a37.
2025-01-22 21:04:47 +01:00
Ksawlii
c8aa677b57 Revert "drivers: soc: samsung: acpm: disable lto"
This reverts commit 3a31abaa32.
2025-01-22 20:36:33 +01:00
Ksawlii
6dd26e10cb Revert "drivers: cal-if: fix build without CONFIG_CMUCAL_DEBUG"
This reverts commit 2d84789050.
2025-01-22 20:36:26 +01:00
Ksawlii
c76ef25f3f build: Add ccache support 2025-01-22 19:59:35 +01:00
Ksawlii
8c6ac67a37 Revert "configs: Nuke CONFIG_EXYNOS_ACPM_PLGDBG"
This reverts commit 73f0f98fb6.
2025-01-22 19:41:23 +01:00
Sultan Alsawaf
f5e2e1c94e acpm_dvfs: Remove sched_clock() calls
Calling the architected timer adds nontrivial overhead as observed in perf
top, especially since the DVFS functions are hot paths.

Remove all of the sched_clock() calls since they're unneeded by ACPM.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-22 12:05:44 +01:00
Nahuel Gómez
a5f833d5c7 cal-if: acpm_dvfs: guard secdbg_freq_check usage
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-22 12:05:26 +01:00
Ksawlii
b72ccd1e47 .github: Adapt for a new build script 2025-01-22 11:12:19 +01:00
Ksawlii
0c6024b417 build: Tweak variables 2025-01-22 11:09:49 +01:00
Ksawlii
73f0f98fb6 configs: Nuke CONFIG_EXYNOS_ACPM_PLGDBG 2025-01-22 10:59:09 +01:00
xxmustafacooTR
3a31abaa32 drivers: soc: samsung: acpm: disable lto 2025-01-22 10:51:10 +01:00
Nahuel Gómez
2d84789050 drivers: cal-if: fix build without CONFIG_CMUCAL_DEBUG
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-22 10:49:20 +01:00
Ksawlii
612d1468a3 configs: Nuke CONFIG_CMUCAL_DEBUG 2025-01-22 10:49:17 +01:00
Ksawlii
45a0d58af8 build: VANILLA_VANILLA_ARGS > VANILLA_ARGS variable 2025-01-22 10:10:17 +01:00
Ksawlii
2ee255693e build: Merge 2 build scripts in to 1
Made it possible by setting a variable FIREASF_VANILLA=true/false, its set automaticly when selecting a build option
2025-01-22 10:03:02 +01:00
Ksawlii
ba2a228c25 defconfigs: Regenerate with regen.sh 2025-01-21 21:38:42 +01:00
Nahuel Gómez
8ad48c3eca cpufreq,configs: remove energystep references
This driver isn't even compatible with our kernel version, though it is present in the ems folder.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:34:17 +01:00
Nahuel Gómez
c51d003719 configs: enable NTFS read-write support
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:32:35 +01:00
Nahuel Gómez
4d8a45c523 Revert "drivers: soc: samsung: acpm: disable lto"
This was applied to fix a suspected reboot issue, but it turns out this was not the source of it.

This reverts commit ed828ec374bbd9f3a538a0c92421e9e0074b078f.
2025-01-21 21:30:36 +01:00
Sultan Alsawaf
6c7dd7bf70 sched: Disable TTWU_QUEUE
Queuing wake-ups is not measurably beneficial in any way. Disable it.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
[Flopster101: Apply to new way of setting features.]
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:30:11 +01:00
Nahuel Gómez
838ee567b9 Revert "ARM64: dts/s5e8825: GPU undervolt to 790mV"
This never actually worked, as undervolting is handled in a different way.

This reverts commit 1464058ebd26ae4fa3f3b1fbbfaf84e8c5d74fee.
2025-01-21 21:28:55 +01:00
freak07
58659caf1a treewide: use power efficient workingqueues
(cherry picked from commit 8ddf75b4fb1d7b54a795c1dc70bf480a5f049603)
(cherry picked from commit dbf96ce6987d4361b4135124b81cb40b269366c5)
(cherry picked from commit 3291d145fade85cef2830b9d28fe1c90e154ba9c)
2025-01-21 21:28:39 +01:00
ztc1997
7f393c3513 cpufreq: {schedutil, schedhorizon}: Allow single-CPU frequency to drop without idling
Given that a CPU's clock is gated at even the shallowest idle state,
waiting until a CPU idles at least once before reducing its frequency is
putting the cart before the horse. For long-running workloads with low
compute needs, requiring an idle call since the last frequency update to
lower the CPU's frequency results in significantly increased energy usage.

Given that there is already a mechanism in place to ratelimit frequency
changes, this heuristic is wholly unnecessary.

Allow single-CPU performance domains to drop their frequency without
requiring an idle call in between to improve energy. Right off the bat,
this reduces CPU power consumption by 7.5% playing a cat gif in Firefox on
a Pixel 8 (270 mW -> 250 mW). And there is no visible loss of performance.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
2025-01-21 21:28:32 +01:00
ztc1997
0e4add4b71 schedhorizon: Sync with schedutil 2025-01-21 21:28:28 +01:00
ztc1997
2a7073f6d6 schedhorizon: Introduce schedhorizon cpufreq governor
* This is a modified version of schedutil, introducing two new tunables: "efficient_freq" and "up_delay".
* Only raise cpufreq to the non-efficient one (higher than effcient frequencies) if the governor keeps requiring non-efficient frequencies for more than up_delay time.
* Override the new frequencies with the efficient one if the consecutive request time doesn't reach up_delay.
* The two tunables support multiple args, e.g. you can set "1248000 1401600" for "efficient_freq" and set "50 60" for "up_delay", which means it would wait 50ms before raising the frequency to 1248mhz and wait for 60ms before raising the frequency to 1401mhz.

[Flopster101: move the kconfig entry to the proper section.]
2025-01-21 21:28:17 +01:00
Nahuel Gómez
f32e4cfc40 configs: disable ssg and set kyber as the default I/O scheduler
Performs well on our UFS storage.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:26:41 +01:00
Nahuel Gómez
b6bbd6efd2 configs: enable 'schedhorizon' gov and set as default
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:24:10 +01:00
Nahuel Gómez
010342f95f configs: disable Debug Snapshot API
The driver itself will stay enabled, but we can disable the API.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:20:34 +01:00
Nahuel Gómez
9c13012c2d cpufreq: apply init protection for governor
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:20:26 +01:00
Nahuel Gómez
41b2ee9adb sound: samsung/abox: also allow disabling abox_debug
Affected by CONFIG_SND_SOC_SAMSUNG_DEBUG.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:19:44 +01:00
Nahuel Gómez
f8342c269f fvmap: remove G3D undervolting
As can be seen in the device-tree, this domain is unused for our device:

			devfreq_g3d {
				dm-index = <0x08>;
				available = "false";
				cal_id = <0xb040008>;
				dm_type_name = "dm_gpu";
			};

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:19:39 +01:00
Nahuel Gómez
2552d29cfe fs: susfs: default to sus_su mode 2
This is equivalent to using manual hooks.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-21 21:19:25 +01:00
Ksawlii
0ddcd18c3a configs,modules.load: Nuke SEC_PM_DEBUG 2025-01-20 12:13:11 +01:00
Nahuel Gómez
1166bf9afc vboot_dlkm: remove sec_audio_debug module
Unused now.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-20 11:09:24 +01:00
Nahuel Gómez
6ee48af6a6 sound: abox: make debugging code optional
sec_audio_debug can now be built by enabling CONFIG_SND_SOC_SAMSUNG_DEBUG.

Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-20 11:05:06 +01:00
Ksawlii
f4bef3316b Revert "modules.load: Nuke sec_pm_debug.ko and sec_audio_debug.ko"
This reverts commit 0606c9a1d2.
2025-01-19 22:03:05 +01:00
Ksawlii
ff935ccefe Revert "dts: Nuke abox-dbg and abox-debug stuff"
This reverts commit 6e318661f7.
2025-01-19 21:30:50 +01:00
Ksawlii
dcbdc227f1 Revert "ANDROID: binder: fix ptrdiff_t printk-format issue"
This reverts commit 1c68de3f24.
2025-01-19 21:13:55 +01:00
Ksawlii
5d542492e1 Revert "BACKPORT: FROMGIT: binder: fix memleak of proc->delivered_freeze"
This reverts commit 7f900cc47b.
2025-01-19 21:06:46 +01:00
Ksawlii
447c8f90c8 Revert "BACKPORT: FROMGIT: binder: add delivered_freeze to debugfs output"
This reverts commit 9b5b1ffec3.
2025-01-19 21:01:28 +01:00
Ksawlii
1b696e9b5d Revert "workqueue: Make queue_rcu_work() use call_rcu_flush()"
This reverts commit d9f15863ae.
2025-01-19 20:29:35 +01:00
Ksawlii
1fe9347f4c defconfigs: Regenerate with regen.sh 2025-01-19 20:25:11 +01:00
Nahuel Gómez
d588a7afa7 ARM64: configs: set PELT half-life to 12ms
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-19 20:20:02 +01:00
Nahuel Gómez
bbd4757ef4 fs: set VFS cache pressure to 20
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-19 20:17:47 +01:00
Uladzislau Rezki
d9f15863ae workqueue: Make queue_rcu_work() use call_rcu_flush()
Earlier commits in this series allow battery-powered systems to build
their kernels with the default-disabled CONFIG_RCU_LAZY=y Kconfig option.
This Kconfig option causes call_rcu() to delay its callbacks in order
to batch them.  This means that a given RCU grace period covers more
callbacks, thus reducing the number of grace periods, in turn reducing
the amount of energy consumed, which increases battery lifetime which
can be a very good thing.  This is not a subtle effect: In some important
use cases, the battery lifetime is increased by more than 10%.

This CONFIG_RCU_LAZY=y option is available only for CPUs that offload
callbacks, for example, CPUs mentioned in the rcu_nocbs kernel boot
parameter passed to kernels built with CONFIG_RCU_NOCB_CPU=y.

Delaying callbacks is normally not a problem because most callbacks do
nothing but free memory.  If the system is short on memory, a shrinker
will kick all currently queued lazy callbacks out of their laziness,
thus freeing their memory in short order.  Similarly, the rcu_barrier()
function, which blocks until all currently queued callbacks are invoked,
will also kick lazy callbacks, thus enabling rcu_barrier() to complete
in a timely manner.

However, there are some cases where laziness is not a good option.
For example, synchronize_rcu() invokes call_rcu(), and blocks until
the newly queued callback is invoked.  It would not be a good for
synchronize_rcu() to block for ten seconds, even on an idle system.
Therefore, synchronize_rcu() invokes call_rcu_flush() instead of
call_rcu().  The arrival of a non-lazy call_rcu_flush() callback on a
given CPU kicks any lazy callbacks that might be already queued on that
CPU.  After all, if there is going to be a grace period, all callbacks
might as well get full benefit from it.

Yes, this could be done the other way around by creating a
call_rcu_lazy(), but earlier experience with this approach and
feedback at the 2022 Linux Plumbers Conference shifted the approach
to call_rcu() being lazy with call_rcu_flush() for the few places
where laziness is inappropriate.

And another call_rcu() instance that cannot be lazy is the one
in queue_rcu_work(), given that callers to queue_rcu_work() are
not necessarily OK with long delays.

Therefore, make queue_rcu_work() use call_rcu_flush() in order to revert
to the old behavior.

Signed-off-by: Uladzislau Rezki <urezki@gmail.com>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2025-01-19 20:17:36 +01:00
Nahuel Gómez
9d424c8d4a mm: tune direct vm_swappiness
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-19 20:17:10 +01:00
Dark-Matter7232
094fe4e123 mm: Import memory management hacks from Oplus
This imports a couple of memory management hacks used by Oplus (Oppo, Realme, and OnePlus) on their recent devices. This patch does the following:

- Add a separate swappiness (default 60) value to use if task isn't handled by kswapd
- Don't throttle tasks with OOM value < 0
- Increase zsmalloc's maximum page order

Signed-off-by: Dark-Matter7232 <kerneldeveloper7232@gmail.com>
[TenSeventy7: Make the Kconfig more descriptive]
Signed-off-by: John Vincent <git@tenseventyseven.cf>
[Flopster101: Adapt to 5.10. Hardcode ISOLATED_BITS value and don't set ZS_MAX_ZSPAGE_ORDER]
Signed-off-by: Nahuel Gómez <nahuelgomez329@gmail.com>
2025-01-19 20:17:06 +01:00
xxmustafacooTR
155cc059f6 mali/exynos: show current voltage 2025-01-19 20:16:22 +01:00
freak07
2406291b8b gpu: drm: use power efficient workingqueues
Change-Id: Id6fe0d3ebf7eabb423f2ec64d79075c0e3ba9e14
Signed-off-by: Samuel Pascua <sgpascua@ngcp.ph>
Signed-off-by: Samuel Pascua <pascua.samuel.14@gmail.com>
2025-01-19 20:14:12 +01:00
Yaroslav Furman
630769e32b rcu: Fix a performance regression.
Commit "rcu: Create RCU-specific workqueues with rescuers" switched RCU
to using local workqueses and removed power efficiency flag from them.

This caused a performance regression that can be observed in Geekbench 5
after enabling CONFIG_WQ_POWER_EFFICIENT_DEFAULT: score went down from
760/2500 to 620/2300 (single/multi core respectively).

Add WQ_POWER_EFFICIENT flag to avoid this regression.

Change-Id: I2c4f41faa55548f9e81a1c0cbe10703948062d89
2025-01-19 20:05:47 +01:00