public inbox for kexec@lists.infradead.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Daniel Kiper <daniel.kiper@oracle.com>
Cc: "kexec@lists.infradead.org" <kexec@lists.infradead.org>,
	David Vrabel <david.vrabel@citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [Xen-devel] [PATCH 5/8] kexec: extend hypercall with improved load/unload ops
Date: Mon, 11 Mar 2013 21:18:54 +0000	[thread overview]
Message-ID: <513E4A3E.3060405@citrix.com> (raw)
In-Reply-To: <20130311204541.GA13567@debian70-amd64.local.net-space.pl>

On 11/03/13 20:45, Daniel Kiper wrote:
> On Mon, Mar 11, 2013 at 02:27:26PM +0000, Andrew Cooper wrote:
>> On 11/03/13 14:13, Daniel Kiper wrote:
>>> On Mon, Mar 11, 2013 at 01:43:02PM +0000, David Vrabel wrote:
>>>> On 11/03/13 13:30, Daniel Kiper wrote:
>>>>> On Mon, Mar 11, 2013 at 01:21:30PM +0000, David Vrabel wrote:
>>>>>> On 11/03/13 11:17, Daniel Kiper wrote:
>>>>>>> Heh... It looks that there is a misunderstanding. At first I thought
>>>>>>> that David was going to replace purgatory functionality by switching
>>>>>>> from 64-bit to 32-bit in kexec_reloc. But later I realized that
>>>>>>> I missed Xen 64-bit/dom 32-bit case. Now I agree that this switch
>>>>>>> must stay as is. However, now I think that there is another
>>>>>>> small mistake which should be fixed. Please look above.
>>>>>> Which mistake?  I'm not sure what you're referring to.
>>>>> I thought about that:
>>>>>
>>>>> if ( image->arch == EM_386 )
>>>>>   reloc_flags |= KEXEC_RELOC_FLAG_COMPAT;
>>>>>
>>>>> It should be change to:
>>>>>
>>>>> if ( is_pv_32on64_domain(dom0) )
>>>>>   reloc_flags |= KEXEC_RELOC_FLAG_COMPAT;
>>>> This isn't a mistake but a deliberate improvement to the old interface.
>>> I am still not convinced.
>>>
>>>> It is clearer and more useful for this sub-architecture to be explicitly
>>>> supplied in the kexec_load call than implicitly through some other
>>>> side-channel.
>>> First of all you do not need to pass any info about architecure to
>>> new kernel or something like that (please check my previous emails).
>> Yes - you really do.  Guessing the architecture of a blob of code is
>> insane, and any current interface which relies on this guessing is
>> broken by design.
> Which interface do you mean? Old Xen? kexec-tools? purgatory?
>
> Why do you need to enforce architecture? purgatory starts new kernel
> image like BIOS does it. What is wrong with that? Do you set something
> in BIOS to differentiate between 32-bit and 64-bit system?

Fine, but that is irrelevant.  Purgatory can do whatever it wants as
soon as it is running.

What Xen cares about is entering into the binary blob in the correct
operating mode.  This binary blob will usually be purgatory but can be
any executable image loaded using the new interface.

If that image claims to be a 32bit image, Xen will enter it in 32bit
mode.  If it claims to be 64bit, Xen will enter it in 64bit mode.  If it
is being stupid and claiming to be 32bit when it is in fact 64bit (or
vice versa) then it has only itself to blame.

What is absolutely unacceptable (which is the case in the current
interface) is for Xen to assume that the entry point for the blob is the
same operating mode as dom0.

Just because "this happens to be the case when using kexec-tools at the
moment" is no reason nor excuse to functionally break the interface.

