pub enum ProfileProviderRequest {
RegisterHandlerWithCapacity {
thread_handle: Thread,
name: String,
period: i64,
capacity: f32,
responder: ProfileProviderRegisterHandlerWithCapacityResponder,
},
UnregisterHandler {
thread_handle: Thread,
name: String,
responder: ProfileProviderUnregisterHandlerResponder,
},
RegisterMemoryRange {
vmar_handle: Vmar,
name: String,
responder: ProfileProviderRegisterMemoryRangeResponder,
},
UnregisterMemoryRange {
vmar_handle: Vmar,
responder: ProfileProviderUnregisterMemoryRangeResponder,
},
}
Variants§
RegisterHandlerWithCapacity
Register a thread as a media thread. This notifies the media subsystem that this thread should have an elevated scheduling profile applied to it in order to meet audio or video deadlines.
name
is the name of a system scheduling role to apply to the thread given by
thread_handle
– different products may customize the underlying scheduling strategy based
on the requested role. period
is the suggested interval to be scheduled at. period
may
be zero if the thread has no preferred scheduling interval. capacity
is the proportion of
the scheduling interval the thread needs to be running to achieve good performance or to
meet the scheduling deadline defined by period
. capacity
may be zero if the workload has
no firm runtime requirements. Note that capacity
should be a good faith estimate based on
the worst case runtime the thread requires each period. Excessive capacity requests may
be rejected or result in scaling back the performance of other threads to fit resource
limits.
Capacity, max runtime, and period have the following relationship:
capacity = max runtime / period
Where:
0 <= max runtime <= period and 0 <= capacity <= 1
For heterogeneous systems, the capacity should be planned / measured against the highest performance processor(s) in the system. The system will automatically adjust the effective capacity to account for slower processors and operating points and will avoid processors and operating points that are too slow to meet the requested scheduling parameters (provided they are reasonable).
Returns the period and capacity (actually maximum runtime) that was applied, either of which may be zero to indicate not applicable.
Fields
thread_handle: Thread
UnregisterHandler
Reset a thread’s scheduling profile to the default.
RegisterMemoryRange
Register a memory range as being used for media processing. This notifies the media subsystem that this memory should have an elevated memory profile applied to it in order to meet audio or video deadlines.
name
is the name of a system memory role to apply to the memory given by
vmar_handle
– different products may customize the underlying memory strategy based
on the requested role.
UnregisterMemoryRange
Reset a memory range’s memory profile.
Implementations§
Source§impl ProfileProviderRequest
impl ProfileProviderRequest
pub fn into_register_handler_with_capacity( self, ) -> Option<(Thread, String, i64, f32, ProfileProviderRegisterHandlerWithCapacityResponder)>
pub fn into_unregister_handler( self, ) -> Option<(Thread, String, ProfileProviderUnregisterHandlerResponder)>
pub fn into_register_memory_range( self, ) -> Option<(Vmar, String, ProfileProviderRegisterMemoryRangeResponder)>
pub fn into_unregister_memory_range( self, ) -> Option<(Vmar, ProfileProviderUnregisterMemoryRangeResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL