Re: [Xen-devel] [PATCH v4] xen PVonHVM: move shared_info to reserved memory area

Olaf Hering
2012-10-30T16:30:11Z

On Tue, Oct 30, Jan Beulich wrote:

> >>> On 30.10.12 at 16:47, Olaf Hering <olaf@aepfle.de> wrote:
> > This is a respin of 00e37bdb0113a98408de42db85be002f21dbffd3
> > ("xen PVonHVM: move shared_info to MMIO before kexec").
> >
> > Currently kexec in a PVonHVM guest fails with a triple fault because the
> > new kernel overwrites the shared info page. The exact failure depends on
> > the size of the kernel image. This patch moves the pfn from RAM into an
> > E820 reserved memory area.
>
> One thing that occurred to me only now: How is this relocation
> of the shared info going to help with the vCPU info placement?
> You can't undo this, nor can you re-register these areas to be
> put in a different location (of course, both of there could be
> implemented in the hypervisor). Yet the hypervisor writes to
> some of these areas' fields as much as it does write to the
> shared info structure itself.

Maybe the wording "move" is a bit misleading in this patch.

A single "move" of the actual pfn happens during boot, that is when a
PVonHVM enabled guest kernel does the XENMAPSPACE_shared_info operation.
It moves the pfn of the shared info page from the location the hvmloader
initially configured to this new pfn (0xfffff -> 0xfe700).
Another relocation does not happen at runtime, AFAIK.

The "move" which this patch does is more a source level move in the
sense that RESERVE_BRK (which is somewhere in the middle of RAM) is not
used anymore. Instead a pfn in an E820_Reserved area is used, see
xen-unstable changeset 26108:79185dcdf558 "hvmloader: Reserve
FE700000-FE800000 in physical memory map for guest use."

Olaf