~Andrew

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2013-03-11 21:18 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-21 17:48 [PATCH 0/8] kexec: extended kexec hypercall for use with pv-ops kernels David Vrabel
2013-02-21 17:48 ` [PATCH 1/8] x86: give FIX_EFI_MPF its own fixmap entry David Vrabel
2013-02-21 17:48 ` [PATCH 2/8] xen: make GUEST_HANDLE_64() and uint64_aligned_t available everywhere David Vrabel
2013-02-21 17:48 ` [PATCH 3/8] kexec: add public interface for improved load/unload sub-ops David Vrabel
2013-02-21 22:29   ` Daniel Kiper
2013-02-22 11:49     ` David Vrabel
2013-02-22  8:33   ` [Xen-devel] " Jan Beulich
2013-02-22 11:50     ` David Vrabel
2013-02-22 13:09       ` Jan Beulich
2013-03-08 10:50   ` Daniel Kiper
2013-03-08 11:52     ` David Vrabel
2013-03-08 12:28       ` Daniel Kiper
2013-03-08 12:36         ` [Xen-devel] " Jan Beulich
2013-03-08 15:34           ` Daniel Kiper
2013-02-21 17:48 ` [PATCH 4/8] kexec: add infrastructure for handling kexec images David Vrabel
2013-03-08 11:37   ` Daniel Kiper
2013-03-08 11:42     ` David Vrabel
2013-03-08 11:58       ` Daniel Kiper
2013-02-21 17:48 ` [PATCH 5/8] kexec: extend hypercall with improved load/unload ops David Vrabel
2013-02-21 22:41   ` Daniel Kiper
2013-02-22  8:42   ` [Xen-devel] " Jan Beulich
2013-02-22 11:54     ` David Vrabel
2013-02-22 13:11       ` Jan Beulich
2013-03-08 11:23   ` Daniel Kiper
2013-03-08 11:40     ` David Vrabel
2013-03-08 12:21       ` Daniel Kiper
2013-03-08 14:01         ` David Vrabel
2013-03-08 15:23           ` Daniel Kiper
2013-03-08 17:29             ` [Xen-devel] " Andrew Cooper
2013-03-08 21:45               ` Daniel Kiper
2013-03-08 23:38                 ` Andrew Cooper
2013-03-11 11:17                   ` Daniel Kiper
2013-03-11 13:21                     ` David Vrabel
2013-03-11 13:30                       ` Daniel Kiper
2013-03-11 13:43                         ` David Vrabel
2013-03-11 14:13                           ` Daniel Kiper
2013-03-11 14:27                             ` Andrew Cooper
2013-03-11 20:45                               ` Daniel Kiper
2013-03-11 21:18                                 ` Andrew Cooper [this message]
2013-03-12 11:17                                   ` Daniel Kiper
2013-03-12 11:36   ` Daniel Kiper
2013-02-21 17:48 ` [PATCH 6/8] xen: kexec crash image when dom0 crashes David Vrabel
2013-02-21 17:48 ` [PATCH 7/8] libxc: add hypercall buffer arrays David Vrabel
2013-03-06 14:25   ` [Xen-devel] " Ian Jackson
2013-03-07  2:44   ` Ian Campbell
2013-02-21 17:48 ` [PATCH 8/8] libxc: add API for kexec hypercall David Vrabel
2013-03-07  2:46   ` [Xen-devel] " Ian Campbell
2013-02-21 22:47 ` [PATCH 0/8] kexec: extended kexec hypercall for use with pv-ops kernels Daniel Kiper
2013-02-22  8:17 ` [Xen-devel] " Jan Beulich
2013-02-22 11:56   ` David Vrabel
2013-02-26 13:58 ` Don Slutz
2013-03-05 11:04 ` David Vrabel
  -- strict thread matches above, loose matches on Subject: below --
2013-04-16 17:13 [PATCHv4 0/8] kexec: extend " David Vrabel
2013-04-16 17:13 ` [PATCH 5/8] kexec: extend hypercall with improved load/unload ops David Vrabel
2013-04-17  8:55   ` [Xen-devel] " Jan Beulich
2013-04-17 10:11     ` David Vrabel
2013-04-17 10:20       ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=513E4A3E.3060405@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=kexec@lists.infradead.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox