tech-kern archive

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

Re: Xen 3.3: Problem HVM guest



hello,
sorry for the delay, I was offline for the last 3 days

On Thu, Aug 14, 2008 at 11:39:23PM +0200, Christoph Egger wrote:
> I found the bug:
> 
> >>>>> - instrument privpgop_fault() to see if it gets called at all for
> >>>>>   this mapping, and if it's doing the right thing.
> >>>>>   There should be only one page in this object, and the machine
> >>>>>   address should be 0 (pobj->maddr[maddr_i])
> >>>>>
> >>>> Yes, privpgop_fault() is called. It looks like it's called in a
> >>>> loop. npages = 1 and machine address is 0.
> >>>>
> >>> OK, it has the right data. I guess it's called in a loop because
> >>> writing at the page keeps failing.
> >>>
> 
> Writing at the page keeps failing because privpgop_fault()
> does not handle this case:
> 
>          if (pobj->maddr[maddr_i] == 0)
>               continue; /* this has already been flagged as error */
> 
> Removing this makes privpgop_fault() calling pmap_enter_ma()
> and that makes the write access finally succeed and the HVM guest
> starts.
> 
> May I commit this change?

There's a problem with this: IOCTL_PRIVCMD_MMAPBATCH use 0 as an invalid
address, so this test is usefull. The test should be restored, but
with a different magic value. As this is a physical addresss and
is should be page-aligned, maybe we could use 0xfff as the magic value ?

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index