mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-22 04:18:18 +00:00
base: replace dump utilities in Allocator_avl
Replace 'dump()' debug utilities within Allocator_avl with Output::print equivalents, and use the new Avl_tree::for_each utility to simplify the implementation. Ref #2159
This commit is contained in:
parent
1542d92165
commit
e1ec39e476
@ -440,13 +440,13 @@ Platform::Platform() :
|
||||
_setup_irq_alloc();
|
||||
_setup_rom();
|
||||
|
||||
log(":ram_alloc: "); _ram_alloc()->dump_addr_tree();
|
||||
log(":region_alloc: "); _region_alloc()->dump_addr_tree();
|
||||
log(":io_mem: "); _io_mem_alloc()->dump_addr_tree();
|
||||
log(":io_port: "); _io_port_alloc()->dump_addr_tree();
|
||||
log(":irq: "); _irq_alloc()->dump_addr_tree();
|
||||
log(":ram_alloc: ", _ram_alloc);
|
||||
log(":region_alloc: ", _region_alloc);
|
||||
log(":io_mem: ", _io_mem_alloc);
|
||||
log(":io_port: ", _io_port_alloc);
|
||||
log(":irq: ", _irq_alloc);
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
log(":core ranges: "); _core_address_ranges()()->dump_addr_tree();
|
||||
log(":core ranges: ", _core_address_ranges);
|
||||
|
||||
Fiasco::l4_threadid_t myself = Fiasco::l4_myself();
|
||||
|
||||
|
@ -446,13 +446,13 @@ Platform::Platform() :
|
||||
_setup_irq_alloc();
|
||||
_setup_rom();
|
||||
|
||||
log(":ram_alloc: "); _ram_alloc()->dump_addr_tree();
|
||||
log(":region_alloc: "); _region_alloc()->dump_addr_tree();
|
||||
log(":io_mem: "); _io_mem_alloc()->dump_addr_tree();
|
||||
log(":io_port: "); _io_port_alloc()->dump_addr_tree();
|
||||
log(":irq: "); _irq_alloc()->dump_addr_tree();
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
log(":core ranges: "); _core_address_ranges()()->dump_addr_tree();
|
||||
log(":ram_alloc: ", _ram_alloc);
|
||||
log(":region_alloc: ", _region_alloc);
|
||||
log(":io_mem: ", _io_mem_alloc);
|
||||
log(":io_port: ", _io_port_alloc);
|
||||
log(":irq: ", _irq_alloc);
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
log(":core ranges: ", _core_address_ranges());
|
||||
|
||||
Core_cap_index* pdi =
|
||||
reinterpret_cast<Core_cap_index*>(cap_map()->insert(_cap_id_alloc.alloc(), Fiasco::L4_BASE_TASK_CAP));
|
||||
|
@ -147,30 +147,12 @@ Platform::Platform()
|
||||
_init_additional();
|
||||
|
||||
/* print ressource summary */
|
||||
log("Core virtual memory allocator");
|
||||
log("---------------------");
|
||||
(*_core_mem_alloc.virt_alloc())()->dump_addr_tree();
|
||||
log("\n");
|
||||
log("RAM memory allocator");
|
||||
log("---------------------");
|
||||
(*_core_mem_alloc.phys_alloc())()->dump_addr_tree();
|
||||
log("");
|
||||
log("IO memory allocator");
|
||||
log("-------------------");
|
||||
_io_mem_alloc()->dump_addr_tree();
|
||||
log("");
|
||||
log("IO port allocator");
|
||||
log("-------------------");
|
||||
_io_port_alloc()->dump_addr_tree();
|
||||
log("");
|
||||
log("IRQ allocator");
|
||||
log("-------------------");
|
||||
_irq_alloc()->dump_addr_tree();
|
||||
log("");
|
||||
log("ROM filesystem");
|
||||
log("--------------");
|
||||
_rom_fs.print_fs();
|
||||
log("");
|
||||
log(":virt_alloc: ", *_core_mem_alloc.virt_alloc());
|
||||
log(":phys_alloc: ", *_core_mem_alloc.phys_alloc());
|
||||
log(":io_mem_alloc: ", _io_mem_alloc);
|
||||
log(":io_port_alloc: ", _io_port_alloc);
|
||||
log(":irq_alloc: ", _irq_alloc);
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
}
|
||||
|
||||
|
||||
|
@ -628,10 +628,10 @@ Platform::Platform() :
|
||||
_gsi_base_sel = (hip->mem_desc_offset - hip->cpu_desc_offset) / hip->cpu_desc_size;
|
||||
|
||||
if (verbose_boot_info) {
|
||||
log(":virt_alloc: "); (*_core_mem_alloc.virt_alloc())()->dump_addr_tree();
|
||||
log(":phys_alloc: "); (*_core_mem_alloc.phys_alloc())()->dump_addr_tree();
|
||||
log(":io_mem_alloc: "); _io_mem_alloc()->dump_addr_tree();
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
log(":virt_alloc: ", *_core_mem_alloc.virt_alloc());
|
||||
log(":phys_alloc: ", *_core_mem_alloc.phys_alloc());
|
||||
log(":io_mem_alloc: ", _io_mem_alloc);
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
}
|
||||
|
||||
/* add capability selector ranges to map */
|
||||
|
@ -185,11 +185,11 @@ Platform::Platform() :
|
||||
|
||||
init_log();
|
||||
|
||||
log(":phys_alloc: "); (*_core_mem_alloc.phys_alloc())()->dump_addr_tree();
|
||||
log(":virt_alloc: "); (*_core_mem_alloc.virt_alloc())()->dump_addr_tree();
|
||||
log(":io_mem: "); _io_mem_alloc()->dump_addr_tree();
|
||||
log(":io_port: "); _io_port_alloc()->dump_addr_tree();
|
||||
log(":irq: "); _irq_alloc()->dump_addr_tree();
|
||||
log(":phys_alloc: ", *_core_mem_alloc.phys_alloc());
|
||||
log(":virt_alloc: ", *_core_mem_alloc.virt_alloc());
|
||||
log(":io_mem: ", _io_mem_alloc);
|
||||
log(":io_port: ", _io_port_alloc);
|
||||
log(":irq: ", _irq_alloc);
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
|
||||
/* setup task object for core task */
|
||||
|
@ -630,13 +630,13 @@ Platform::Platform() :
|
||||
* hold the meta data for the ROM modules as initialized by '_setup_rom'.
|
||||
*/
|
||||
if (verbose) {
|
||||
log(":ram_alloc: "); _ram_alloc()->dump_addr_tree();
|
||||
log(":region_alloc: "); _region_alloc()->dump_addr_tree();
|
||||
log(":io_mem: "); _io_mem_alloc()->dump_addr_tree();
|
||||
log(":io_port: "); _io_port_alloc()->dump_addr_tree();
|
||||
log(":irq: "); _irq_alloc()->dump_addr_tree();
|
||||
log(":ram_alloc: ", _ram_alloc);
|
||||
log(":region_alloc: ", _region_alloc);
|
||||
log(":io_mem: ", _io_mem_alloc);
|
||||
log(":io_port: ", _io_port_alloc);
|
||||
log(":irq: ", _irq_alloc);
|
||||
log(":rom_fs: "); _rom_fs.print_fs();
|
||||
log(":core ranges: "); _core_address_ranges()()->dump_addr_tree();
|
||||
log(":core ranges: ", _core_address_ranges);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -438,10 +438,10 @@ Platform::Platform()
|
||||
log("VM area at ", Hex_range<addr_t>(_vm_base, _vm_size));
|
||||
|
||||
if (verbose_boot_info) {
|
||||
log(":phys_alloc: "); (*_core_mem_alloc.phys_alloc())()->dump_addr_tree();
|
||||
log(":unused_phys_alloc:"); _unused_phys_alloc()->dump_addr_tree();
|
||||
log(":virt_alloc: "); (*_core_mem_alloc.virt_alloc())()->dump_addr_tree();
|
||||
log(":io_mem_alloc: "); _io_mem_alloc()->dump_addr_tree();
|
||||
log(":phys_alloc: ", *_core_mem_alloc.phys_alloc());
|
||||
log(":unused_phys_alloc:", _unused_phys_alloc);
|
||||
log(":virt_alloc: ", *_core_mem_alloc.virt_alloc());
|
||||
log(":io_mem_alloc: ", _io_mem_alloc);
|
||||
}
|
||||
|
||||
_init_rom_modules();
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
#include <base/allocator.h>
|
||||
#include <base/tslab.h>
|
||||
#include <base/output.h>
|
||||
#include <util/avl_tree.h>
|
||||
#include <util/misc_math.h>
|
||||
|
||||
@ -150,20 +151,6 @@ class Genode::Allocator_avl_base : public Range_allocator
|
||||
* Return sum of available memory in subtree
|
||||
*/
|
||||
size_t avail_in_subtree(void);
|
||||
|
||||
/**
|
||||
* Debug hook
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
void dump();
|
||||
|
||||
/**
|
||||
* Debug hook
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
void dump_dot(int indent = 0);
|
||||
};
|
||||
|
||||
private:
|
||||
@ -252,12 +239,7 @@ class Genode::Allocator_avl_base : public Range_allocator
|
||||
*/
|
||||
bool any_block_addr(addr_t *out_addr);
|
||||
|
||||
/**
|
||||
* Debug hook
|
||||
*
|
||||
* \noapi
|
||||
*/
|
||||
void dump_addr_tree(Block *addr_node = 0);
|
||||
void print(Output &out) const;
|
||||
|
||||
|
||||
/*******************************
|
||||
|
@ -1,58 +1,37 @@
|
||||
/*
|
||||
* \brief Allocator dump helpers
|
||||
* \brief Allocator AVL dump
|
||||
* \author Norman Feske
|
||||
* \author Stefan Kalkowski
|
||||
* \date 2009-10-15
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2009-2013 Genode Labs GmbH
|
||||
* Copyright (C) 2009-2016 Genode Labs GmbH
|
||||
*
|
||||
* This file is part of the Genode OS framework, which is distributed
|
||||
* under the terms of the GNU General Public License version 2.
|
||||
*/
|
||||
|
||||
#include <base/log.h>
|
||||
#include <base/allocator_avl.h>
|
||||
|
||||
using namespace Genode;
|
||||
|
||||
|
||||
void Allocator_avl_base::Block::dump()
|
||||
void Genode::Allocator_avl_base::print(Genode::Output & out) const
|
||||
{
|
||||
log(" Block: [", Hex(addr()), ",", Hex(addr() + size()), "] ",
|
||||
"size=", Hex(size()), " avail=", Hex(avail()), " ",
|
||||
"max_avail=", Hex(max_avail()));
|
||||
}
|
||||
|
||||
|
||||
void Allocator_avl_base::dump_addr_tree(Block *addr_node)
|
||||
{
|
||||
bool top = false;
|
||||
static unsigned long mem_size;
|
||||
static unsigned long mem_avail;
|
||||
|
||||
if (addr_node == 0) {
|
||||
addr_node = _addr_tree.first();
|
||||
|
||||
log("Allocator ", this, " dump:");
|
||||
mem_size = mem_avail = 0;
|
||||
top = true;
|
||||
}
|
||||
|
||||
if (!addr_node) return;
|
||||
|
||||
if (addr_node->child(0))
|
||||
dump_addr_tree(addr_node->child(0));
|
||||
|
||||
Block *b = (Block *)addr_node;
|
||||
b->dump();
|
||||
mem_size += b->size();
|
||||
mem_avail += b->avail();
|
||||
|
||||
if (addr_node->child(1))
|
||||
dump_addr_tree(addr_node->child(1));
|
||||
|
||||
if (top)
|
||||
log(" => mem_size=", mem_size, " (", mem_size / 1024 / 1024, " MB) ",
|
||||
"/ mem_avail=", mem_avail, " (", mem_avail / 1024 / 1024, " MB)");
|
||||
using Genode::print;
|
||||
unsigned long mem_size = 0;
|
||||
unsigned long mem_avail = 0;
|
||||
|
||||
print(out, "Allocator ", this, " dump:\n");
|
||||
|
||||
_addr_tree.for_each([&] (Block const & b)
|
||||
{
|
||||
print(out, " Block: [", Hex(b.addr()), ",", Hex(b.addr() + b.size()),
|
||||
"] ", "size=", Hex(b.size()), " avail=", Hex(b.avail()), " ",
|
||||
"max_avail=", Hex(b.max_avail()), "\n");
|
||||
mem_size += b.size();
|
||||
mem_avail += b.avail();
|
||||
});
|
||||
|
||||
print(out, " => mem_size=", mem_size, " (", mem_size / 1024 / 1024 ,
|
||||
" MB) / mem_avail=" , mem_avail , " (" , mem_avail / 1024 / 1024 ,
|
||||
" MB)\n");
|
||||
}
|
||||
|
@ -60,6 +60,8 @@ class Genode::Synced_range_allocator : public Range_allocator
|
||||
Guard operator () () { return _synced_object(); }
|
||||
Guard operator () () const { return _synced_object(); }
|
||||
|
||||
void print(Output &out) const { _synced_object()->print(out); }
|
||||
|
||||
|
||||
/*************************
|
||||
** Allocator interface **
|
||||
|
Loading…
Reference in New Issue
Block a user