xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/11] xen: Initial kexec/kdump implementation
@ 2012-12-27  2:18 Daniel Kiper
       [not found] ` <1356574740-6806-1-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
  2012-12-27  4:02 ` [PATCH v3 00/11] xen: Initial kexec/kdump implementation H. Peter Anvin
  0 siblings, 2 replies; 65+ messages in thread
From: Daniel Kiper @ 2012-12-27  2:18 UTC (permalink / raw)
  To: andrew.cooper3-Sxgqhf6Nn4DQT0dZR+AlfA,
	ebiederm-aS9lmoZGLiVWk0Htik3J/w, hpa-YMNOUZJC4hwAvxtiuMwx3w,
	jbeulich-IBi9RG/b67k, konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA,
	maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA, mingo-H+wXaHxf7aLQT0dZR+AlfA,
	tglx-hfZtesqFncYOwBW4kG4KsQ, vgoyal-H+wXaHxf7aLQT0dZR+AlfA,
	x86-DgEjT+Ai2ygdnm+yROfE0A,
	kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR


Hi,

This set of patches contains initial kexec/kdump implementation for Xen v3.
Currently only dom0 is supported, however, almost all infrustructure
required for domU support is ready.

Jan Beulich suggested to merge Xen x86 assembler code with baremetal x86 code.
This could simplify and reduce a bit size of kernel code. However, this solution
requires some changes in baremetal x86 code. First of all code which establishes
transition page table should be moved back from machine_kexec_$(BITS).c to
relocate_kernel_$(BITS).S. Another important thing which should be changed in that
case is format of page_list array. Xen kexec hypercall requires to alternate physical
addresses with virtual ones. These and other required stuff have not been done in that
version because I am not sure that solution will be accepted by kexec/kdump maintainers.
I hope that this email spark discussion about that topic.

Daniel

 arch/x86/Kconfig                     |    3 +
 arch/x86/include/asm/kexec.h         |   10 +-
 arch/x86/include/asm/xen/hypercall.h |    6 +
 arch/x86/include/asm/xen/kexec.h     |   79 ++++
 arch/x86/kernel/machine_kexec_64.c   |   12 +-
 arch/x86/kernel/vmlinux.lds.S        |    7 +-
 arch/x86/xen/Kconfig                 |    1 +
 arch/x86/xen/Makefile                |    3 +
 arch/x86/xen/enlighten.c             |   11 +
 arch/x86/xen/kexec.c                 |  150 +++++++
 arch/x86/xen/machine_kexec_32.c      |  226 +++++++++++
 arch/x86/xen/machine_kexec_64.c      |  318 +++++++++++++++
 arch/x86/xen/relocate_kernel_32.S    |  323 +++++++++++++++
 arch/x86/xen/relocate_kernel_64.S    |  309 ++++++++++++++
 drivers/xen/sys-hypervisor.c         |   42 ++-
 include/linux/kexec.h                |   26 ++-
 include/xen/interface/xen.h          |   33 ++
 kernel/Makefile                      |    1 +
 kernel/kexec-firmware.c              |  743 ++++++++++++++++++++++++++++++++++
 kernel/kexec.c                       |   46 ++-
 20 files changed, 2331 insertions(+), 18 deletions(-)

Daniel Kiper (11):
      kexec: introduce kexec firmware support
      x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE
      xen: Introduce architecture independent data for kexec/kdump
      x86/xen: Introduce architecture dependent data for kexec/kdump
      x86/xen: Register resources required by kexec-tools
      x86/xen: Add i386 kexec/kdump implementation
      x86/xen: Add x86_64 kexec/kdump implementation
      x86/xen: Add kexec/kdump Kconfig and makefile rules
      x86/xen/enlighten: Add init and crash kexec/kdump hooks
      drivers/xen: Export vmcoreinfo through sysfs
      x86: Add Xen kexec control code size check to linker script

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [PATCH v3 00/11] xen: Initial kexec/kdump implementation
@ 2012-12-27 23:40 Daniel Kiper
  0 siblings, 0 replies; 65+ messages in thread
From: Daniel Kiper @ 2012-12-27 23:40 UTC (permalink / raw)
  To: hpa-YMNOUZJC4hwAvxtiuMwx3w
  Cc: xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR,
	konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA,
	andrew.cooper3-Sxgqhf6Nn4DQT0dZR+AlfA, x86-DgEjT+Ai2ygdnm+yROfE0A,
	kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	mingo-H+wXaHxf7aLQT0dZR+AlfA, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
	jbeulich-IBi9RG/b67k, maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA,
	tglx-hfZtesqFncYOwBW4kG4KsQ, vgoyal-H+wXaHxf7aLQT0dZR+AlfA

