Re: [PATCH 03/11] xen: Introduce architecture independent data forkexec/kdump

From: Daniel Kiper
Date: Mon Oct 01 2012 - 09:34:23 EST


On Fri, Sep 28, 2012 at 12:10:17PM -0400, Konrad Rzeszutek Wilk wrote:
> On Thu, Sep 27, 2012 at 08:06:30PM +0200, Daniel Kiper wrote:
> > Introduce architecture independent constants and structures
>
> Don't you mean 'dependent constants'?

Right.

> > required by Xen kexec/kdump implementation.
> >
> > Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx>
> > ---
> > include/xen/interface/xen.h | 33 +++++++++++++++++++++++++++++++++
> > 1 files changed, 33 insertions(+), 0 deletions(-)
> >
> > diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
> > index 0801468..ac19f9e 100644
> > --- a/include/xen/interface/xen.h
> > +++ b/include/xen/interface/xen.h
> > @@ -58,6 +58,7 @@
> > #define __HYPERVISOR_event_channel_op 32
> > #define __HYPERVISOR_physdev_op 33
> > #define __HYPERVISOR_hvm_op 34
> > +#define __HYPERVISOR_kexec_op 37
> > #define __HYPERVISOR_tmem_op 38
> >
> > /* Architecture-specific hypercall definitions. */
> > @@ -232,7 +233,39 @@ DEFINE_GUEST_HANDLE_STRUCT(mmuext_op);
> > #define VMASST_TYPE_pae_extended_cr3 3
> > #define MAX_VMASST_TYPE 3
> >
> > +/*
> > + * Commands to HYPERVISOR_kexec_op().
> > + */
> > +#define KEXEC_CMD_kexec 0
> > +#define KEXEC_CMD_kexec_load 1
> > +#define KEXEC_CMD_kexec_unload 2
> > +#define KEXEC_CMD_kexec_get_range 3
> > +
> > +/*
> > + * Memory ranges for kdump (utilized by HYPERVISOR_kexec_op()).
> > + */
> > +#define KEXEC_RANGE_MA_CRASH 0
> > +#define KEXEC_RANGE_MA_XEN 1
> > +#define KEXEC_RANGE_MA_CPU 2
> > +#define KEXEC_RANGE_MA_XENHEAP 3
> > +#define KEXEC_RANGE_MA_BOOT_PARAM 4
> > +#define KEXEC_RANGE_MA_EFI_MEMMAP 5
> > +#define KEXEC_RANGE_MA_VMCOREINFO 6
> > +
> > #ifndef __ASSEMBLY__
> > +struct xen_kexec_exec {
> > + int type;
> > +};
> > +
> > +struct xen_kexec_range {
> > + int range;
> > + int nr;
> > + unsigned long size;
> > + unsigned long start;
> > +};
>
> Might want to include an little blurb saying what we expect
> in case of running a 32-bit domain on a 64-bit hypervisor
> where the start might be past 4GB?

This is not true. All needed pages used by i386 relocate kernel
code are always below 4 GiB.

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