Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address feedback in issue #26 #27

Merged
merged 5 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion qos_bandwidth.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,8 @@ the bandwidth usage over a few accounting intervals.

The `Rbwb` represents the bandwidth that is made available to a `RCID` for
requests matching `AT`, even when all other `RCID` are using their full
allocation of bandwidth.
allocation of bandwidth. The bandwidth allocation scales linearly with the
number of bandwidth blocks programmed into `Rbwb`.

If there is non-reserved or unused bandwidth available in an accounting
interval, `RCIDs` may compete for additional bandwidth. The non-reserved or
Expand Down
39 changes: 23 additions & 16 deletions qos_identifiers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ configure counters identified by the `MCID` to count events in the resource
controllers that control accesses to such shared resources.

<<QOS_SIZING>> discusses guidelines for sizing the QoS IDs and the need for
differentiated IDs for monitoring.
differentiated IDs for monitoring. All supported `RCID` and `MCID` may be
actively used in the system at any instance.

[[EMCID]]
=== Associating `RCID` and `MCID` with requests
Expand All @@ -38,7 +39,7 @@ computed as:
[latexmath#eq-1,reftext="equation ({counter:eqs})"]
++++
\begin{equation}
Effective-MCID = (RCID << P) | (MCID & ((1 << P) - 1))
Effective-MCID = (RCID << P) | (MCID \& ((1 << P) - 1))
\end{equation}
++++

Expand All @@ -57,20 +58,26 @@ of `mstateen0` controls access to `srmcfg` from privilege modes less than M.

==== Device initiated requests

Devices may be configured with an `RCID` and `MCID` for requests originated
from the device if the device implementation supports such capability. The
method to configure the QoS identifiers into devices is `UNSPECIFIED`.

Where the device does not natively support being configured with an `RCID`
and `MCID`, the implementation may provide a shim at the device interface that
may be configured with the `RCID` and `MCID` that are associated with requests
originating from the device. The method to configure such QoS identifiers into
a shim is `UNSPECIFIED`.

If the system supports an IOMMU, then the IOMMU may be configured with the
`RCID` and `MCID` to associate requests from the device with QoS identifiers.
The RISC-V IOMMU cite:[IOMMU] extension to support configuring QoS identifiers
is specified in <<QOS_IOMMU>>.
A RISC-V IOMMU cite:[IOMMU] extension to support configuring QoS identifiers is
specified in <<QOS_IOMMU>>. If the system supports an IOMMU with this extension,
the IOMMU may be configured with the `RCID` and `MCID` to associate with requests
from devices and from the IOMMU itself.

If the system does not support an IOMMU with this extension, then the
association of `RCID` and `MCID` with requests from devices becomes
implementation-defined. Such methods may include, but are not limited to, one of
the following:

* Devices may be configured with an `RCID` and `MCID` for requests originating
from the device, provided the device implementation and the bus protocol used
by the device support such capabilities. The method to configure the QoS
identifiers into devices remains `UNSPECIFIED`.

* Where the device does not natively support being configured with an `RCID`
and `MCID`, the implementation may provide a shim at the device interface. This
shim may be configured with the `RCID` and `MCID` to associate with requests
originating from the device. The method to configure such QoS identifiers into
a shim is `UNSPECIFIED`.

=== Access-type (`AT`)

Expand Down
7 changes: 7 additions & 0 deletions qos_sw_guidelines.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ reported using these methods:
* Placement and topology describing the hart and IO bridges that share the
resources controlled by the controller
* The number of QoS identifiers supported by the controller
* For memory bandwidth controllers, the controlled memory regions. These may be
described in the form of NUMA domains or proximity domains
* If a controller is part of a set of controllers that collectively control a
shared resource such as memory bandwidth of a memory region, then information
to identify all members of the set should be reported
* Constraints imposed by the controllers, such as the minimum number of capacity
or bandwidth blocks per RCID

=== Context Switching QoS Identifiers

Expand Down
Loading