#define CIF_NOHZ_DELAY 2 /* delay HZ disable for a tick */ #define CIF_ENABLED_WAIT 5 /* in enabled wait state */ #define CIF_MCCK_GUEST 6 /* machine check happening in guest */ #define CIF_DEDICATED_CPU 7 /* this CPU is dedicated */
/* * Test CIF flag of another CPU. The caller needs to ensure that * CPU hotplug can not happen, e.g. by disabling preemption.
*/ static __always_inline bool test_cpu_flag_of(int flag, int cpu)
{ return test_bit(flag, &per_cpu(pcpu_devices, cpu).flags);
}
/* * Thread structure
*/ struct thread_struct { unsignedint acrs[NUM_ACRS]; unsignedlong ksp; /* kernel stack pointer */ unsignedlong user_timer; /* task cputime in user space */ unsignedlong guest_timer; /* task cputime in kvm guest */ unsignedlong system_timer; /* task cputime in kernel space */ unsignedlong hardirq_timer; /* task cputime in hardirq context */ unsignedlong softirq_timer; /* task cputime in softirq context */ const sys_call_ptr_t *sys_call_table; /* system call table address */ union teid gmap_teid; /* address and flags of last gmap fault */ unsignedint gmap_int_code; /* int code of last gmap fault */ int ufpu_flags; /* user fpu flags */ int kfpu_flags; /* kernel fpu flags */
/* Per-thread information related to debugging */ struct per_regs per_user; /* User specified PER registers */ struct per_event per_event; /* Cause of the last PER trap */ unsignedlong per_flags; /* Flags to control debug behavior */ unsignedint system_call; /* system call number in signal */ unsignedlong last_break; /* last breaking-event-address. */ /* pfault_wait is used to block the process on a pfault event */ unsignedlong pfault_wait; struct list_head list; /* cpu runtime instrumentation */ struct runtime_instr_cb *ri_cb; struct gs_cb *gs_cb; /* Current guarded storage cb */ struct gs_cb *gs_bc_cb; /* Broadcast guarded storage cb */ struct pgm_tdb trap_tdb; /* Transaction abort diagnose block */ struct fpu ufpu; /* User FP and VX register save area */ struct fpu kfpu; /* Kernel FP and VX register save area */
};
/* Flag to disable transactions. */ #define PER_FLAG_NO_TE 1UL /* Flag to enable random transaction aborts. */ #define PER_FLAG_TE_ABORT_RAND 2UL /* Flag to specify random transaction abort mode: * - abort each transaction at a random instruction before TEND if set. * - abort random transactions at a random instruction if cleared.
*/ #define PER_FLAG_TE_ABORT_RAND_TEND 4UL
/* * Set PSW mask to specified value, while leaving the * PSW addr pointing to the next instruction.
*/ static __always_inline void __load_psw_mask(unsignedlong mask)
{
psw_t psw __uninitialized; unsignedlong addr;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.