[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.