[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Re: Balloon driver crash



On Thursday, June 03, 2010, Ian Campbell wrote:
> > This seems to be about line 343 of drivers/xen/balloon.c in the
> > subroutine  decrease_reservation which is
> >
> >                  for (j = 0; j < balloon_npages; j++, lpfn++, mfn++) {
> >                          if ((discontig_frame_list[j] =
> >pfn_to_mfn(lpfn)) 
> >
> > != mfn)
> >
> >                                  discontig_free = 1;
> > 
> >                          set_phys_to_machine(lpfn, INVALID_P2M_ENTRY);
> >
> > /* here */                  if (!PageHighMem(page)) {
> >
> >                                  ret = HYPERVISOR_update_va_mapping(
> >                                          (unsigned long)__va(lpfn << 
> >
> > PAGE_SHIFT),
> >
> >                                          __pte_ma(0), 0);
> >                                  BUG_ON(ret);
> >                          }
> >                  }
> > 
> >
> > >From what I can tell page is meaningless in this context as it is just 
> > 
> > a temporary variable used in the previous loop, so I would 
> > guess that PageHighMem should be checking something else, or page should 
> > be set somewhere eg. at a guess page=pfn_to_page(lpfn);
> 
> That would be my guess also. CCing Dave McCracken who looks to have
> introduced this code in 0e898d5e "Add hugepage support to balloon
> driver"

Yes, that is definitely an error.  The offending line should be

        if (!PageHighMem(pfn_to_page(lpfn))) {

Dave McCracken
Oracle Corp.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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