pub struct DebugProxy { /* private fields */ }Implementations§
Source§impl DebugProxy
impl DebugProxy
Sourcepub fn take_event_stream(&self) -> DebugEventStream
pub fn take_event_stream(&self) -> DebugEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn compact(
&self,
) -> QueryResponseFut<DebugCompactResult, FDomainResourceDialect>
pub fn compact( &self, ) -> QueryResponseFut<DebugCompactResult, FDomainResourceDialect>
Forces a compaction.
Sourcepub fn delete_profile(
&self,
volume: &str,
profile: &str,
) -> QueryResponseFut<DebugDeleteProfileResult, FDomainResourceDialect>
pub fn delete_profile( &self, volume: &str, profile: &str, ) -> QueryResponseFut<DebugDeleteProfileResult, FDomainResourceDialect>
Deletes a recorded profile from a volume. Fails if the volume isn’t mounted or there is active profile recording or replay.
Sourcepub fn record_and_replay_profile(
&self,
volume: Option<&str>,
profile: &str,
duration_secs: u32,
) -> QueryResponseFut<DebugRecordAndReplayProfileResult, FDomainResourceDialect>
pub fn record_and_replay_profile( &self, volume: Option<&str>, profile: &str, duration_secs: u32, ) -> QueryResponseFut<DebugRecordAndReplayProfileResult, FDomainResourceDialect>
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.
Sourcepub fn replay_xor_record_profile(
&self,
volume: &str,
profile: &str,
duration_secs: u32,
) -> QueryResponseFut<DebugReplayXorRecordProfileResult, FDomainResourceDialect>
pub fn replay_xor_record_profile( &self, volume: &str, profile: &str, duration_secs: u32, ) -> QueryResponseFut<DebugReplayXorRecordProfileResult, FDomainResourceDialect>
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.
Sourcepub fn stop_profile_tasks(
&self,
) -> QueryResponseFut<DebugStopProfileTasksResult, FDomainResourceDialect>
pub fn stop_profile_tasks( &self, ) -> QueryResponseFut<DebugStopProfileTasksResult, FDomainResourceDialect>
Stops all profile recording and replay activity. Ongoing recordings are completed and persisted.
Trait Implementations§
Source§impl Clone for DebugProxy
impl Clone for DebugProxy
Source§fn clone(&self) -> DebugProxy
fn clone(&self) -> DebugProxy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DebugProxy
impl Debug for DebugProxy
Source§impl DebugProxyInterface for DebugProxy
impl DebugProxyInterface for DebugProxy
type CompactResponseFut = QueryResponseFut<Result<(), i32>, FDomainResourceDialect>
type DeleteProfileResponseFut = QueryResponseFut<Result<(), i32>, FDomainResourceDialect>
type RecordAndReplayProfileResponseFut = QueryResponseFut<Result<(), i32>, FDomainResourceDialect>
type ReplayXorRecordProfileResponseFut = QueryResponseFut<Result<(), i32>, FDomainResourceDialect>
type StopProfileTasksResponseFut = QueryResponseFut<Result<(), i32>, FDomainResourceDialect>
fn compact(&self) -> Self::CompactResponseFut
fn delete_profile( &self, volume: &str, profile: &str, ) -> Self::DeleteProfileResponseFut
fn record_and_replay_profile( &self, volume: Option<&str>, profile: &str, duration_secs: u32, ) -> Self::RecordAndReplayProfileResponseFut
fn replay_xor_record_profile( &self, volume: &str, profile: &str, duration_secs: u32, ) -> Self::ReplayXorRecordProfileResponseFut
fn stop_profile_tasks(&self) -> Self::StopProfileTasksResponseFut
Source§impl Proxy for DebugProxy
impl Proxy for DebugProxy
Source§type Protocol = DebugMarker
type Protocol = DebugMarker
Proxy controls.Source§fn from_channel(inner: Channel) -> Self
fn from_channel(inner: Channel) -> Self
Source§fn into_channel(self) -> Result<Channel, Self>
fn into_channel(self) -> Result<Channel, Self>
Source§fn as_channel(&self) -> &Channel
fn as_channel(&self) -> &Channel
Source§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Source§fn domain(&self) -> Arc<Client>
fn domain(&self) -> Arc<Client>
Source§fn on_closed(&self) -> OnFDomainSignals
fn on_closed(&self) -> OnFDomainSignals
PEER_CLOSED signal.Auto Trait Implementations§
impl Freeze for DebugProxy
impl !RefUnwindSafe for DebugProxy
impl Send for DebugProxy
impl Sync for DebugProxy
impl Unpin for DebugProxy
impl UnsafeUnpin for DebugProxy
impl !UnwindSafe for DebugProxy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]