|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 2/5] public/sysctl: Clarify usage of pm_{px,cx}_stat
Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
---
* New in v2.
xen/include/public/sysctl.h | 52 ++++++++++++++++++++++++++++---------
1 file changed, 40 insertions(+), 12 deletions(-)
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index b0fec271d36f..449f0161920a 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -215,23 +215,51 @@ typedef struct pm_px_val pm_px_val_t;
DEFINE_XEN_GUEST_HANDLE(pm_px_val_t);
struct pm_px_stat {
- uint8_t total; /* total Px states */
- uint8_t usable; /* usable Px states */
- uint8_t last; /* last Px state */
- uint8_t cur; /* current Px state */
- XEN_GUEST_HANDLE_64(uint64) trans_pt; /* Px transition table */
+ /*
+ * IN: Number of elements in pt, number of rows/columns in trans_pt
+ * (PMSTAT_get_pxstat)
+ * OUT: total Px states (PMSTAT_get_max_px, PMSTAT_get_pxstat)
+ */
+ uint8_t total;
+ uint8_t usable; /* OUT: usable Px states (PMSTAT_get_pxstat) */
+ uint8_t last; /* OUT: last Px state (PMSTAT_get_pxstat) */
+ uint8_t cur; /* OUT: current Px state (PMSTAT_get_pxstat) */
+ /*
+ * OUT: Px transition table. This should have total * total elements.
+ * This will not be copied if it is smaller than the hypervisor's
+ * Px transition table. (PMSTAT_get_pxstat)
+ */
+ XEN_GUEST_HANDLE_64(uint64) trans_pt;
+ /* OUT: This should have total elements (PMSTAT_get_pxstat) */
XEN_GUEST_HANDLE_64(pm_px_val_t) pt;
};
struct pm_cx_stat {
- uint32_t nr; /* entry nr in triggers & residencies, including C0 */
- uint32_t last; /* last Cx state */
- uint64_aligned_t idle_time; /* idle time from boot */
- XEN_GUEST_HANDLE_64(uint64) triggers; /* Cx trigger counts */
- XEN_GUEST_HANDLE_64(uint64) residencies; /* Cx residencies */
- uint32_t nr_pc; /* entry nr in pc[] */
- uint32_t nr_cc; /* entry nr in cc[] */
/*
+ * IN: Number of elements in triggers, residencies (PMSTAT_get_cxstat)
+ * OUT: entry nr in triggers & residencies, including C0
+ * (PMSTAT_get_cxstat, PMSTAT_get_max_cx)
+ */
+ uint32_t nr;
+ uint32_t last; /* OUT: last Cx state (PMSTAT_get_cxstat) */
+ /* OUT: idle time from boot (PMSTAT_get_cxstat)*/
+ uint64_aligned_t idle_time;
+ /* OUT: Cx trigger counts, nr elements (PMSTAT_get_cxstat) */
+ XEN_GUEST_HANDLE_64(uint64) triggers;
+ /* OUT: Cx residencies, nr elements (PMSTAT_get_cxstat) */
+ XEN_GUEST_HANDLE_64(uint64) residencies;
+ /*
+ * IN: entry nr in pc[] (PMSTAT_get_cxstat)
+ * OUT: Index of highest non-zero entry set in pc[] (PMSTAT_get_cxstat)
+ */
+ uint32_t nr_pc;
+ /*
+ * IN: entry nr in cc[] (PMSTAT_get_cxstat)
+ * OUT: Index of highest non-zero entry set in cc[] (PMSTAT_get_cxstat)
+ */
+ uint32_t nr_cc;
+ /*
+ * OUT: (PMSTAT_get_cxstat)
* These two arrays may (and generally will) have unused slots; slots not
* having a corresponding hardware register will not be written by the
* hypervisor. It is therefore up to the caller to put a suitable sentinel
--
2.49.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |