WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] Re: Balloon driver crash
From: Dave McCracken <dcm@xxxxxxxx>
Date: Thu, 3 Jun 2010 17:38:15 -0500
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, M A Young <m.a.young@xxxxxxxxxxxx>
Delivery-date: Thu, 03 Jun 2010 15:41:31 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1275597402.2782.47.camel@xxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <alpine.GSO.2.00.1006031434080.4562@xxxxxxxxxxxxxxxx> <alpine.LFD.2.00.1006032028110.20613@xxxxxxxxxxxxxxx> <1275597402.2782.47.camel@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.13.3 (Linux/2.6.32; KDE/4.4.4; x86_64; ; )
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