Commit c93f797
committed
Implement per-CPU variables via CPU-local storage (theseus-os#917)
* Only supported on x86_64 currently; aarch64 support to come.
* x86_64 implementation is based on the GS segment register
and the GsBase MSR, as typically used on other OSes.
* Tested working, but not yet used anywhere in Theseus.
Co-authored-by: Klim Tsoutsman <klim@tsoutsman.com> fd5081a1 parent be2611b commit c93f797
544 files changed
Lines changed: 8265 additions & 3720 deletions
File tree
- doc
- ap_start
- apic
- arm_boards
- async_channel
- boot_info
- multiboot2
- captain
- cpu_local
- cpu
- arch
- crate_metadata_serde
- crate_metadata
- crate_swap
- dfqueue
- dreadnought
- future
- early_printer
- exceptions_full
- fault_crate_swap
- fault_log
- framebuffer
- gdt
- gic
- implementors
- core
- clone
- cmp
- convert
- default
- fmt
- hash
- marker
- ops
- deref
- drop
- panic/unwind_safe
- cpu_local
- num_enum
- zerocopy
- interrupts
- arch
- ioapic
- kernel_config/display
- keyboard
- libterm
- madt
- memory_aarch64
- memory_initialization
- memory_structs
- memory_x86_64
- memory
- mod_mgmt
- parse_nano_core
- mouse
- multicore_bringup
- arch
- multiple_heaps
- nano_core
- page_attribute_table
- panic_entry
- pause
- per_cpu
- pmu_x86
- preemption
- ps2
- rendezvous
- runqueue_priority
- runqueue_realtime
- runqueue_round_robin
- scheduler
- sleep
- future
- spawn
- src
- acpi_table
- ap_start
- apic
- arm_boards
- async_channel
- boot_info
- captain
- cpu_local
- cpu
- crate_metadata_serde
- crate_metadata
- crate_swap
- dfqueue
- dreadnought
- early_printer
- exceptions_early
- exceptions_full
- fault_crate_swap
- fault_log
- font
- frame_allocator
- framebuffer
- gdt
- gic
- interrupts
- x86_64
- ioapic
- kernel_config
- keyboard
- libterm
- madt
- memory_aarch64
- memory_initialization
- memory_structs
- memory_x86_64
- memory
- paging
- mod_mgmt
- mouse
- multicore_bringup
- multiple_heaps
- nano_core
- panic_entry
- pause
- per_cpu
- pmu_x86
- preemption
- ps2
- rendezvous
- runqueue_round_robin
- scheduler_priority
- scheduler
- serial_port
- simd_personality
- sleep
- spawn
- task_fs
- task_struct
- task
- tlb_shootdown
- tls_initializer
- tss
- unwind
- vga_buffer
- waker_generic
- waker
- window
- task_struct
- task
- scheduler
- tls_current_task
- tlb_shootdown
- tls_initializer
- tss
- unwind
- vga_buffer
- waker_generic
- waker
- window
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
0 commit comments