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

rpmi: performance: Add memory region service #81

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

yeongjoshua
Copy link

Add 'PERF_GET_FAST_CHANNEL_REGION' service to get a continuous block of physical memory region for fast channel access.

src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
src/srvgrp-cppc.adoc Outdated Show resolved Hide resolved
src/srvgrp-performance.adoc Outdated Show resolved Hide resolved
factor of `1000`.
the metric is entirely platform-dependent. Values on this scale are represented
with `performance level index`, and the platform has complete control over
mapping these performance operating points to performance states, which are
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, performance operating point == performance level index ??

Copy link
Collaborator

@pathakraul pathakraul Dec 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can't we simply say it Performance Level instead of Performance Level Index.

Reason being, index term is always used to retrieve some other item which is not available directly.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also need to mention property of performance scale that when the performance scales up or scales down if we move on the performance scale.

For example
if [perflvl1, perflvl2, perflvl3, perflvl4, perflvl5, ...., perflvlN] is the performance scale where perflvl1 represents the first level and perflvlN represents the last level. Then, if the AP moves from perflvl1 -> perflvl2 the performance scales up. and vice-versa, it scales down.

@yeongjoshua
Copy link
Author

@pathakraul would this one is more preferred instead?
995b1d6

@yeongjoshua yeongjoshua force-pushed the perf-memory-region branch 2 times, most recently from 865aace to fd069f8 Compare December 28, 2024 03:45
@pathakraul
Copy link
Collaborator

Apart from above i dont have any more comments. There are some minor formatting required which i will handle to make it similar to rest of the spec.

@pathakraul
Copy link
Collaborator

Also please rebase this PR with latest main branch

@pathakraul pathakraul closed this Jan 2, 2025
@pathakraul pathakraul reopened this Jan 2, 2025
Clarify the performance level represented by the
performance index which links to its attributes
through PERF_GET_SUPPORTED_LEVELS.

Segregate the RPMI performance fast shared region
to ease PMP/SPMP on the fast channel memory region
block.

Signed-off-by: Joshua Yeong <[email protected]>
src/srvgrp-voltage.adoc Outdated Show resolved Hide resolved
src/srvgrp-voltage.adoc Outdated Show resolved Hide resolved
Add explaination to multi-linear voltage format.

Signed-off-by: Joshua Yeong <[email protected]>

| 3
| STEP
| Step size in microvolts (uV).
|===

----
For example, a system with voltage profile of
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

profiles

(a) 900mV to 1650mV, step size of 50mV
(b) 1800mV to 3300mV, step size of 100mV

Multi-linear format structure:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still its not clear. Please explain how VOLTAGE_MIN_SEL and VOLTAGE_MAX_SEL are derived and how they are used in the example

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my reading, the selectors are not used by any service (VOLT_SET_LEVEL and VOLT_GET_LEVEL use microvolts directly). They are purely an implementation detail of how the PuC programs the underlying hardware. Both the Simple-Linear and Multi-Linear formats support NUM_LEVELS > 1, so from a client perspective they appear to be interchangeable, and the Multi-Linear format is redundant.

@pathakraul
Copy link
Collaborator

Performance group is fine. only one comment in the voltage group above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants