ZXFoundation™ 26h2
Loading...
Searching...
No Matches
arch::s390x::cpu::percpu::percpu_data Struct Referenceexport

s390x per-CPU data block embedded in the lowcore at 0x0400. More...

Collaboration diagram for arch::s390x::cpu::percpu::percpu_data:
[legend]

Data Fields

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().

Detailed Description

s390x per-CPU data block embedded in the lowcore at 0x0400.


The documentation for this struct was generated from the following file: