[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 9/9] xen/ppc: mm-radix: Allocate all paging structures at runtime
On 3/14/24 5:15 PM, Shawn Anastasio wrote: > In the initial mm-radix implementation, the in-memory partition and > process tables required to configure the MMU, as well as the page tables > themselves were all allocated statically since the boot allocator was > not yet available. > > Now that it is, allocate these structures at runtime and bump the size > of the Process Table to its maximum supported value (on POWER9). After some additional testing, I realized that it is necessary to clear the memory allocated for these structures before using it, so a small follow-up is necessary. I will include this with v4 if it is necessary. diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c index edae41e0be..f425185259 100644 --- a/xen/arch/ppc/mm-radix.c +++ b/xen/arch/ppc/mm-radix.c @@ -37,6 +37,8 @@ static mfn_t __initdata max_alloc_mfn = {0}; * minimum mfns that have been allocated. This information is used by * setup_initial_mapping to include the allocated pages in the initial * page mapping. + * + * Additionally, allocated pages are zeroed before return. */ static mfn_t __init initial_page_alloc(unsigned long nr_pfns, unsigned long pfn_align) @@ -49,6 +51,8 @@ static mfn_t __init initial_page_alloc(unsigned long nr_pfns, min_alloc_mfn = _mfn(min(mfn_x(min_alloc_mfn), mfn_x(mfn_first))); max_alloc_mfn = _mfn(max(mfn_x(max_alloc_mfn), mfn_x(mfn_last))); + memset(__va(mfn_to_maddr(mfn_first)), 0, nr_pfns << PAGE_SHIFT); + return mfn_first; }
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |