scx-upstream/rust/scx_loader/org.scx.Loader.xml
Vladislav Nepogodin 7bd61f4334
scx_loader: Add SwitchScheduler methods to DBUS interface
These methods allow switching between different schedulers without requiring manual stopping and starting.
2024-10-05 02:57:17 +04:00

111 lines
3.7 KiB
XML

<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<!--
org.scx.Loader:
@short_description: Scheduler Loader Service
The Scheduler Loader service provides an interface for managing schedulers
that can be used with sched-ext. It allows starting, stopping, switching and querying
the status of supported schedulers.
-->
<interface name="org.scx.Loader">
<!--
CurrentScheduler:
The name of the currently running scheduler. If no scheduler is active,
this property will be set to "unknown".
-->
<property name="CurrentScheduler" type="s" access="read"/>
<!--
SchedulerMode:
@sched_mode: 0 = Auto, 1 = Gaming, 2 = PowerSave, 3 = LowLatency
The currently active scheduler mode. Scheduler modes allow you to
apply pre-defined configurations to a scheduler that are
optimized for different use cases. If no scheduler is active,
this property will be set to 0 (Auto).
-->
<property name="SchedulerMode" type="u" access="read"/>
<!--
SupportedSchedulers:
A list of the schedulers currently supported by the Scheduler Loader.
The names of the supported schedulers will be listed as strings in
this array.
-->
<property name="SupportedSchedulers" type="as" access="read"/>
<!--
StartScheduler:
Starts the specified scheduler with the given mode.
@scx_name: The name of the scheduler to start (e.g., "scx_rusty").
@sched_mode: The scheduler mode (profile) as an unsigned integer.
See the SchedulerMode property for details.
-->
<method name="StartScheduler">
<arg name="scx_name" type="s" direction="in"/>
<arg name="sched_mode" type="u" direction="in"/>
</method>
<!--
StartSchedulerWithArgs:
Starts the specified scheduler with the provided arguments.
@scx_name: The name of the scheduler to start (e.g., "scx_bpfland").
@scx_args: An array of strings representing the CLI arguments to pass
to the scheduler.
-->
<method name="StartSchedulerWithArgs">
<arg name="scx_name" type="s" direction="in"/>
<arg name="scx_args" type="as" direction="in"/>
</method>
<!--
SwitchScheduler:
Switches to the specified scheduler with the given mode. This method
will stop the currently running scheduler (if any) and then start the
new scheduler.
@scx_name: The name of the scheduler to switch to (e.g., "scx_rusty").
@sched_mode: The scheduler mode (profile) as an unsigned integer.
See the SchedulerMode property for details.
-->
<method name="SwitchScheduler">
<arg name="scx_name" type="s" direction="in"/>
<arg name="sched_mode" type="u" direction="in"/>
</method>
<!--
SwitchSchedulerWithArgs:
Switches to the specified scheduler with the provided arguments. This
method will stop the currently running scheduler (if any) and then
start the new scheduler with the given arguments.
@scx_name: The name of the scheduler to switch to (e.g., "scx_bpfland").
@scx_args: An array of strings representing the CLI arguments to pass
to the scheduler.
-->
<method name="SwitchSchedulerWithArgs">
<arg name="scx_name" type="s" direction="in"/>
<arg name="scx_args" type="as" direction="in"/>
</method>
<!--
StopScheduler:
Stops the currently running scheduler.
-->
<method name="StopScheduler">
</method>
</interface>
</node>