perf(kernel): linked cap tree, translate-based page lookup, next-fit frames/heap, targeted dequeue; host benches

This commit is contained in:
2026-10-27 01:33:26 +01:00
parent 19aeabd86d
commit 2a8a5b0c27
24 changed files with 923 additions and 200 deletions

View File

@@ -449,7 +449,7 @@ impl<P: Platform> Kernel<P> {
self.wake(t, SyscallResult::Received(Delivery::signal(bits)));
}
SignalEffect::WakeBound(t, bits) => {
self.endpoints.remove_thread_from_all(t);
self.leave_queue(t);
self.wake(t, SyscallResult::Received(Delivery::signal(bits)));
}
SignalEffect::Stored => {}

View File

@@ -27,8 +27,14 @@ impl<P: Platform> Kernel<P> {
self.find_free_heap_range(pid, pages)
.ok_or(KernelError::OutOfMemory)
.and_then(|va| {
self.map_fresh_range(pid, va, pages, PagePerms::ReadWrite)
.map(|()| SyscallResult::Value(va.raw()))
self.map_fresh_range(pid, va, pages, PagePerms::ReadWrite)?;
self.advance_heap_cursor(
pid,
VirtualAddress::from_raw(
va.raw() + pages * domain::memory::frame::PAGE_SIZE,
),
);
Ok(SyscallResult::Value(va.raw()))
}),
)
}