s390x per-CPU data block embedded in the lowcore at 0x0400. More...
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(). | |
s390x per-CPU data block embedded in the lowcore at 0x0400.