public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: David Vrabel <david.vrabel@citrix.com>
Cc: Daniel Kiper <daniel.kiper@oracle.com>,
	"xen-devel\@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"konrad.wilk\@oracle.com" <konrad.wilk@oracle.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>,
	"x86\@kernel.org" <x86@kernel.org>,
	"kexec\@lists.infradead.org" <kexec@lists.infradead.org>,
	"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"virtualization\@lists.linux-foundation.org" 
	<virtualization@lists.linux-foundation.org>,
	"mingo\@redhat.com" <mingo@redhat.com>,
	"jbeulich\@suse.com" <jbeulich@suse.com>,
	"maxim.uvarov\@oracle.com" <maxim.uvarov@oracle.com>,
	"tglx\@linutronix.de" <tglx@linutronix.de>,
	"vgoyal\@redhat.com" <vgoyal@redhat.com>
Subject: Re: [Xen-devel] [PATCH v3 00/11] xen: Initial kexec/kdump implementation
Date: Fri, 11 Jan 2013 12:05:16 -0800	[thread overview]
Message-ID: <87pq1bxz7n.fsf@xmission.com> (raw)
In-Reply-To: <50F02E3B.3090506@citrix.com> (David Vrabel's message of "Fri, 11 Jan 2013 15:22:35 +0000")

David Vrabel <david.vrabel@citrix.com> writes:

> On 11/01/13 13:22, Daniel Kiper wrote:
>> On Thu, Jan 10, 2013 at 02:19:55PM +0000, David Vrabel wrote:
>>> On 04/01/13 17:01, Daniel Kiper wrote:
>>>> My .5 cents:
>>>>   - We should focus on KEXEC_CMD_kexec_load and KEXEC_CMD_kexec_unload;
>>>>     probably we should introduce KEXEC_CMD_kexec_load2 and KEXEC_CMD_kexec_unload2;
>>>>     load should __LOAD__ kernel image and other things into hypervisor memory;
>>>
>>> Yes, but I don't see how we can easily support both ABIs easily.  I'd be
>>> in favour of replacing the existing hypercalls and requiring updated
>>> kexec tools in dom0 (this isn't that different to requiring the correct
>>> libxc in dom0).
>> 
>> Why? Just define new strutures for new functions of kexec hypercall.
>> That should suffice.
>
> The current hypervisor ABI depends on an internal kernel ABI (i.e., the
> ABI provided by relocate_kernel).  We do not want hypervisor internals
> to be constrained by having to be compatible with kernel internals.

I think this is violent agreement.  A new call with new arguments seems
agreed upon.  The only question seems to be what happens to the old
hypercall.  Keeping the current deprecated hypercall with the current
ABI and not updating it, or modifying the current hypercall to return
the xen equivalant of -ENOSYS seems to be the only question.

Certainly /sbin/kexec will only support the new hypercall once the
support has merged.

>> No, please do not do that. When you call HYPERVISOR_kexec_op(KEXEC_CMD_kexec)
>> system is completly shutdown. Return form HYPERVISOR_kexec_op(KEXEC_CMD_kexec)
>> would require to restore some kernel functionalities. It maybe impossible
>> in some cases. Additionally, it means that some changes should be made
>> in generic kexec code path. As I know kexec maintainers are very reluctant
>> to make such things.
>
> Huh?  There only needs to be a call to a new hypervisor_crash_kexec()
> function (which would then call the Xen specific crash hypercall) at the
> very beginning of crash_kexec().  If this returns the normal
> crash/shutdown path is done (which could even include a guest kexec!).

Can you imagine what crash_kexec would look like if every architecture
would hard code their own little piece in there?

The practical issue with changing crash_kexec is that you are hard
coding Xen policy just before a jump to a piece of code whose purpose
is to implement policy.

>From a maintenance and code comprehension stand-ponit it is much cleaner
to put the hypervisor_crash_kexec() hypercall into the code that is
loaded with sys_kexec_load and is branched to by crash_kexec.  I would
have no problem with hard coding that behavior into /sbin/kexec in
the case of Xen dom0.

Having any code have different semantics when running under Xen is a
maintenance nightmare, and why we are having the conversation years and
years after the initial deployment of Xen.  A tiny hard coded stub that
calls a hypercall should work indefinitely with no one having to do
anything.

Eric


  parent reply	other threads:[~2013-01-11 20:05 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-27  2:18 [PATCH v3 00/11] xen: Initial kexec/kdump implementation Daniel Kiper
2012-12-27  2:18 ` [PATCH v3 01/11] kexec: introduce kexec firmware support Daniel Kiper
2012-12-27  2:18   ` [PATCH v3 02/11] x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE Daniel Kiper
2012-12-27  2:18     ` [PATCH v3 03/11] xen: Introduce architecture independent data for kexec/kdump Daniel Kiper
2012-12-27  2:18       ` [PATCH v3 04/11] x86/xen: Introduce architecture dependent " Daniel Kiper
2012-12-27  2:18         ` [PATCH v3 05/11] x86/xen: Register resources required by kexec-tools Daniel Kiper
2012-12-27  2:18           ` [PATCH v3 06/11] x86/xen: Add i386 kexec/kdump implementation Daniel Kiper
2012-12-27  2:18             ` [PATCH v3 07/11] x86/xen: Add x86_64 " Daniel Kiper
2012-12-27  2:18               ` [PATCH v3 08/11] x86/xen: Add kexec/kdump Kconfig and makefile rules Daniel Kiper
2012-12-27  2:18                 ` [PATCH v3 09/11] x86/xen/enlighten: Add init and crash kexec/kdump hooks Daniel Kiper
2012-12-27  2:18                   ` [PATCH v3 10/11] drivers/xen: Export vmcoreinfo through sysfs Daniel Kiper
2012-12-27  2:19                     ` [PATCH v3 11/11] x86: Add Xen kexec control code size check to linker script Daniel Kiper
2012-12-27 18:53                   ` [PATCH v3 09/11] x86/xen/enlighten: Add init and crash kexec/kdump hooks H. Peter Anvin
2012-12-27  4:00             ` [PATCH v3 06/11] x86/xen: Add i386 kexec/kdump implementation H. Peter Anvin
2012-12-27  3:33     ` [PATCH v3 02/11] x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE H. Peter Anvin
2013-01-03  9:34     ` Jan Beulich
2013-01-04 15:15       ` Daniel Kiper
2013-01-04 16:12         ` Jan Beulich
2013-01-04 17:25           ` Daniel Kiper
2013-01-07  9:48             ` Jan Beulich
2013-01-07 12:52               ` Daniel Kiper
2013-01-07 13:05                 ` Jan Beulich
2013-01-09 18:42                   ` Daniel Kiper
2013-01-10 14:07         ` [Xen-devel] " David Vrabel
2013-01-11 13:36           ` Daniel Kiper
2012-12-27  4:46   ` [PATCH v3 01/11] kexec: introduce kexec firmware support Eric W. Biederman
2012-12-27  4:02 ` [PATCH v3 00/11] xen: Initial kexec/kdump implementation H. Peter Anvin
2012-12-27  7:53   ` Eric W. Biederman
2012-12-27 14:18     ` Andrew Cooper
2012-12-27 18:02       ` Eric W. Biederman
2013-01-02 11:26         ` [Xen-devel] " Andrew Cooper
2013-01-02 11:47           ` Eric W. Biederman
2013-01-03  9:31           ` Jan Beulich
2013-01-04 14:22           ` Daniel Kiper
2013-01-04 14:34             ` Konrad Rzeszutek Wilk
2013-01-04 14:34             ` Ian Campbell
2013-01-04 14:38             ` David Vrabel
2013-01-04 17:01               ` Daniel Kiper
2013-01-10 14:19                 ` David Vrabel
2013-01-11 13:22                   ` Daniel Kiper
2013-01-11 15:22                     ` David Vrabel
2013-01-11 17:34                       ` Daniel Kiper
2013-01-11 20:05                       ` Eric W. Biederman [this message]
2013-01-04 14:41             ` Jan Beulich
2013-01-04 17:07               ` Daniel Kiper
2013-01-04 19:11                 ` Konrad Rzeszutek Wilk
2013-01-07 10:25                   ` Ian Campbell
2013-01-07 10:46                     ` Andrew Cooper
2013-01-07 10:54                       ` Ian Campbell
2013-01-07 12:34                   ` Daniel Kiper
2013-01-07 13:49                     ` Ian Campbell
2013-01-11 13:47                       ` Daniel Kiper
2013-01-07 16:20                     ` Konrad Rzeszutek Wilk
2013-01-11  4:16                       ` Eric W. Biederman
2013-01-11 16:55                         ` Konrad Rzeszutek Wilk
2013-01-11 20:26                           ` H. Peter Anvin
2013-01-11 20:43                             ` Vivek Goyal
2013-01-11 20:26                           ` Eric W. Biederman
2013-01-11 20:52                             ` Vivek Goyal
2013-01-11 21:03                               ` H. Peter Anvin
2013-01-11 21:08                                 ` Vivek Goyal
2013-01-11 21:14                                   ` H. Peter Anvin
2013-01-02 15:27       ` Ian Campbell

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=87pq1bxz7n.fsf@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=Andrew.Cooper3@citrix.com \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=hpa@zytor.com \
    --cc=jbeulich@suse.com \
    --cc=kexec@lists.infradead.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxim.uvarov@oracle.com \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=vgoyal@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    /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