> On 12/26/2012 06:18 PM, Daniel Kiper wrote:
> > Hi,
> >
> > This set of patches contains initial kexec/kdump implementation for Xen v3.
> > Currently only dom0 is supported, however, almost all infrustructure
> > required for domU support is ready.
> >
> > Jan Beulich suggested to merge Xen x86 assembler code with baremetal x86 code.
> > This could simplify and reduce a bit size of kernel code. However, this solution
> > requires some changes in baremetal x86 code. First of all code which establishes
> > transition page table should be moved back from machine_kexec_$(BITS).c to
> > relocate_kernel_$(BITS).S. Another important thing which should be changed in that
> > case is format of page_list array. Xen kexec hypercall requires to alternate physical
> > addresses with virtual ones. These and other required stuff have not been done in that
> > version because I am not sure that solution will be accepted by kexec/kdump maintainers.
> > I hope that this email spark discussion about that topic.
>
> I want a detailed list of the constraints that this assumes and 
> therefore imposes on the native implementation as a result of this.  We 
> have had way too many patches where Xen PV hacks effectively nailgun 
> arbitrary, and sometimes poor, design decisions in place and now we 
> can't fix them.

OK but now I think that we should leave this discussion
until all details regarding kexec/kdump generic code
will be agreed. Sorry for that.

Daniel

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [PATCH v3 00/11] xen: Initial kexec/kdump implementation
@ 2012-12-28  0:53 Daniel Kiper
  0 siblings, 0 replies; 65+ messages in thread
From: Daniel Kiper @ 2012-12-28  0:53 UTC (permalink / raw)
  To: ebiederm
  Cc: xen-devel, linux-kernel, konrad.wilk, andrew.cooper3, hpa, kexec,
	x86, virtualization, mingo, jbeulich, maxim.uvarov, tglx, vgoyal

> Andrew Cooper <andrew.cooper3@citrix.com> writes:
>
> > On 27/12/2012 07:53, Eric W. Biederman wrote:
> >> The syscall ABI still has the wrong semantics.
> >>
> >> Aka totally unmaintainable and umergeable.
> >>
> >> The concept of domU support is also strange.  What does domU support even mean, when the dom0 > support is loading a kernel to pick up Xen when Xen falls over.
> >
> > There are two requirements pulling at this patch series, but I agree
> > that we need to clarify them.
>
> It probably make sense to split them apart a little even.
>
> > When dom0 loads a crash kernel, it is loading one for Xen to use.  As a
> > dom0 crash causes a Xen crash, having dom0 set up a kdump kernel for
> > itself is completely useless.  This ability is present in "classic Xen
> > dom0" kernels, but the feature is currently missing in PVOPS.
>
> > Many cloud customers and service providers want the ability for a VM
> > administrator to be able to load a kdump/kexec kernel within a
> > domain[1].  This allows the VM administrator to take more proactive
> > steps to isolate the cause of a crash, the state of which is most likely
> > discarded while tearing down the domain.  The result being that as far
> > as Xen is concerned, the domain is still alive, while the kdump
> > kernel/environment can work its usual magic.  I am not aware of any
> > feature like this existing in the past.
>
> Which makes domU support semantically just the normal kexec/kdump
> support.  Got it.

To some extent. It is true on HVM and PVonHVM guests. However,
PV guests requires a bit different kexec/kdump implementation
than plain kexec/kdump. Proposed firmware support has almost
all required features. PV guest specific features (a few) will
be added later (after agreeing generic firmware support which
is sufficient at least for dom0).

It looks that I should replace domU by PV guest in patch description.

> The point of implementing domU is for those times when the hypervisor
> admin and the kernel admin are different.

Right.

> For domU support modifying or adding alternate versions of
> machine_kexec.c and relocate_kernel.S to add paravirtualization support
> make sense.

It is not sufficient. Please look above.

> There is the practical argument that for implementation efficiency of
> crash dumps it would be better if that support came from the hypervisor
> or the hypervisor environment.  But this gets into the practical reality

I am thinking about that.

> that the hypervisor environment does not do that today.  Furthermore
> kexec all by itself working in a paravirtualized environment under Xen
> makes sense.
>
> domU support is what Peter was worrying about for cleanliness, and
> we need some x86 backend ops there, and generally to be careful.

