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

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



On Thu, 3 Jun 2010, 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 <<

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.

I have tested the corrected line and it does fix the crash I was seeing.

        Michael Young

_______________________________________________
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®.