[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/2] XEN, X86: Improve semantic support for pagetable_reserve PVOPS
You can add me acked-by, once you do these changes On Wed, 15 Aug 2012, Stefano Stabellini wrote: > On Tue, 14 Aug 2012, Attilio Rao wrote: > > - Allow xen_mapping_pagetable_reserve() to handle a start different from > > pgt_buf_start, but still bigger than it. > > - Add checks to xen_mapping_pagetable_reserve() and > > native_pagetable_reserve() > > for verifying start and end are contained in the range > > [pgt_buf_start, pgt_buf_top]. > > - In xen_mapping_pagetable_reserve(), change printk into pr_debug. > > - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is > > an actual need to do that (or, in other words, if there are actually some > > pages going to switch from RO to RW). > > > > Signed-off-by: Attilio Rao <attilio.rao@xxxxxxxxxx> > > --- > > arch/x86/mm/init.c | 4 ++++ > > arch/x86/xen/mmu.c | 22 ++++++++++++++++++++-- > > 2 files changed, 24 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c > > index e0e6990..c5849b6 100644 > > --- a/arch/x86/mm/init.c > > +++ b/arch/x86/mm/init.c > > @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct > > map_range *mr, unsigned long en > > > > void __init native_pagetable_reserve(u64 start, u64 end) > > { > > + if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top)) > > + panic("Invalid address range: [%llu - %llu] should be a subset > > of [%llu - %llu]\n" > > code style (you can check whether your patch breaks the code style with > scripts/checkpatch.pl) > > > + start, end, PFN_PHYS(pgt_buf_start), > > + PFN_PHYS(pgt_buf_top)); > > memblock_reserve(start, end - start); > > } > > > > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c > > index b65a761..66d73a2 100644 > > --- a/arch/x86/xen/mmu.c > > +++ b/arch/x86/xen/mmu.c > > @@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t > > *base) > > > > static __init void xen_mapping_pagetable_reserve(u64 start, u64 end) > > { > > + u64 begin; > > + > > + begin = PFN_PHYS(pgt_buf_start); > > + > > + if (start < begin || end > PFN_PHYS(pgt_buf_top)) > > + panic("Invalid address range: [%llu - %llu] should be a subset > > of [%llu - %llu]\n" > > code style > > > + start, end, begin, PFN_PHYS(pgt_buf_top)); > > + > > + /* set RW the initial range */ > > + if (start != begin) > > + pr_debug("xen: setting RW the range %llx - %llx\n", > > + begin, start); > > + while (begin < start) { > > + make_lowmem_page_readwrite(__va(begin)); > > + begin += PAGE_SIZE; > > + } > > + > > /* reserve the range used */ > > native_pagetable_reserve(start, end); > > > > /* set as RW the rest */ > > - printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end, > > - PFN_PHYS(pgt_buf_top)); > > + if (end != PFN_PHYS(pgt_buf_top)) > > + pr_debug("xen: setting RW the range %llx - %llx\n", > > + end, PFN_PHYS(pgt_buf_top)); > > while (end < PFN_PHYS(pgt_buf_top)) { > > make_lowmem_page_readwrite(__va(end)); > > end += PAGE_SIZE; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |