tech-kern archive

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

Re: Xen 3.3: Problem HVM guest



On Tue, Aug 19, 2008 at 12:11:21AM +0200, Christoph Egger wrote:
> Manuel Bouyer wrote:
> >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 uses 0 as an invalid
> >address, so this test is useful. The test should be restored, but
> >with a different magic value. As this is a physical address and
> >it should be page-aligned, maybe we could use 0xfff as the magic value ?
> 
> Oh, I see. The page offsets are shifted away before the hypercall, so
> we can assume page alignment.
> 0xfff sounds reasonable, but we should use a #define instead of 
> hardcoding it. That way, the places where the magic value is used are
> easier to find. If a future Xen version changes its semantic again,
> the magic value is easier to adjust.

Sure.

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


Home | Main Index | Thread Index | Old Index