GornaArbitrator

Struct GornaArbitrator 

Source
pub struct GornaArbitrator { /* private fields */ }
Expand description

Arbitrates resource allocation between multiple ISAs.

The arbitrator implements a two-pass approach:

  • Pass 1 (Negotiation): Collects strategy options from all agents.
  • Pass 2 (Fitting): Selects the optimal strategy combination that fits within the global frame budget, respecting priorities and VRAM constraints.

Implementations§

Source§

impl GornaArbitrator

Source

pub fn new(lock_timeout: Duration) -> Self

Creates a new arbitrator with the specified lock timeout.

The lock timeout determines how long to wait when acquiring locks on agents during negotiation and budget issuance. Agents that cannot be locked within this timeout are skipped.

Source

pub fn arbitrate( &self, context: &Context, report: &AnalysisReport, agents: &mut [Arc<Mutex<dyn Agent>>], )

Performs a full GORNA arbitration round.

§Arguments
  • context: The current DCC situational model (phase, hardware, multiplier).
  • report: The analysis report from the HeuristicEngine.
  • agents: The registered ISA agents.

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
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the inner value as &dyn Any.
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> 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.

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.