|
|
auto | arch::s390x::cpu::percpu::cpu_id () noexcept -> u16 |
| | get current cpu id
|
|
auto | arch::s390x::cpu::percpu::cpu_type () noexcept -> u8 |
| | get current cpu's ZXFL_CPU_TYPE_* value
|
|
auto | arch::s390x::cpu::percpu::cpu_type_prefix () noexcept -> std::string_view |
| | Return the lowercase short prefix for the current CPU type. Used by printk to format e.g. [cp00], [ifl02], [ziip03].
|
|
auto | arch::s390x::cpu::percpu::init_ap (percpu_data &pcp) noexcept -> void |
| | Finish AP per-CPU initialization.
|
|
auto | arch::s390x::cpu::percpu::init_bsp () noexcept -> void |
| | Finish BSP per-CPU initialization.
|
|
auto | arch::s390x::cpu::percpu::this_cpu () noexcept -> percpu_data & |
| | Reference to the current CPU's per-CPU block.
|
|
|
u32 | _pad0 {} |
| | Explicit padding to align next u64.
|
|
u8 | _pad1 [7] {} |
| | Pad to u64 alignment.
|
|
u32 | _pad2 {} |
|
u8 | _pad_asce [3] {} |
|
u8 | _pad_drawer [2] {} |
|
u8 | _pad_fixup [2] {} |
|
u8 | _pad_irq_class [3] {} |
| | Pad to u32 alignment.
|
|
u32 | _pad_rcu {} |
|
u64 | ap_stack_phys {} |
| | Physical address of AP's initial stack top.
|
|
u64 | attached_asce {0} |
| | ASCE currently attached to CR1 for DGP tracking.
|
|
u8 | attached_dgp_state {0} |
| | DGP isolation_state snapshot admitted by the scheduler.
|
|
u32 | attached_domain_id {0} |
| | Domain ID owning attached_asce, or nucleus for idle/kernel.
|
|
u8 | capacity {100} |
| | Scheduler capacity percentage, 100 when unknown.
|
|
u8 | core_id {0} |
| | Scheduler core-group ID from ZXFL/STSI or degraded fallback.
|
|
u16 | cpu_addr {} |
| | Hardware CPU address (from STAP instruction).
|
|
u16 | cpu_id {} |
| | Logical CPU ID (0 = BSP, dense, 0-based).
|
|
u8 | cpu_type {0} |
| | ZXFL_CPU_TYPE_* for this CPU (CP, IFL, zIIP, etc.).
|
|
u64 | current_domain {} |
| | Virtual address of the current domain struct.
|
|
irq_class | current_irq_class {} |
| | Explicit interrupt class being serviced (set by entry.S).
|
|
u64 | current_strand {} |
| | Virtual address of the currently executing strand.
|
|
std::atomic< u32 > | deferred_pending {} |
| | Deferred-interrupt work bitmap.
|
|
u8 | drawer_id {0} |
|
std::atomic< u64 > | ec_bits {} |
|
u8 | in_rcu_read_side {} |
| | Non-zero if inside read_unlock().
|
|
u32 | ipd_count {0} |
| | Nullifying IPD event counter within sliding window.
|
|
u64 | ipd_window_deadline {0} |
| | Absolute TOD deadline resetting the IPD window.
|
|
u32 | ipi_pending_count {} |
| | Counter of pending IPI completion events.
|
|
u32 | irq_nesting {} |
| | Hardware IRQ/MCCK nesting depth (0 = not in IRQ handler).
|
|
u64 | kernel_stack {} |
| | Top of this CPU's kernel stack (virtual).
|
|
u32 | lock_depth {} |
| | Current qspinlock MCS node allocation depth.
|
|
u32 | nucleus_nesting {} |
| | Synchronous SVC/PC nucleus-call nesting depth.
|
|
pcp_pool | pcp {} |
|
u64 | pgm_fixup_addr {0} |
| | Fixup recovery label address set by try_applying_fixup.
|
|
u32 | pgm_fixup_applied {0} |
| | Non-zero if last PGM applied a fixup (set by pgm handler).
|
|
i32 | preempt_count {} |
| | Preemption depth. >0 means non-preemptible.
|
|
u64 | prefix_phys {} |
| | Physical address of this CPU's 8 KB lowcore.
|
|
zxfoundation::sync::qspinlock::mcs_node | qnodes [zxfoundation::sync::qspinlock::MCS_MAX_LOCK_DEPTH] {} |
|
u64 | rcu_gp_seq {} |
| | Last observed RCU grace-period sequence number.
|
|
void * | rcu_pending_cbs {nullptr} |
| | Head of pending rcu_head list (rcu_head*).
|
|
u32 | rcu_pending_count {0} |
| | Number of callbacks pending.
|
|
u64 | rcu_pending_gp {0} |
| | Grace period at which pending_cbs mature.
|
|
u64 | rcu_qs_seq {} |
| | Last quiescent-state sequence number.
|
|
u8 | smt_id {0} |
| | SMT sibling ID inside core-group, zero when unproven.
|
|
u32 | softirq_pending {} |
| | Bitmask of pending deferred softirqs.
|
|
u8 | topology_evidence {0} |
| | ZXFL_CPU_EVIDENCE_* provenance flags.
|
|
u64 | user_asce {} |
| | User ASCE (CR1 value for user address space).
|
|
u64 | watchdog_heartbeat {0} |
| | Monotonic counter bumped by scheduler_tick().
|