kernel
kernel copied to clipboard
Available memory calculation is wrong
When initializing memory management, in src/mm/mod.rs:102
the space occupied by the kernel is subtracted from total_memoty_size()
.
let available_memory = (total_memory_size()
- (kernel_end_address().as_usize() - env::get_ram_address().as_usize())
- reserved_space)
.align_down(LargePageSize::SIZE as usize);
But in src/arch/x86_64/mm/physicalmem.rs:42
it looks like that is already excluded from total_memory_size()
:
let start_address = if m.base_address() <= mm::kernel_start_address().as_u64() {
mm::kernel_end_address()
} else {
VirtAddr(m.base_address())
};
@sarahspberrypi, any thoughts on this? You recently took a look at this code.