As I know we do not need any additional pv_ops stuff
if we place all needed things in kexec firmware support.

Daniel

^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2013-01-11 21:14 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-27  2:18 [PATCH v3 00/11] xen: Initial kexec/kdump implementation Daniel Kiper
     [not found] ` <1356574740-6806-1-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18   ` [PATCH v3 01/11] kexec: introduce kexec firmware support Daniel Kiper
     [not found]     ` <1356574740-6806-2-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
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
     [not found]         ` <1356574740-6806-3-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18           ` [PATCH v3 03/11] xen: Introduce architecture independent data for kexec/kdump Daniel Kiper
     [not found]             ` <1356574740-6806-4-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18               ` [PATCH v3 04/11] x86/xen: Introduce architecture dependent " Daniel Kiper
     [not found]                 ` <1356574740-6806-5-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18                   ` [PATCH v3 05/11] x86/xen: Register resources required by kexec-tools Daniel Kiper
     [not found]                     ` <1356574740-6806-6-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18                       ` [PATCH v3 06/11] x86/xen: Add i386 kexec/kdump implementation Daniel Kiper
     [not found]                         ` <1356574740-6806-7-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18                           ` [PATCH v3 07/11] x86/xen: Add x86_64 " Daniel Kiper
     [not found]                             ` <1356574740-6806-8-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18                               ` [PATCH v3 08/11] x86/xen: Add kexec/kdump Kconfig and makefile rules Daniel Kiper
     [not found]                                 ` <1356574740-6806-9-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18                                   ` [PATCH v3 09/11] x86/xen/enlighten: Add init and crash kexec/kdump hooks Daniel Kiper
     [not found]                                     ` <1356574740-6806-10-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2012-12-27  2:18                                       ` [PATCH v3 10/11] drivers/xen: Export vmcoreinfo through sysfs Daniel Kiper
     [not found]                                         ` <1356574740-6806-11-git-send-email-daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
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
     [not found]         ` <50E55ECF02000078000B2A13@nat28.tlf.novell.com>
2013-01-04 15:15           ` Daniel Kiper
     [not found]           ` <20130104151542.GD3346@host-192-168-1-59.local.net-space.pl>
2013-01-04 16:12             ` Jan Beulich
     [not found]             ` <50E70D8002000078000B336D@nat28.tlf.novell.com>
2013-01-04 17:25               ` Daniel Kiper
     [not found]               ` <20130104172538.GC3472@host-192-168-1-59.local.net-space.pl>
2013-01-07  9:48                 ` Jan Beulich
     [not found]                 ` <50EAA7F402000078000B34C3@nat28.tlf.novell.com>
2013-01-07 12:52                   ` Daniel Kiper
     [not found]                   ` <20130107125211.GB2927@host-192-168-1-59.local.net-space.pl>
2013-01-07 13:05                     ` Jan Beulich
     [not found]                     ` <50EAD61602000078000B36A0@nat28.tlf.novell.com>
2013-01-09 18:42                       ` Daniel Kiper
2013-01-10 14:07             ` David Vrabel
     [not found]             ` <50EECB23.4090603@citrix.com>
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
2013-01-04 14:41             ` Jan Beulich
     [not found]               ` <50E6F81D02000078000B3245-ce6RLXgGx+vWGUEhTRrCg1aTQe2KTcn/@public.gmane.org>
2013-01-04 17:07                 ` Daniel Kiper
2013-01-04 19:11                   ` Konrad Rzeszutek Wilk
     [not found]                     ` <20130104191146.GC6721-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org>
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
     [not found]                       ` <20130107123404.GA2927-UojuW/CpjwpdUOLzJiIvSsFoITBeLw/klGfBN0aaEZ+lPcVs/6D9LQ@public.gmane.org>
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
     [not found]                                 ` <20130111205232.GC17126-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-01-11 21:03                                   ` H. Peter Anvin
     [not found]                                     ` <50F07E2D.6010602-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-01-11 21:08                                       ` Vivek Goyal
2013-01-11 21:14                                         ` H. Peter Anvin
     [not found]       ` <50DC58C4.3000307-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>
2013-01-02 15:27         ` Ian Campbell
  -- strict thread matches above, loose matches on Subject: below --
2012-12-27 23:40 Daniel Kiper
2012-12-28  0:53 Daniel Kiper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).