From c650ac482b706474087b133ebe9da161cba3a576 Mon Sep 17 00:00:00 2001 From: DH Date: Sun, 30 Nov 2025 20:38:19 +0300 Subject: [PATCH] orbis: log out of fmem/dmem budget --- kernel/orbis/src/fmem.cpp | 1 + kernel/orbis/src/vmem.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/kernel/orbis/src/fmem.cpp b/kernel/orbis/src/fmem.cpp index 47ed3bdf5..c1b365289 100644 --- a/kernel/orbis/src/fmem.cpp +++ b/kernel/orbis/src/fmem.cpp @@ -68,6 +68,7 @@ orbis::fmem::allocate(std::uint64_t size) { 0, size, allocation, kernel::AllocationFlags::NoMerge, vmem::kPageSize); if (errc != std::errc{}) { + rx::println(stderr, "fmem: failed to allocate {:#x} bytes", size); return {{}, toErrorCode(errc)}; } diff --git a/kernel/orbis/src/vmem.cpp b/kernel/orbis/src/vmem.cpp index b83c987dd..2c26dc2a0 100644 --- a/kernel/orbis/src/vmem.cpp +++ b/kernel/orbis/src/vmem.cpp @@ -445,6 +445,8 @@ std::pair orbis::vmem::mapFile( if (blockFlags & BlockFlags::FlexibleMemory) { if (!budget->acquire(BudgetResource::Fmem, size)) { + rx::println(stderr, "map: fmem budget: failed to allocate {:#x} bytes", + size); return {{}, ErrorCode::INVAL}; } @@ -457,6 +459,8 @@ std::pair orbis::vmem::mapFile( if (blockFlags & BlockFlags::DirectMemory) { if (!budget->acquire(BudgetResource::Dmem, size)) { + rx::println(stderr, "map: dmem budget: failed to allocate {:#x} bytes", + size); return {{}, ErrorCode::INVAL}; } @@ -538,6 +542,10 @@ std::pair orbis::vmem::mapDirect( ScopedBudgetAcquire dmemResource(process->getBudget(), BudgetResource::Dmem, directRange.size()); if (!dmemResource) { + rx::println(stderr, + "mapDirect: dmem budget: failed to allocate {:#x} bytes", + directRange.size()); + return {{}, ErrorCode::INVAL}; } @@ -630,6 +638,9 @@ orbis::vmem::mapFlex(Process *process, std::uint64_t size, ScopedBudgetAcquire fmemResource(process->getBudget(), BudgetResource::Fmem, size); if (!fmemResource) { + rx::println(stderr, "mapFlex: fmem budget: failed to allocate {:#x} bytes", + size); + return {{}, ErrorCode::INVAL}; }