forked from Bananymous/banan-os
Kernel: Add physical memory info to /proc/{pid}/meminfo
This commit is contained in:
@@ -85,7 +85,7 @@ namespace Kernel
|
||||
}
|
||||
}
|
||||
|
||||
BAN::ErrorOr<bool> FileBackedRegion::allocate_page_containing(vaddr_t address)
|
||||
BAN::ErrorOr<bool> FileBackedRegion::allocate_page_containing_impl(vaddr_t address)
|
||||
{
|
||||
ASSERT(contains(address));
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Kernel
|
||||
}
|
||||
}
|
||||
|
||||
BAN::ErrorOr<bool> MemoryBackedRegion::allocate_page_containing(vaddr_t address)
|
||||
BAN::ErrorOr<bool> MemoryBackedRegion::allocate_page_containing_impl(vaddr_t address)
|
||||
{
|
||||
ASSERT(m_type == Type::PRIVATE);
|
||||
|
||||
|
||||
@@ -47,4 +47,12 @@ namespace Kernel
|
||||
return true;
|
||||
}
|
||||
|
||||
BAN::ErrorOr<bool> MemoryRegion::allocate_page_containing(vaddr_t address)
|
||||
{
|
||||
auto ret = allocate_page_containing_impl(address);
|
||||
if (!ret.is_error() && ret.value())
|
||||
m_physical_page_count++;
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -257,14 +257,24 @@ namespace Kernel
|
||||
LockGuard _(m_lock);
|
||||
|
||||
out->page_size = PAGE_SIZE;
|
||||
|
||||
out->virt_pages = 0;
|
||||
out->phys_pages = 0;
|
||||
|
||||
for (auto* thread : m_threads)
|
||||
{
|
||||
out->virt_pages += thread->virtual_page_count();
|
||||
out->phys_pages += thread->physical_page_count();
|
||||
}
|
||||
for (auto& region : m_mapped_regions)
|
||||
{
|
||||
out->virt_pages += region->virtual_page_count();
|
||||
out->phys_pages += region->physical_page_count();
|
||||
}
|
||||
if (m_loadable_elf)
|
||||
{
|
||||
out->virt_pages += m_loadable_elf->virtual_page_count();
|
||||
out->phys_pages += m_loadable_elf->physical_page_count();
|
||||
}
|
||||
}
|
||||
|
||||
BAN::ErrorOr<long> Process::sys_exit(int status)
|
||||
|
||||
Reference in New Issue
Block a user