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/
Home Products Support Community News


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

To: Dave McCracken <dcm@xxxxxxxx>
Subject: Re: [Xen-devel] Re: Balloon driver crash
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Tue, 08 Jun 2010 15:48:49 -0700
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Ian Campbell <Ian.Campbell@xxxxxxxxxx>, M A Young <m.a.young@xxxxxxxxxxxx>
Delivery-date: Tue, 08 Jun 2010 15:49:30 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <201006031738.15635.dcm@xxxxxxxx>
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> <201006031738.15635.dcm@xxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20100430 Fedora/3.0.4-2.fc12 Lightning/1.0b2pre Thunderbird/3.0.4
On 06/03/2010 03:38 PM, Dave McCracken wrote:
> 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 << 
>>>                                          __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))) {

Actually it looks like this was fixed on the xen/hugepage-balloon a long
time ago, but I guess that branch wasn't merged across to xen/next
because it was based on xen/master and so awkward to merge into the
.32-based and later branches.

I need to check how the current hugepage support has made it into the
.32 based tree, assuming it has.  It will take a bit of git archeology.


Xen-devel mailing list