50c202c592
- Modules and kernel code alike may use DPCPU_DEFINE(), DPCPU_GET(), DPCPU_SET(), etc. akin to the statically defined PCPU_*. Requires only one extra instruction more than PCPU_* and is virtually the same as __thread for builtin and much faster for shared objects. DPCPU variables can be initialized when defined. - Modules are supported by relocating the module's per-cpu linker set over space reserved in the kernel. Modules may fail to load if there is insufficient space available. - Track space available for modules with a one-off extent allocator. Free may block for memory to allocate space for an extent. Reviewed by: jhb, rwatson, kan, sam, grehan, marius, marcel, stas |
||
---|---|---|
.. | ||
clock.c | ||
copyinout.c | ||
interrupt.c | ||
locore.S | ||
machdep.c | ||
mp_cpudep.c | ||
platform_bare.c | ||
pmap.c | ||
swtch.S | ||
trap_subr.S | ||
trap.c | ||
vm_machdep.c |