gs-ioprio

gs-ioprio

Functions

Description

Functions

gs_ioprio_set ()

void
gs_ioprio_set (gint priority);

Set the I/O priority of the current thread using the ioprio_set() syscall.

The priority is quantised before being passed to the kernel.

This function may fail if the process doesn’t have permission to change its I/O priority to the given value. If so, a warning will be printed, as the quantised priority values are chosen so they shouldn’t typically require permissions to set.

Parameters

priority

I/O priority, with higher numeric values indicating lower priority; use G_PRIORITY_DEFAULT as the default

 

gs_set_thread_cpu_niceness ()

void
gs_set_thread_cpu_niceness (GDBusConnection *system_bus_connection,
                            pid_t tid,
                            int niceness);

Set the CPU niceness of the given thread using RealtimeKit.

This is essentially equivalent to calling setpriority (PRIO_PROCESS, tid, niceness), or calling nice (niceness) from within the given thread. However, either of those syscalls require the CAP_SYS_NICE capability, which would also allow the process to _raise_ its priority. That is a capability we don’t want to have. Requesting the niceness change to happen via RealtimeKit means that it’s done using RealtimeKit’s CAP_SYS_NICE capability, and appropriate polkit permissions checks can be done, as well as checks on the requested niceness value.

This function may fail if the process doesn’t have permission to change its thread niceness priority to the given value. If so, *no* warning will be printed, as that would require waiting for a D-Bus round trip from RealtimeKit, which seems unnecessary given that the niceness values are chosen so they shouldn’t typically require permissions to set.

Parameters

system_bus_connection

a connection to the D-Bus system bus.

[transfer none]

tid

ID of the thread to change the niceness of

 

niceness

new niceness (0 is default, >0 means lower scheduling priority, <0 means higher scheduling priority and is disallowed)

 

Since: 50