From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Vrabel Subject: Re: [PATCHv9 0/9] Xen: extend kexec hypercall for use with pv-ops kernels Date: Fri, 11 Oct 2013 10:56:25 +0100 Message-ID: <5257CB49.4030005@citrix.com> References: <1381251310-29449-1-git-send-email-david.vrabel@citrix.com> <20131009152616.GB30387@router-fw-old.local.net-space.pl> <52557E4A.2000500@citrix.com> <20131010154538.GA22446@router-fw-old.local.net-space.pl> <5256D75B.5090504@citrix.com> <20131010212433.GX3626@debian70-amd64.local.net-space.pl> <5257BB9102000078000FA6F2@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5257BB9102000078000FA6F2@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: Daniel Kiper , Keir Fraser , Daniel Kiper , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 11/10/13 07:49, Jan Beulich wrote: >>>> On 10.10.13 at 23:24, Daniel Kiper wrote: >> On Thu, Oct 10, 2013 at 05:35:39PM +0100, David Vrabel wrote: >>> The register state on executing the image is undefined (this is the >>> specified ABI), so there is no need to set the registers to any >>> particular value. >> >> So let's look into the docs. > > "docs"? Yes, we should have some. How about this as a start? --- a/xen/include/public/kexec.h +++ b/xen/include/public/kexec.h @@ -105,7 +105,20 @@ typedef struct xen_kexec_image { * Perform kexec having previously loaded a kexec or kdump kernel * as appropriate. * type == KEXEC_TYPE_DEFAULT or KEXEC_TYPE_CRASH [in] + * + * Control is transferred to the image entry point with the host in + * the following state. + * + * - The image may be executed on any PCPU and all other PCPUs are + * stopped. + * + * - Local interrupts are disabled. + * + * - Register values are undefined. + * + * - The image segments have writeable 1:1 virtual to machine mappings. + * The location of the page tables is undefined and the page table + * frames are not be mapped. */ #define KEXEC_CMD_kexec 0 typedef struct xen_kexec_exec { David