On Tue, 2015-12-01 at 10:21 +0000, Wei Liu wrote:
> On Tue, Dec 01, 2015 at 10:04:38AM +0000, Ian Campbell wrote:
> > On Tue, 2015-12-01 at 10:01 +0000, Ian Campbell wrote:
> > > 
> > > > > I'll try that and your suggested patch below as well once I get
> > > > > to the
> > > > > office this morning.
> > > > 
> > > > Thanks.
> > > 
> > > The BUG_ON doesn't seem to be triggering. I'm not seeing pfn==0x4d80
> > > going
> > > anywhere near kexec_allocate, the highest is 0x4c0f.
> > > 
> > > Maybe the issue is that the ->allocate hook (==kexec_allocate) isn't
> > > called
> > > from xc_dom_alloc_pad?
> > 
> > That seems like it might be the answer, this patchlet fixes it for me:
> > 
> > diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
> > index 5d6c3ba..6d3f97a 100644
> > --- a/tools/libxc/xc_dom_core.c
> > +++ b/tools/libxc/xc_dom_core.c
> > @@ -579,7 +579,13 @@ static int xc_dom_alloc_pad(struct xc_dom_image
> > *dom, xen_vaddr_t boundary)
> >      }
> >      pages = (boundary - dom->virt_alloc_end) / page_size;
> >  
> > -    return xc_dom_chk_alloc_pages(dom, "padding", pages);
> > +    if ( xc_dom_chk_alloc_pages(dom, "padding", pages) )
> > +        return -1;
> > +
> > +    if (dom->allocate)
> > +        dom->allocate(dom);
> > +
> > +    return 0;
> >  }
> >  
> >  int xc_dom_alloc_segment(struct xc_dom_image *dom,
> 
> Currently there are three places that call dom->allocate (if we include
> the call in the proposed diff). I think it would be better if we push
> dom->allocate down to xc_dom_chk_alloc_pages, then refactor
> xc_dom_alloc_page to use xc_dom_chk_alloc_pages.

Yes, I was thinking along the same lines after the quick hack above
confirmed it.

> Just some thought after a quick look at the code. I will see what I can
> do after confirming this is the culprit.

I don't mind finishing this one off (although I'm also equally happy to
hand it over ;-))

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to