All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Young <dyoung@redhat.com>
To: Geoff Levand <geoff@infradead.org>
Cc: drjones@redhat.com, marc.zyngier@arm.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	christoffer.dall@linaro.org,
	Grant Likely <grant.likely@linaro.org>,
	kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/8] arm64 kexec kernel patches V6
Date: Fri, 28 Nov 2014 14:56:36 +0800	[thread overview]
Message-ID: <20141128065636.GA3676@darkstar.nay.redhat.com> (raw)
In-Reply-To: <20141127061947.GB2860@darkstar.nay.redhat.com>

On 11/27/14 at 02:19pm, Dave Young wrote:
> Geoff,
> 
> Is there any Linaro card for the KVM soft restart issue?
> 
> Ccing Andrew Jones since he might be interested in KVM issues.
> 
> On 11/14/14 at 01:22am, Geoff Levand wrote:
> > Hi All,
> > 
> > This series adds the core support for kexec re-boots on arm64.  I have tested
> > with the ARM VE fast model, the ARM Base model and the ARM Foundation
> > model with various kernel config options for both the first and second stage
> > kernels.
> > 
> > To load a second stage kernel and execute a kexec re-boot on arm64 my patches to
> > kexec-tools [2], which have not yet been merged upstream, are needed.
> > 
> > Patches 1-3 rework the arm64 hcall mechanism to give the arm64 soft_restart()
> > routine the ability to switch exception levels from EL1 to EL2 for kernels that
> > were entered in EL2.
> > 
> > Patch 4 moves proc-macros.S from arm64/mm to arm64/include/asm so that the
> > dcache_line_size macro it defines can be uesd by kexec's relocate kernel
> > routine.
> > 
> > Patches 5-8 add the actual kexec support.
> > 
> > Please consider all patches for inclusion.  Any comments or suggestions on how 
> > to improve are welcome.
> > 
> > [1]  https://git.linaro.org/people/geoff.levand/linux-kexec.git
> > [2]  https://git.linaro.org/people/geoff.levand/kexec-tools.git
> > 
> > Several things are known to have problems on kexec re-boot:
> > 
> > spin-table
> > ----------
> > 
> > PROBLEM: The spin-table enable method does not implement all the methods needed
> > for CPU hot-plug, so the first stage kernel cannot be shutdown properly.
> > 
> > WORK-AROUND: Upgrade to system firmware that provides PSCI enable method
> > support, OR build the first stage kernel with CONFIG_SMP=n, OR pass 'maxcpus=1'
> > on the first stage kernel command line.
> > 
> > FIX: Upgrade system firmware to provide PSCI enable method support or add
> > missing spin-table support to the kernel.
> > 
> > KVM
> > ---
> > 
> > PROBLEM: KVM acquires hypervisor resources on startup, but does not free those
> > resources on shutdown, so the first stage kernel cannot be shutdown properly.
> > 
> > WORK-AROUND:  Build the first stage kernel with CONFIG_KVM=n.
> > 
> > FIX: Fix KVM to support soft_restart().  KVM needs to restore default exception
> > vectors, etc.
> > 
> > UEFI
> > ----
> > 
> > PROBLEM: UEFI does not manage its runtime services virtual mappings in a way
> > that is compatible with a kexec re-boot, so the second stage kernel hangs on
> > boot-up.
> > 
> > WORK-AROUND: Disable UEFI in firmware, OR use EFI uboot emulation if provided
> > by your firmware.
> > 
> > FIX: Fix kernel to manage UEFI virtual mappings properly.
> > 
> > /memreserve/
> > ----------
> > 
> > PROBLEM: The use of device tree /memreserve/ entries is not compatible with
> > kexec re-boot.  The second stage kernel will use the reserved regions and the
> > system will become unstable.
> > 
> > WORK-AROUND: Pass a user specified DTB using the kexec --dtb option.
> > 
> > FIX: Convert device tree source files (.dts) and/or bootloaders to use device
> > tree reserved-memory nodes to specify reserved memory or provide an in kernel
> > mechanism to export the /memreserve/ entries to user space.
> > 
> > ACPI
> > ----
> > 
> > PROBLEM: The kernel for ACPI based systems does not export a device tree to the
> > standard user space location of 'proc/device-tree'.  Current applications
> > expect to access device tree information from this standard location.
> > 
> > WORK-AROUND: Disable ACPI in firmware, OR pass 'acpi=off' on the first stage
> > kernel command line, OR pass a user specified DTB using the kexec --dtb option.
> > 
> > FIX: Fix ACPI kernel support to export device tree information suitable for a
> > kexec re-boot, and if this information is exported to somewhere other than
> > 'proc/device-tree' update existing kexec user applications to use this new
> > interface.
> > 
> > ----------------------------------------------------------------
> > The following changes since commit 302cd37c417d59549d073a8986fd028998409cb9:
> > 
> >   arm64: kvm: eliminate literal pool entries (2014-11-07 15:04:54 +0000)
> > 
> > are available in the git repository at:
> > 
> >   git://git.linaro.org/people/geoff.levand/linux-kexec.git kexec-v6
> > 

