Profile

NAME

profile - scheduling configuration

SYNOPSIS

A profile allows a set of high level scheduling priorities to be defined and later applied to one or more threads. Each profile object defines a scheduling configuration (though currently only thread priority is implemented). Once created, the profile can be applied to one or more threads, which will then adopt those settings.

DESCRIPTION

Profile objects define a high level scheduling policy that can be applied to threads. For example, an “audio processing” profile could be created with a high scheduling priority, and then be applied to threads in media playback jobs. Alternatively, a “background” profile could be created with a low scheduling priority, and then be applied to threads in non-interactive jobs.

Policy objects are created with the zx_profile_create() syscall, passing in a scheduling configuration. The returned profile may then be applied to one or more threads using the zx_object_set_profile() syscall.

Because profiles give significant control of the behaviour of the kernel scheduler, creating a profile requires the root resource. Once created, profiles may be delegated freely, however.

Currently, only a single scheduler parameter scheduler.priority is supported, which determines the priority of the thread used by Zircon's kernel scheduler. zx_profile_create() describes how to construct a profile object with a custom scheduler priority.

SYSCALLS