lisa.wlgen.rta.RTAPhaseTree#
- class lisa.wlgen.rta.RTAPhaseTree(properties=None, children=None, **kwargs)[source]#
Bases:
RTAPhaseBase
,ABC
Tree node in an
_RTAPhaseTreeBase
.- Parameters:
children (list(_RTAPhaseTreeBase)) – List of children phases.
properties – Forwarded to base class.
prop_cpus (set(int) or None or lisa.wlgen.rta.CPUProperty) – CPU affinity property.
prop_dl_deadline (int or lisa.wlgen.rta.DeadlineDeadlineProperty) –
SCHED_DEADLINE
scheduler policy’s deadline property.prop_dl_period (int or lisa.wlgen.rta.DeadlinePeriodProperty) –
SCHED_DEADLINE
scheduler policy’s period property.prop_dl_runtime (int or lisa.wlgen.rta.DeadlineRuntimeProperty) –
SCHED_DEADLINE
scheduler policy’s runtime property or, since Linux 6.12,SCHED_OTHER
scheduler policy’s custom slice length.prop_meta (dict or lisa.wlgen.rta.MetaStoreProperty) – Plain key-value storage to be used as the user see fit.
prop_name (str or lisa.wlgen.rta.NameProperty) – Name the phase.
prop_numa_nodes_membind (set(int) or None or lisa.wlgen.rta.NUMAMembindProperty) – NUMA node membind property.
prop_policy (str or lisa.wlgen.rta.PolicyProperty) – Scheduler policy property.
prop_priority (int or lisa.wlgen.rta.PriorityProperty) – Task scheduler priority property.
prop_taskgroup (str or lisa.wlgen.rta.TaskGroupProperty) – Task group property.
prop_uclamp (tuple(int or None, int or None) or UclampProperty or lisa.wlgen.rta.UclampProperty) – Set util clamp (uclamp) values.
prop_wload (lisa.wlgen.rta.WloadPropertyBase) – Phase workload.
- Variable keyword arguments:
Forwarded to base class.
The properties set on this node will be combined of the properties of the children in
topo_sort()
.Attributes
__reversed__
inheritedSee
collections.abc.Mapping.__reversed__
Properties
Tree levels are transparent and their children expanded directly in their parent, as long as they have no properties on their own that could change the output of
topo_sort()
. This allows nestedRTAPhaseTree
to act as if it was just a flat node, which is useful since repeated composition with+
operator will give nested binary trees like that.True
if the phase has no content and will result in an empty JSON phase(s).Topological sort of the phases in the tree, with the properties merged along each path from the root to the leaves.
Methods
rt-app JSON representation of the phase.
Topological sort of the tree, and combine the properties along each path from root to leaves at the same time.
HASH_COERCE()
inheritedUsed to coerce the values of
self.__dict__
to hashable values.__add__()
inheritedCompose two phases together by running one after the other.
__await__()
inherited__class_getitem__()
inheritedSee
collections.abc.Iterable.__class_getitem__()
__contains__()
inheritedSee
collections.abc.Mapping.__contains__()
__getitem__()
inheritedLookup the value of the given property on that phase.
__init_subclass__()
inheritedUpdate the docstring used as a
str.format()
template with the following keys:.__iter__()
inherited__len__()
inherited__mul__()
inheritedMultiply the phase by
n
, in order to repeat it.__rmul__()
inheritedget()
inheritedSee
collections.abc.Mapping.get()
items()
inheritedSee
collections.abc.Mapping.items()
keys()
inheritedSee
collections.abc.Mapping.keys()
split_prop_kwargs()
inheritedSplit the
kwargs
into two categories:.values()
inheritedSee
collections.abc.Mapping.values()
with_delete_props()
inheritedDelete all the given property names, equivalent to
with_props(foo=delete())
.with_phase_properties()
inheritedReturn a cloned instance with the properties combined with the given
properties
usingRTAPhaseProperties.__and__()
(&
). Theproperties
parameter is the left operand. Ifproperties
isNone
, just return the phase itself.with_properties_map()
inheritedSame as
with_phase_properties()
but withproperties
passed toRTAPhaseProperties.from_polymorphic()
first.with_props()
inheritedSame as
with_phase_properties()
but using keyword arguments to set each property. The resulting dictionary is passed toRTAPhaseProperties.from_polymorphic()
first.
Attributes#
- RTAPhaseTree.__reversed__ = None#
Properties#
- property RTAPhaseTree.children[source]#
Tree levels are transparent and their children expanded directly in their parent, as long as they have no properties on their own that could change the output of
topo_sort()
. This allows nestedRTAPhaseTree
to act as if it was just a flat node, which is useful since repeated composition with+
operator will give nested binary trees like that.
- property RTAPhaseTree.is_empty[source]#
True
if the phase has no content and will result in an empty JSON phase(s).
- property RTAPhaseTree.phases#
Topological sort of the phases in the tree, with the properties merged along each path from the root to the leaves.
Methods#
- RTAPhaseTree.get_rtapp_repr(task_name, plat_info, force_defaults=False, no_force_default_keys=None, **kwargs)#
rt-app JSON representation of the phase.
- Parameters:
task_name (str) – Name of the task this phase will be attached to.
plat_info (lisa.platforms.platinfo.PlatformInfo) – Platform information used to compute default properties and validate them.
force_defaults (bool) – If
True
, a default value will be provided for all properties that are not set. IfFalse
, the defaults will not be provided if the user-provided properties don’t touch a given JSON key.no_force_default_keys (list(str) or None) – List of JSON keys for which no default will be emitted when
force_defaults=True
.
- Variable keyword arguments:
Forwarded to
RTAPhase.to_json()
- RTAPhaseTree.topo_sort()[source]#
Topological sort of the tree, and combine the properties along each path from root to leaves at the same time.
- RTAPhaseTree.HASH_COERCE(x, coerce)#
Inherited method, see
lisa.utils.SimpleHash.HASH_COERCE()
Used to coerce the values of
self.__dict__
to hashable values.
- RTAPhaseTree.__add__(other)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__add__()
Compose two phases together by running one after the other.
- RTAPhaseTree.__await__()#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__await__()
- classmethod RTAPhaseTree.__class_getitem__()#
Inherited method, see
collections.abc.Iterable.__class_getitem__()
- RTAPhaseTree.__contains__()#
Inherited method, see
collections.abc.Mapping.__contains__()
- RTAPhaseTree.__getitem__(key)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__getitem__()
Lookup the value of the given property on that phase.
- classmethod RTAPhaseTree.__init_subclass__(**kwargs)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__init_subclass__()
Update the docstring used as a
str.format()
template with the following keys:.
- RTAPhaseTree.__iter__()#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__iter__()
- RTAPhaseTree.__len__()#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__len__()
- RTAPhaseTree.__mul__(n)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__mul__()
Multiply the phase by
n
, in order to repeat it.
- RTAPhaseTree.__rmul__(n)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.__rmul__()
- RTAPhaseTree.get()#
Inherited method, see
collections.abc.Mapping.get()
- RTAPhaseTree.items()#
Inherited method, see
collections.abc.Mapping.items()
- RTAPhaseTree.keys()#
Inherited method, see
collections.abc.Mapping.keys()
- static RTAPhaseTree.split_prop_kwargs(kwargs, properties=None)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.split_prop_kwargs()
Split the
kwargs
into two categories:.
- RTAPhaseTree.values()#
Inherited method, see
collections.abc.Mapping.values()
- RTAPhaseTree.with_delete_props(properties)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.with_delete_props()
Delete all the given property names, equivalent to
with_props(foo=delete())
.
- RTAPhaseTree.with_phase_properties(properties)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.with_phase_properties()
Return a cloned instance with the properties combined with the given
properties
usingRTAPhaseProperties.__and__()
(&
). Theproperties
parameter is the left operand. Ifproperties
isNone
, just return the phase itself.
- RTAPhaseTree.with_properties_map(properties, **kwargs)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.with_properties_map()
Same as
with_phase_properties()
but withproperties
passed toRTAPhaseProperties.from_polymorphic()
first.
- RTAPhaseTree.with_props(**kwargs)#
Inherited method, see
lisa.wlgen.rta.RTAPhaseBase.with_props()
Same as
with_phase_properties()
but using keyword arguments to set each property. The resulting dictionary is passed toRTAPhaseProperties.from_polymorphic()
first.