aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common_kvm_amd64.h
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2026-01-23 18:08:33 +0100
committerAlexander Potapenko <glider@google.com>2026-01-26 09:30:24 +0000
commit4589df0fc1eb4bcb09ee65d33c34136a1372bdb2 (patch)
treee826ff6ced09de6110222dd7d81a0084496b5150 /executor/common_kvm_amd64.h
parentef506c965c182fd79dbaf25d23ca017dd7fc4177 (diff)
executor: introduce global state page for SYZOS
Reserve a dedicated 4KB page at X86_SYZOS_ADDR_GLOBALS (0x17F000) to store global state shared across the SYZOS L1 guest environment. This region is required to store the state of the guest-side memory allocator (specifically the allocation offset and total size of the unused heap), enabling thread-safe dynamic memory allocation for nested L2 page tables.
Diffstat (limited to 'executor/common_kvm_amd64.h')
-rw-r--r--executor/common_kvm_amd64.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/executor/common_kvm_amd64.h b/executor/common_kvm_amd64.h
index 06efc7f20..12bc8958d 100644
--- a/executor/common_kvm_amd64.h
+++ b/executor/common_kvm_amd64.h
@@ -237,6 +237,8 @@ static const struct mem_region syzos_mem_regions[] = {
{X86_SYZOS_ADDR_BOOT_ARGS, 1, 0},
// Dynamic Page Table Pool.
{X86_SYZOS_ADDR_PT_POOL, X86_SYZOS_PT_POOL_SIZE, 0},
+ // Global State Page.
+ {X86_SYZOS_ADDR_GLOBALS, 1, 0},
// SMRAM memory.
{X86_SYZOS_ADDR_SMRAM, 10, 0},
// Unmapped region to trigger a page faults for uexits etc.