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; 66+ 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] 66+ messages in thread
* Re: [PATCH v3 01/11] kexec: introduce kexec firmware support
@ 2012-12-28  0:18 Daniel Kiper
  2012-12-28  3:06 ` Eric W. Biederman
  0 siblings, 1 reply; 66+ messages in thread
From: Daniel Kiper @ 2012-12-28  0:18 UTC (permalink / raw)
  To: ebiederm
  Cc: xen-devel, linux-kernel, konrad.wilk, andrew.cooper3, hpa, kexec,
	x86, virtualization, mingo, jbeulich, maxim.uvarov, tglx, vgoyal

> Daniel Kiper <daniel.kiper@oracle.com> writes:
>
> > Some kexec/kdump implementations (e.g. Xen PVOPS) could not use default
> > Linux infrastructure and require some support from firmware and/or hypervisor.
> > To cope with that problem kexec firmware infrastructure was introduced.
> > It allows a developer to use all kexec/kdump features of given firmware
> > or hypervisor.
>
> As this stands this patch is wrong.
>
> You need to pass an additional flag from userspace through /sbin/kexec
> that says load the kexec image in the firmware.  A global variable here
> is not ok.
>
> As I understand it you are loading a kexec on xen panic image.  Which
> is semantically different from a kexec on linux panic image.  It is not
> ok to do have a silly global variable kexec_use_firmware.

Earlier we agreed that /sbin/kexec should call kexec syscall with
special flag. However, during work on Xen kexec/kdump v3 patch
I stated that this is insufficient because e.g. crash_kexec()
should execute different code in case of use of firmware support too.
Sadly syscall does not save this flag anywhere. Additionally, I stated
that kernel itself has the best knowledge which code path should be
used (firmware or plain Linux). If this decision will be left to userspace
then simple kexec syscall could crash system at worst case (e.g. when
plain Linux kexec will be used in case when firmware kaxec should be used).
However, if you wish I could add this flag to syscall. Additionally, I could
add function which enables firmware support and then kexec_use_firmware
variable will be global only in kexec.c module.

> Furthermore it is not ok to have a conditional
> code outside of header files.

I agree but how to dispatch execution e.g. in crash_kexec()
if we would like (I suppose) compile kexec firmware
support conditionally?

Daniel

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

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

Thread overview: 66+ 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-28  0:18 [PATCH v3 01/11] kexec: introduce kexec firmware support Daniel Kiper
2012-12-28  3:06 ` Eric W. Biederman
2013-01-04 14:04   ` 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).