Tested your master branch, works for me with below setup:
UEFI boot, CONFIG_KVM=n, maxcpus=1, --lite

But --dtb still does not work if there's no /proc/device-tree, failed as below:
unrecoverable error: could not scan "/proc/device-tree/": No such file or directory.

kexec without --lite also does not work, looks like it hangs after "Bye" ..

Thanks
Dave

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

WARNING: multiple messages have this Message-ID (diff)
From: dyoung@redhat.com (Dave Young)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/8] arm64 kexec kernel patches V6
Date: Fri, 28 Nov 2014 14:56:36 +0800	[thread overview]
Message-ID: <20141128065636.GA3676@darkstar.nay.redhat.com> (raw)
In-Reply-To: <20141127061947.GB2860@darkstar.nay.redhat.com>

On 11/27/14 at 02:19pm, Dave Young wrote:
> Geoff,
> 
> Is there any Linaro card for the KVM soft restart issue?
> 
> Ccing Andrew Jones since he might be interested in KVM issues.
> 
> On 11/14/14 at 01:22am, Geoff Levand wrote:
> > Hi All,
> > 
> > This series adds the core support for kexec re-boots on arm64.  I have tested
> > with the ARM VE fast model, the ARM Base model and the ARM Foundation
> > model with various kernel config options for both the first and second stage
> > kernels.
> > 
> > To load a second stage kernel and execute a kexec re-boot on arm64 my patches to
> > kexec-tools [2], which have not yet been merged upstream, are needed.
> > 
> > Patches 1-3 rework the arm64 hcall mechanism to give the arm64 soft_restart()
> > routine the ability to switch exception levels from EL1 to EL2 for kernels that
> > were entered in EL2.
> > 
> > Patch 4 moves proc-macros.S from arm64/mm to arm64/include/asm so that the
> > dcache_line_size macro it defines can be uesd by kexec's relocate kernel
> > routine.
> > 
> > Patches 5-8 add the actual kexec support.
> > 
> > Please consider all patches for inclusion.  Any comments or suggestions on how 
> > to improve are welcome.
> > 
> > [1]  https://git.linaro.org/people/geoff.levand/linux-kexec.git
> > [2]  https://git.linaro.org/people/geoff.levand/kexec-tools.git
> > 
> > Several things are known to have problems on kexec re-boot:
> > 
> > spin-table
> > ----------
> > 
> > PROBLEM: The spin-table enable method does not implement all the methods needed
> > for CPU hot-plug, so the first stage kernel cannot be shutdown properly.
> > 
> > WORK-AROUND: Upgrade to system firmware that provides PSCI enable method
> > support, OR build the first stage kernel with CONFIG_SMP=n, OR pass 'maxcpus=1'
> > on the first stage kernel command line.
> > 
> > FIX: Upgrade system firmware to provide PSCI enable method support or add
> > missing spin-table support to the kernel.
> > 
> > KVM
> > ---
> > 
> > PROBLEM: KVM acquires hypervisor resources on startup, but does not free those
> > resources on shutdown, so the first stage kernel cannot be shutdown properly.
> > 
> > WORK-AROUND:  Build the first stage kernel with CONFIG_KVM=n.
> > 
> > FIX: Fix KVM to support soft_restart().  KVM needs to restore default exception
> > vectors, etc.
> > 
> > UEFI
> > ----
> > 
> > PROBLEM: UEFI does not manage its runtime services virtual mappings in a way
> > that is compatible with a kexec re-boot, so the second stage kernel hangs on
> > boot-up.
> > 
> > WORK-AROUND: Disable UEFI in firmware, OR use EFI uboot emulation if provided
> > by your firmware.
> > 
> > FIX: Fix kernel to manage UEFI virtual mappings properly.
> > 
> > /memreserve/
> > ----------
> > 
> > PROBLEM: The use of device tree /memreserve/ entries is not compatible with
> > kexec re-boot.  The second stage kernel will use the reserved regions and the
> > system will become unstable.
> > 
> > WORK-AROUND: Pass a user specified DTB using the kexec --dtb option.
> > 
> > FIX: Convert device tree source files (.dts) and/or bootloaders to use device
> > tree reserved-memory nodes to specify reserved memory or provide an in kernel
> > mechanism to export the /memreserve/ entries to user space.
> > 
> > ACPI
> > ----
> > 
> > PROBLEM: The kernel for ACPI based systems does not export a device tree to the
> > standard user space location of 'proc/device-tree'.  Current applications
> > expect to access device tree information from this standard location.
> > 
> > WORK-AROUND: Disable ACPI in firmware, OR pass 'acpi=off' on the first stage
> > kernel command line, OR pass a user specified DTB using the kexec --dtb option.
> > 
> > FIX: Fix ACPI kernel support to export device tree information suitable for a
> > kexec re-boot, and if this information is exported to somewhere other than
> > 'proc/device-tree' update existing kexec user applications to use this new
> > interface.
> > 
> > ----------------------------------------------------------------
> > The following changes since commit 302cd37c417d59549d073a8986fd028998409cb9:
> > 
> >   arm64: kvm: eliminate literal pool entries (2014-11-07 15:04:54 +0000)
> > 
> > are available in the git repository at:
> > 
> >   git://git.linaro.org/people/geoff.levand/linux-kexec.git kexec-v6
> > 

