vm: add trace output

This commit is contained in:
2026-02-21 11:22:51 +00:00
parent e1e025ab6a
commit 855440f584
2 changed files with 35 additions and 5 deletions

View File

@@ -19,10 +19,11 @@
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
*/
#include <limits.h>
#include <kernel/libc/string.h>
#include <kernel/memblock.h>
#include <kernel/printk.h>
#include <kernel/types.h>
#include <limits.h>
#include <stdbool.h>
#define MIN(a, b) ((a) < (b) ? (a) : (b))
@@ -447,10 +448,10 @@ void __next_memory_region(
}
/* we want the area that is overlapped by both
region M (m_start - m_end) : The region defined
as system memory. region R (r_start - r_end) : The
region defined as free / outside of any reserved
regions.
- region M (m_start - m_end) : The region defined
as system memory.
- region R (r_start - r_end) : The region defined as
free / outside of any reserved regions.
*/
it->it_base = MAX(m_start, r_start);
it->it_limit = MIN(m_end, r_end);
@@ -497,3 +498,28 @@ void *memblock_phys_to_virt(phys_addr_t p)
{
return (void *)(p + memblock.m_voffset);
}
#ifdef TRACE
static void memblock_type_dump(struct memblock_type *type)
{
tracek("%s:", type->name);
for (size_t i = 0; i < type->count; i++) {
tracek(" [%zx-%zx]",
type->regions[i].base,
type->regions[i].limit);
}
}
extern void memblock_dump(void)
{
memblock_type_dump(&memblock.memory);
memblock_type_dump(&memblock.reserved);
tracek("free:");
struct memblock_iter it;
for_each_free_mem_range(&it, 0, ADDR_MAX)
{
tracek(" [%zx-%zx]", it.it_base, it.it_limit);
}
}
#endif

View File

@@ -286,6 +286,10 @@ extern struct vm_page *vm_object_alloc_page(
return NULL;
}
tracek("vm-object: [%s] alloc offset %zx -> page %zx",
vo->vo_name,
offset,
vm_page_get_paddr(page));
page->p_vmo_offset = offset;
vo->vo_pages.b_root = &page->p_bnode;
btree_insert_fixup(&vo->vo_pages, &page->p_bnode);