[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/3] xen/riscv: introduce setup_mm()
On 31.10.2024 14:19, oleksii.kurochko@xxxxxxxxx wrote: >>>>> +void __init setup_mm(void) >>>>> +{ >>>>> + const struct membanks *banks = bootinfo_get_mem(); >>>>> + paddr_t ram_start = INVALID_PADDR; >>>>> + paddr_t ram_end = 0; >>>>> + paddr_t ram_size = 0; >>>>> + unsigned int i; >>>>> + >>>>> + /* >>>>> + * We need some memory to allocate the page-tables used >>>>> for >>>>> the directmap >>>>> + * mappings. But some regions may contain memory already >>>>> allocated >>>>> + * for other uses (e.g. modules, reserved-memory...). >>>>> + * >>>>> + * For simplicity, add all the free regions in the boot >>>>> allocator. >>>>> + */ >>>>> + populate_boot_allocator(); >>>>> + >>>>> + total_pages = 0; >>>>> + >>>>> + for ( i = 0; i < banks->nr_banks; i++ ) >>>>> + { >>>>> + const struct membank *bank = &banks->bank[i]; >>>>> + paddr_t bank_end = bank->start + bank->size; >>>>> + >>>>> + ram_size += ROUNDDOWN(bank->size, PAGE_SIZE); >>>> >>>> As before - if a bank doesn't cover full pages, this may give the >>>> impression >>>> of there being more "total pages" than there are. >>> Since it rounds down to PAGE_SIZE, if ram_start is 2K and the total >>> size of a bank is 11K, ram_size will end up being 8K, so the "total >>> pages" will cover less RAM than the actual size of the RAM bank. >> >> ram_start at 2k but bank size being 13k would yield 2 usable pages >> (first partial page of 2k unusable and last partial page of 3k >> unusable), yet ram_size of 12k (3 pages). You need to consider the >> common case; checking things work for a randomly chosen example isn't >> enough. > Then I have to check separately the start and end of bank and check if > ram_size should be reduced in case if the start or end isn't properly > aligned. All I think you need to do is align bank start up to a page boundary and align bank end down to a page boundary. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |