vm: add trace output
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user