arch/powerpc/perf/hv-24x7.h
Source file repositories/reference/linux-study-clean/arch/powerpc/perf/hv-24x7.h
File Facts
- System
- Linux kernel
- Corpus path
arch/powerpc/perf/hv-24x7.h- Extension
.h- Size
- 3893 bytes
- Lines
- 161
- Domain
- Architecture Layer
- Bucket
- arch/powerpc
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hhv-24x7-domains.h
Detected Declarations
struct hv_24x7_requeststruct hv_24x7_request_bufferstruct hv_24x7_result_element_v1struct hv_24x7_result_element_v2struct hv_24x7_resultstruct hv_24x7_data_result_bufferenum hv_perf_domains
Annotated Snippet
struct hv_24x7_request {
/* PHYSICAL domains require enabling via phyp/hmc. */
__u8 performance_domain;
__u8 reserved[0x1];
/* bytes to read starting at @data_offset. must be a multiple of 8 */
__be16 data_size;
/*
* byte offset within the perf domain to read from. must be 8 byte
* aligned
*/
__be32 data_offset;
/*
* only valid for VIRTUAL_PROCESSOR domains, ignored for others.
* -1 means "current partition only"
* Enabling via phyp/hmc required for non-"-1" values. 0 forbidden
* unless requestor is 0.
*/
__be16 starting_lpar_ix;
/*
* Ignored when @starting_lpar_ix == -1
* Ignored when @performance_domain is not VIRTUAL_PROCESSOR_*
* -1 means "infinite" or all
*/
__be16 max_num_lpars;
/* chip, core, or virtual processor based on @performance_domain */
__be16 starting_ix;
__be16 max_ix;
/* The following fields were added in v2 of the 24x7 interface. */
__u8 starting_thread_group_ix;
/* -1 means all thread groups starting at @starting_thread_group_ix */
__u8 max_num_thread_groups;
__u8 reserved2[0xE];
} __packed;
struct hv_24x7_request_buffer {
/* 0 - ? */
/* 1 - ? */
__u8 interface_version;
__u8 num_requests;
__u8 reserved[0xE];
struct hv_24x7_request requests[];
} __packed;
struct hv_24x7_result_element_v1 {
__be16 lpar_ix;
/*
* represents the core, chip, or virtual processor based on the
* request's @performance_domain
*/
__be16 domain_ix;
/* -1 if @performance_domain does not refer to a virtual processor */
__be32 lpar_cfg_instance_id;
/* size = @result_element_data_size of containing result. */
__u64 element_data[];
} __packed;
/*
* We need a separate struct for v2 because the offset of @element_data changed
* between versions.
*/
struct hv_24x7_result_element_v2 {
__be16 lpar_ix;
/*
* represents the core, chip, or virtual processor based on the
* request's @performance_domain
*/
__be16 domain_ix;
/* -1 if @performance_domain does not refer to a virtual processor */
__be32 lpar_cfg_instance_id;
__u8 thread_group_ix;
__u8 reserved[7];
/* size = @result_element_data_size of containing result. */
__u64 element_data[];
Annotation
- Immediate include surface: `linux/types.h`, `hv-24x7-domains.h`.
- Detected declarations: `struct hv_24x7_request`, `struct hv_24x7_request_buffer`, `struct hv_24x7_result_element_v1`, `struct hv_24x7_result_element_v2`, `struct hv_24x7_result`, `struct hv_24x7_data_result_buffer`, `enum hv_perf_domains`.
- Atlas domain: Architecture Layer / arch/powerpc.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.