On Tue, 2012-10-23 at 19:12 +0100, Konrad Rzeszutek Wilk wrote:
[...]
> +             /* GUEST_GDTR_BASE and */
> +             ctxt->u.pvh.gdtaddr = (unsigned long)gdt;
> +             /* GUEST_GDTR_LIMIT in the VMCS. */
> +             ctxt->u.pvh.gdtsz = (unsigned long)(GDT_SIZE - 1);
> +
> [...]
> -             ctxt->gdt_frames[0] = gdt_mfn;
> -             ctxt->gdt_ents      = GDT_ENTRIES;
> +             ctxt->u.pv.gdt_frames[0] = gdt_mfn;
> +             ctxt->u.pv.gdt_ents      = GDT_ENTRIES;

I guess I've been told and forgotten but why does this need to differ
between PV and PVH? Can the hypervisor not take the gfn in gdt_frames[0]
= gdt_mfn and figure out the gdtaddr from it? Is this because n the PV
case the H/V loads the GDT with the address of its own mapping of the
gdt_frames but in the PVH case we have no such mapping because the
pagetables don't have a Xen region in them?

It's worthy of a comment in any case.

[...]
> +     /* PVH TBD/FIXME: future work */
[...]
> +             /* PVH: TBD/FIXME: debug and fix eio map to work with pvh */

Do we really need these TODOs inline in the code? Especially in generic
code.

Ian.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to