Skip to content

Commit b2b9eb8

Browse files
Merge pull request #31 from pythonlover02/next
Release 1.2.0
2 parents e7e0e5a + c685ff5 commit b2b9eb8

File tree

13 files changed

+723
-315
lines changed

13 files changed

+723
-315
lines changed

README.md

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ A graphical user interface for configuring GPU related environment variables and
2525

2626
- CPU Management
2727
- Governor Selection: Choose from available CPU governors
28+
- Adjust the maximum and minimum CPU frequencies within the permitted range.
2829
- Scheduler Configuration: Select CPU pluggable schedulers (requires [scx](https://github.com/sched-ext/scx) and `Linux Kernel >= 6.12` or a `Custom Patched Kernel`)
2930
- GPU Configuration
3031
- Mesa Drivers: Configure Mesa Drivers specific environment variables
@@ -37,24 +38,64 @@ A graphical user interface for configuring GPU related environment variables and
3738
- Kernel Configuration
3839
- Choose /proc/sys/vm/compaction_proactiveness value
3940
- Choose /proc/sys/vm/watermark_boost_factor value
41+
- Choose /proc/sys/vm/watermark_scale_factor value
42+
- Choose /proc/sys/vm/extfrag_threshold value
43+
- Choose /proc/sys/vm/compact_unevictable_allowed value
44+
- Choose /proc/sys/vm/defrag_mode value
4045
- Choose /proc/sys/vm/min_free_kbytes value
46+
- Choose /proc/sys/vm/overcommit_memory value
47+
- Choose /proc/sys/vm/overcommit_ratio value
48+
- Choose /proc/sys/vm/admin_reserve_kbytes value
49+
- Choose /proc/sys/vm/user_reserve_kbytes value
4150
- Choose /proc/sys/vm/max_map_count value
51+
- Choose /proc/sys/vm/mmap_min_addr value
52+
- Choose /proc/sys/vm/page_lock_unfairness value
4253
- Choose /proc/sys/vm/swappiness value
54+
- Choose /proc/sys/vm/page-cluster value
55+
- Choose /proc/sys/vm/vfs_cache_pressure value
56+
- Choose /proc/sys/vm/percpu_pagelist_high_fraction value
57+
- Choose /proc/sys/vm/zone_reclaim_mode value
58+
- Choose /proc/sys/vm/min_unmapped_ratio value
59+
- Choose /proc/sys/vm/min_slab_ratio value
60+
- Choose /proc/sys/vm/numa_stat value
61+
- Choose /proc/sys/vm/oom_kill_allocating_task value
62+
- Choose /proc/sys/vm/oom_dump_tasks value
63+
- Choose /proc/sys/vm/panic_on_oom value
4364
- Choose /proc/sys/vm/dirty_ratio value
4465
- Choose /proc/sys/vm/dirty_background_ratio value
66+
- Choose /proc/sys/vm/dirty_bytes value
67+
- Choose /proc/sys/vm/dirty_background_bytes value
4568
- Choose /proc/sys/vm/dirty_expire_centisecs value
4669
- Choose /proc/sys/vm/dirty_writeback_centisecs value
47-
- Choose /proc/sys/vm/vfs_cache_pressure value
70+
- Choose /proc/sys/vm/dirtytime_expire_seconds value
71+
- Choose /proc/sys/vm/laptop_mode value
72+
- Choose /proc/sys/vm/nr_hugepages value
73+
- Choose /proc/sys/vm/nr_overcommit_hugepages value
74+
- Choose /proc/sys/vm/hugetlb_optimize_vmemmap value
75+
- Choose /proc/sys/vm/stat_interval value
4876
- Choose /sys/kernel/mm/transparent_hugepage/enabled value
4977
- Choose /sys/kernel/mm/transparent_hugepage/shmem_enabled value
5078
- Choose /sys/kernel/mm/transparent_hugepage/defrag value
51-
- Choose /proc/sys/vm/zone_reclaim_mode value
52-
- Choose /proc/sys/vm/page_lock_unfairness value
79+
- Choose /sys/class/rtc/rtc0/max_user_freq value
80+
- Choose /proc/sys/kernel/numa_balancing value
81+
- Choose /proc/sys/kernel/randomize_va_space value
82+
- Choose /proc/sys/kernel/perf_event_paranoid value
5383
- Choose /proc/sys/kernel/sched_cfs_bandwidth_slice_us value
5484
- Choose /proc/sys/kernel/sched_autogroup_enabled value
85+
- Choose /proc/sys/kernel/sched_rt_runtime_us value
86+
- Choose /proc/sys/kernel/sched_rt_period_us value
87+
- Choose /proc/sys/kernel/sched_schedstats value
88+
- Choose /proc/sys/kernel/timer_migration value
5589
- Choose /proc/sys/kernel/watchdog value
5690
- Choose /proc/sys/kernel/nmi_watchdog value
57-
- Choose /proc/sys/vm/laptop_mode value
91+
- Choose /proc/sys/kernel/hung_task_timeout_secs value
92+
- Choose /proc/sys/kernel/pid_max value
93+
- Choose /proc/sys/fs/file-max value
94+
- Choose /proc/sys/net/core/rmem_max value
95+
- Choose /proc/sys/net/core/wmem_max value
96+
- Choose /proc/sys/net/ipv4/tcp_fastopen value
97+
- Choose /proc/sys/net/ipv4/tcp_window_scaling value
98+
- Choose /proc/sys/net/ipv4/tcp_timestamps value
5899

59100
- Launch Options: add custom Launch Options to the `volt` that will be passed to the program executed, example:
60101
```
@@ -196,6 +237,7 @@ Documentation used:
196237
- [NVIDIA 570 Drivers - Documentation](https://download.nvidia.com/XFree86/Linux-x86_64/570.153.02/README/openglenvvariables.html)
197238
- [NVIDIA 470 Drivers - Documentation](https://download.nvidia.com/XFree86/Linux-x86_64/470.256.02/README/openglenvvariables.html)
198239
- [NVIDIA 390 Drivers - Documentation](https://download.nvidia.com/XFree86/Linux-x86_64/390.157/README/openglenvvariables.html)
240+
- [Linux Kernel - Subsystem Documentation](https://docs.kernel.org/subsystem-apis.html)
199241

200242
## Contributing:
201243

images/1.png

-1.77 MB
Loading

images/2.png

-11.5 KB
Loading

images/3.png

-931 KB
Loading

scripts/volt-helper

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@ apply_governor() {
1010
done
1111
}
1212

13+
apply_max_freq() {
14+
local max_freq="$1"
15+
for CPU_PATH in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do
16+
echo "$max_freq" > "$CPU_PATH"
17+
done
18+
}
19+
20+
apply_min_freq() {
21+
local min_freq="$1"
22+
for CPU_PATH in /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq; do
23+
echo "$min_freq" > "$CPU_PATH"
24+
done
25+
}
26+
1327
terminate_existing_schedulers() {
1428
local scheduler_pid=$(pgrep -f '^scx_' 2>/dev/null | head -n1)
1529

@@ -52,19 +66,33 @@ manage_cpu() {
5266

5367
local governor=""
5468
local scheduler=""
69+
local max_freq=""
70+
local min_freq=""
5571

5672
for arg in "${cpu_args[@]}"; do
5773
if [[ "$arg" == governor:* ]]; then
5874
governor="${arg#governor:}"
5975
elif [[ "$arg" == scheduler:* ]]; then
6076
scheduler="${arg#scheduler:}"
77+
elif [[ "$arg" == max_freq:* ]]; then
78+
max_freq="${arg#max_freq:}"
79+
elif [[ "$arg" == min_freq:* ]]; then
80+
min_freq="${arg#min_freq:}"
6181
fi
6282
done
6383

6484
if [ -n "$governor" ]; then
6585
apply_governor "$governor"
6686
fi
87+
88+
if [ -n "$min_freq" ]; then
89+
apply_min_freq "$min_freq"
90+
fi
6791

92+
if [ -n "$max_freq" ]; then
93+
apply_max_freq "$max_freq"
94+
fi
95+
6896
if [ -n "$scheduler" ]; then
6997
handle_scheduler "$scheduler"
7098
fi

src/about.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def get_about_info():
1313
{"label": "Description", "text": "Simple GUI program for modifying and creating the `volt` script and more. Providing an intuitive interface for configuration management, with the objective of getting the maximum performance posible of a PC"},
1414
{"label": "License", "text": "GPL-3.0 License"},
1515
{"label": "Author", "text": "pythonlover02"},
16-
{"label": "Version", "text": "1.1.1"},
16+
{"label": "Version", "text": "1.2.0"},
1717
]
1818

1919
@staticmethod

src/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ def save_config(cpu_widgets, gpu_widgets, kernel_widgets, disk_widgets, profile_
4545

4646
config['CPU'] = {
4747
'governor': cpu_widgets['gov_combo'].currentText(),
48+
'max_freq': cpu_widgets['max_freq_combo'].currentText(),
49+
'min_freq': cpu_widgets['min_freq_combo'].currentText(),
4850
'scheduler': cpu_widgets['sched_combo'].currentText()
4951
}
5052

@@ -106,6 +108,8 @@ def load_config(cpu_widgets, gpu_widgets, kernel_widgets, disk_widgets, profile_
106108

107109
if 'CPU' in config:
108110
cpu_widgets['gov_combo'].setCurrentText(config['CPU'].get('governor', 'unset'))
111+
cpu_widgets['max_freq_combo'].setCurrentText(config['CPU'].get('max_freq', 'unset'))
112+
cpu_widgets['min_freq_combo'].setCurrentText(config['CPU'].get('min_freq', 'unset'))
109113
cpu_widgets['sched_combo'].setCurrentText(config['CPU'].get('scheduler', 'unset'))
110114

111115
if 'Mesa' in config and 'mesa' in gpu_widgets:

0 commit comments

Comments
 (0)