Disable ananicy-cpp when scx sched is used, reneabled when one is disabled
All checks were successful
PikaOS Package Build & Release (amd64-v3) / build (push) Successful in 26s
All checks were successful
PikaOS Package Build & Release (amd64-v3) / build (push) Successful in 26s
This commit is contained in:
parent
5a628d9dc3
commit
7c50b95d03
2
.github/release-nest-v3
vendored
2
.github/release-nest-v3
vendored
@ -1 +1 @@
|
|||||||
2
|
3
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
falcond (1.0.3-101pika1) pika; urgency=low
|
||||||
|
|
||||||
|
* Disable ananicy-cpp when scx sched is used, reneable when one is disabled
|
||||||
|
|
||||||
|
-- ferreo <ferreo@pika-os.com> Sun, 12 Jan 2025 13:48:00 +0300
|
||||||
|
|
||||||
falcond (1.0.2-101pika1) pika; urgency=low
|
falcond (1.0.2-101pika1) pika; urgency=low
|
||||||
|
|
||||||
* Minor fix for race condition during profile reloadings
|
* Minor fix for race condition during profile reloadings
|
||||||
|
@ -193,6 +193,10 @@ fn isSchedulerSupported(scheduler: ScxScheduler) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn activateScheduler(alloc: std.mem.Allocator, scheduler: ScxScheduler, mode: ?ScxSchedModes) ScxError!void {
|
pub fn activateScheduler(alloc: std.mem.Allocator, scheduler: ScxScheduler, mode: ?ScxSchedModes) ScxError!void {
|
||||||
|
if (scheduler != .none) {
|
||||||
|
runSystemCtl(alloc, "stop", "ananicy-cpp");
|
||||||
|
}
|
||||||
|
|
||||||
var dbus_conn = dbus.DBus.init(alloc, SCX_NAME, SCX_PATH, SCX_IFACE);
|
var dbus_conn = dbus.DBus.init(alloc, SCX_NAME, SCX_PATH, SCX_IFACE);
|
||||||
|
|
||||||
const mode_str = try std.fmt.allocPrint(alloc, "{d}", .{modeToInt(mode orelse .default)});
|
const mode_str = try std.fmt.allocPrint(alloc, "{d}", .{modeToInt(mode orelse .default)});
|
||||||
@ -236,9 +240,30 @@ pub fn applyScheduler(alloc: std.mem.Allocator, scheduler: ScxScheduler, mode: ?
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn runSystemCtl(alloc: std.mem.Allocator, command: []const u8, service: []const u8) void {
|
||||||
|
const argv = [_][]const u8{ "systemctl", command, service };
|
||||||
|
const max_output_size = 1024;
|
||||||
|
const result = std.process.Child.run(.{
|
||||||
|
.allocator = alloc,
|
||||||
|
.argv = &argv,
|
||||||
|
.max_output_bytes = max_output_size,
|
||||||
|
}) catch |err| {
|
||||||
|
std.log.warn("Failed to run systemctl {s} {s}: {}", .{ command, service, err });
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
defer alloc.free(result.stderr);
|
||||||
|
defer alloc.free(result.stdout);
|
||||||
|
|
||||||
|
if (result.term.Exited != 0) {
|
||||||
|
std.log.warn("systemctl failed: {s}", .{result.stderr});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn deactivateScheduler(alloc: std.mem.Allocator) ScxError!void {
|
pub fn deactivateScheduler(alloc: std.mem.Allocator) ScxError!void {
|
||||||
var dbus_conn = dbus.DBus.init(alloc, SCX_NAME, SCX_PATH, SCX_IFACE);
|
var dbus_conn = dbus.DBus.init(alloc, SCX_NAME, SCX_PATH, SCX_IFACE);
|
||||||
try dbus_conn.callMethod("StopScheduler", &[_][]const u8{});
|
try dbus_conn.callMethod("StopScheduler", &[_][]const u8{});
|
||||||
|
runSystemCtl(alloc, "start", "ananicy-cpp");
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn restorePreviousState(alloc: std.mem.Allocator) void {
|
pub fn restorePreviousState(alloc: std.mem.Allocator) void {
|
||||||
|
@ -15,7 +15,7 @@ var previous_mode_buffer: [10]u8 = undefined;
|
|||||||
pub fn applyVCacheMode(vcache_mode: VCacheMode) void {
|
pub fn applyVCacheMode(vcache_mode: VCacheMode) void {
|
||||||
const file = fs.openFileAbsolute(vcache_path, .{ .mode = .read_write }) catch |err| switch (err) {
|
const file = fs.openFileAbsolute(vcache_path, .{ .mode = .read_write }) catch |err| switch (err) {
|
||||||
error.FileNotFound => {
|
error.FileNotFound => {
|
||||||
std.log.info("AMD 3D vcache support not detected", .{});
|
std.log.info("AMD dual CCD 3D vcache support not detected", .{});
|
||||||
return;
|
return;
|
||||||
},
|
},
|
||||||
else => {
|
else => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user