Global Variables
include/global.h View source View on GitHubStructs
Section titled “Structs”globals
Section titled “globals” struct globals (30 fields) source
TODO
almost everything here is RO after init.
I can clone these per-NUMA node and make backpointers via the per-core ‘struct core’ in the G segment register
AKA, split into global and rw_global
§
atomic_bool panicked §
char *root_partition §
struct block_device *root_node_disk §
size_t numa_node_count §
atomic_size_t idle_core_count §
size_t core_count §
struct core **cores cc_counted_by(core_count) §
struct scheduler **schedulers cc_counted_by(core_count) §
struct dpc_cpu *dpc_data cc_counted_by(core_count) §
atomic_size_t thread_count §
struct domain **domains cc_counted_by(domain_count) §
struct domain_buddy *domain_buddies §
struct buddy_free_area buddy_free_area[BUDDY_MAX_ORDER] §
bool scheduler_domains_ready §
struct scheduler_domain *scheduler_domains[TOPOLOGY_LEVEL_MAX] §
atomic_uint64_t pt_epoch §
uint64_t total_pages §
struct movealloc_callback_chain movealloc_chain Per core workqueues
§
struct workqueue **workqueues cc_counted_by(core_count) §
struct turnstile_hash_table *turnstiles §
struct locked_list thread_list