Tested your master branch, works for me with below setup:
UEFI boot, CONFIG_KVM=n, maxcpus=1, --lite

But --dtb still does not work if there's no /proc/device-tree, failed as below:
unrecoverable error: could not scan "/proc/device-tree/": No such file or directory.

kexec without --lite also does not work, looks like it hangs after "Bye" ..

Thanks
Dave

  reply	other threads:[~2014-11-28  6:56 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-14  1:22 [PATCH 0/8] arm64 kexec kernel patches V6 Geoff Levand
2014-11-14  1:22 ` Geoff Levand
2014-11-14  1:22 ` [PATCH 1/8] arm64: Convert hcalls to use ISS field Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14  1:22 ` [PATCH 2/8] arm64: Add new hcall HVC_CALL_FUNC Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14  1:22 ` [PATCH 6/8] arm64/kexec: Add pr_devel output Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14 21:12   ` [PATCH v2 " Geoff Levand
2014-11-14 21:12     ` Geoff Levand
2014-11-14  1:22 ` [PATCH 3/8] arm64: Add EL2 switch to soft_restart Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14  1:22 ` [PATCH 4/8] arm64: Move proc-macros.S to include/asm Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14  1:22 ` [PATCH 5/8] arm64/kexec: Add core kexec support Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14  1:22 ` [PATCH 7/8] arm64/kexec: Add checks for KVM and EFI Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-14 14:42   ` Sergei Shtylyov
2014-11-14 14:42     ` Sergei Shtylyov
2014-11-14 18:28     ` [PATCH v2 " Geoff Levand
2014-11-14 18:28       ` Geoff Levand
2014-11-14 18:40       ` Sergei Shtylyov
2014-11-14 18:40         ` Sergei Shtylyov
2014-11-14 21:08   ` [PATCH v3 " Geoff Levand
2014-11-14 21:08     ` Geoff Levand
2014-11-14  1:22 ` [PATCH 8/8] arm64/kexec: Enable kexec in the arm64 defconfig Geoff Levand
2014-11-14  1:22   ` Geoff Levand
2014-11-27  6:19 ` [PATCH 0/8] arm64 kexec kernel patches V6 Dave Young
2014-11-27  6:19   ` Dave Young
2014-11-28  6:56   ` Dave Young [this message]
2014-11-28  6:56     ` Dave Young
2014-12-02 20:26     ` Geoff Levand
2014-12-02 20:26       ` Geoff Levand
2014-12-02 20:22   ` Geoff Levand
2014-12-02 20:22     ` Geoff Levand
     [not found] <D2393EB95A9993478029A6FE6A290A9F8129D1FE@szxeml510-mbx.china.huawei.com>
2014-11-18  6:18 ` Anurup M
2014-11-20  1:19   ` Geoff Levand
2014-11-20 22:57   ` Geoff Levand
2014-11-20 23:31     ` Geoff Levand
2014-12-02 13:39       ` Anurup m
2014-12-02 20:30         ` Geoff Levand

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=20141128065636.GA3676@darkstar.nay.redhat.com \
    --to=dyoung@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=christoffer.dall@linaro.org \
    --cc=drjones@redhat.com \
    --cc=geoff@infradead.org \
    --cc=grant.likely@linaro.org \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=marc.zyngier@arm.com \
    --cc=will.deacon@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.