Skip to main content

DebugRequest

Enum DebugRequest 

Source
pub enum DebugRequest {
    Compact {
        responder: DebugCompactResponder,
    },
    DeleteProfile {
        volume: String,
        profile: String,
        responder: DebugDeleteProfileResponder,
    },
    RecordAndReplayProfile {
        volume: Option<String>,
        profile: String,
        duration_secs: u32,
        responder: DebugRecordAndReplayProfileResponder,
    },
    ReplayXorRecordProfile {
        volume: String,
        profile: String,
        duration_secs: u32,
        responder: DebugReplayXorRecordProfileResponder,
    },
    StopProfileTasks {
        responder: DebugStopProfileTasksResponder,
    },
}
Expand description

This is an internal protocol for on-device debugging and testing only. See ffx fxfs help for more details.

Variants§

§

Compact

Forces a compaction.

Fields

§

DeleteProfile

Deletes a recorded profile from a volume. Fails if the volume isn’t mounted or there is active profile recording or replay.

Fields

§volume: String
§profile: String
§

RecordAndReplayProfile

Begins recording a profile for a named volume for up to the given duration in seconds. If a profile already exists under the given name then it will begin replaying it as well. Fails if the volume isn’t mounted or there is active profile recording or replay on the volume. Page faults for objects that do not get opened by a caller during the recording period will will be filtered out of the profile.

This “record-while-replaying” strategy is meant to support boot-profiling in an environment where we don’t explicitly know when the system has updated. By recording during replay and filtering objects without open events, Fxfs drops dead/replaced objects to refresh the profile.

Fields

§volume: Option<String>
§profile: String
§duration_secs: u32
§

ReplayXorRecordProfile

Replays a profile if one exists, and only records if one does not exist. Fails if the volume isn’t mounted or there is active profile recording or replay on the volume.

This profile method is meant to support app launch profiling. These profiles do not filter entries based on Open events since outside of the boot process objects may already be opened or cached in overlays like Starnix.

Fields

§volume: String
§profile: String
§duration_secs: u32
§

StopProfileTasks

Stops all profile recording and replay activity. Ongoing recordings are completed and persisted.

Implementations§

Trait Implementations§

Source§

impl Debug for DebugRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.