pub struct Params<'a> {
pub(crate) open: &'a mut OpenObject,
pub(crate) set: BTreeSet<String>,
pub(crate) flags: u64,
}Expand description
The tunables of an object that is open and not loaded yet, the ones it
declares with scx_rustsched::params!, to set before the load, and the ops
flags it is loaded with. It records which tunables were set: run()
refuses to start a scheduler that has one nobody set.
Fields§
§open: &'a mut OpenObject§set: BTreeSet<String>§flags: u64Implementations§
Source§impl<'a> Params<'a>
impl<'a> Params<'a>
Sourcepub fn new(open: &'a mut OpenObject, flags: u64) -> Self
pub fn new(open: &'a mut OpenObject, flags: u64) -> Self
The tunables of open, which is loaded with the ops flags.
Sourcepub fn flags(&self) -> u64
pub fn flags(&self) -> u64
The ops flags the scheduler is loaded with: the ones #[scheduler]
declares until changed here.
Sourcepub fn add_flags(&mut self, flags: u64)
pub fn add_flags(&mut self, flags: u64)
Load the scheduler with the ops flags too, such as one the
running kernel may lack, which compat reads as 0 there.
Sourcepub fn clear_flags(&mut self, flags: u64)
pub fn clear_flags(&mut self, flags: u64)
Load the scheduler without the ops flags.
Sourcepub fn type_of(&mut self, name: &str) -> Option<String>
pub fn type_of(&mut self, name: &str) -> Option<String>
The type of the tunable name, if the scheduler has it.
Sourcepub(crate) fn write(
&mut self,
name: &str,
bytes: impl FnOnce(&str, usize) -> Result<Vec<u8>>,
) -> Result<()>
pub(crate) fn write( &mut self, name: &str, bytes: impl FnOnce(&str, usize) -> Result<Vec<u8>>, ) -> Result<()>
Give the tunable name, of type ty, the first data.len() bytes
bytes(data.len()) returns.
Sourcepub fn set_text(&mut self, name: &str, text: &str) -> Result<()>
pub fn set_text(&mut self, name: &str, text: &str) -> Result<()>
Set a tunable from the value of a command line option: true or false for a bool, and otherwise an integer, decimal or 0x hexadecimal, in the range of the tunable’s type.
Sourcepub fn set<T: ParamValue>(&mut self, name: &str, values: &[T]) -> Result<()>
pub fn set<T: ParamValue>(&mut self, name: &str, values: &[T]) -> Result<()>
Set a tunable from values of its own type: one for an integer or a bool, and for an array at most as many as it has elements, the rest of which become zero.
Sourcepub fn set_options<A: Args>(&mut self, matches: &ArgMatches) -> Result<()>
pub fn set_options<A: Args>(&mut self, matches: &ArgMatches) -> Result<()>
Set the tunables the options A name, from the command line as
parsed: an option sets the tunable of its name, so steal, given
as --steal, sets STEAL. A time in microseconds or milliseconds
sets the tunable in nanoseconds: slice_us, given as --slice-us,
sets SLICE_NS to a thousand times its value. An option’s default
is the one in A, which the scheduler starts with whatever default
the tunable was declared with. An option that names no tunable, or
an array, is left to the scheduler’s own settings.
Auto Trait Implementations§
impl<'a> !UnwindSafe for Params<'a>
impl<'a> Freeze for Params<'a>
impl<'a> RefUnwindSafe for Params<'a>
impl<'a> Send for Params<'a>
impl<'a> Sync for Params<'a>
impl<'a> Unpin for Params<'a>
impl<'a> UnsafeUnpin for Params<'a>
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.