From 6b13bf8bbfc014e1ab31498ac5ab2f43abb935ef Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Tue, 27 Oct 2026 23:03:19 +0100 Subject: [PATCH] feat(kernel): 64 MiB user pool (frame table 16384) --- crates/adapter-riscv/src/board.rs | 3 ++- crates/domain/src/memory/frame/mod.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/adapter-riscv/src/board.rs b/crates/adapter-riscv/src/board.rs index 6330923..b47d4f9 100644 --- a/crates/adapter-riscv/src/board.rs +++ b/crates/adapter-riscv/src/board.rs @@ -6,7 +6,8 @@ pub const VIRTIO_SIZE: usize = 0x8000; pub const PLIC_BASE: usize = 0x0C000000; pub const CLINT_BASE: usize = 0x02000000; pub const USER_POOL_BASE: usize = 0x84000000; -pub const USER_POOL_PAGES: usize = 4096; +/// 64 MiB, up to the end of RAM (QEMU virt's default 128 MiB). +pub const USER_POOL_PAGES: usize = 16384; pub const TICK_INTERVAL: u64 = 10_000_000; /// QEMU virt's PLIC lines. diff --git a/crates/domain/src/memory/frame/mod.rs b/crates/domain/src/memory/frame/mod.rs index f7b4f80..60c136f 100644 --- a/crates/domain/src/memory/frame/mod.rs +++ b/crates/domain/src/memory/frame/mod.rs @@ -18,7 +18,7 @@ mod proofs; pub const PAGE_SIZE: usize = 4096; /// Frames the kernel can track. The board's user pool must fit. -pub const MAX_FRAMES: usize = if cfg!(kani) { 6 } else { 4096 }; +pub const MAX_FRAMES: usize = if cfg!(kani) { 6 } else { 16384 }; #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum FrameUse {