All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Manish Jaggi <mjaggi@caviumnetworks.com>,
	AKASHI Takahiro <takahiro.akashi@linaro.org>,
	catalin.marinas@arm.com, will.deacon@arm.com,
	mark.rutland@arm.com, geoff@infradead.org,
	kexec@lists.infradead.org, james.morse@arm.com,
	bauerman@linux.vnet.ibm.com, dyoung@redhat.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v24 0/9] arm64: add kdump support
Date: Tue, 6 Sep 2016 16:33:57 +0100	[thread overview]
Message-ID: <57CEE1E5.7040206@arm.com> (raw)
In-Reply-To: <976ca1f8-5efb-b45c-19b8-bde7bd06f5b8@caviumnetworks.com>

On 05/09/16 13:42, Manish Jaggi wrote:
> 
> 
> On 09/05/2016 01:45 PM, AKASHI Takahiro wrote:
>> [Cc: Marc]
>>
>> On Fri, Sep 02, 2016 at 06:23:25PM +0530, Manish Jaggi wrote:
>>>
>>>
>>> On 08/31/2016 11:01 AM, AKASHI Takahiro wrote:
>>>> Manish,
>>>>
>>>> Thank you for testing my kdump and reporting issues.
>>>>
>>>> On Wed, Aug 31, 2016 at 09:11:52AM +0530, Manish Jaggi wrote:
>>>>> Hi Akashi,
>>>>>
>>>>> On 08/09/2016 07:22 AM, AKASHI Takahiro wrote:
>>>>>> This patch series adds kdump support on arm64.
>>>>>>
>>>>>> To load a crash-dump kernel to the systems, a series of patches to
>>>>>> kexec-tools, which have not yet been merged upstream, are needed.
>>>>>> Please use my kdump patches [1].
>>>>>>
>>>>>> To examine vmcore (/proc/vmcore) on a crash-dump kernel, you can use
>>>>>>   - crash utility (coming v7.1.6 or later) [2]
>>>>>>     (Necessary patches have already been queued in the master.)
>>>>>>
>>>>>> [1] T.B.D.
>>>>>> [2] https://github.com/crash-utility/crash.git
>>>>>>
>>>>>> Changes for v24 (Aug 9, 2016):
>>>>>>   o Rebase to Linux-4.8-rc1
>>>>>>   o Update descriptions about newly added DT proerties
>>>>>>
>>>>>> Changes for v23 (July 26, 2016):
>>>>>>
>>>>>>   o Move memblock_reserve() to a single place in reserve_crashkernel()
>>>>>>   o Use  cpu_park_loop() in ipi_cpu_crash_stop()
>>>>>>   o Always enforce ARCH_LOW_ADDRESS_LIMIT to the memory range of crash kernel
>>>>>>   o Re-implement fdt_enforce_memory_region() to remove non-reserve regions
>>>>>>     (for ACPI) from usable memory at crash kernel
>>>>>>
>>>>>> Changes for v22 (July 12, 2016):
>>>>>>
>>>>>>   o Export "crashkernel-base" and "crashkernel-size" via device-tree,
>>>>>>     and add some descriptions about them in chosen.txt
>>>>>>   o Rename "usable-memory" to "usable-memory-range" to avoid inconsistency
>>>>>>     with powerpc's "usable-memory"
>>>>>>   o Make cosmetic changes regarding "ifdef" usage
>>>>>>   o Correct some wordings in kdump.txt
>>>>>>
>>>>>> Changes for v21 (July 6, 2016):
>>>>>>
>>>>>>   o Remove kexec patches.
>>>>>>   o Rebase to arm64's for-next/core (Linux-4.7-rc4 based).
>>>>>>   o Clarify the description about kvm in kdump.txt.
>>>>>>
>>>>>> See the following link [3] for older changes:
>>>>>> [3]  http://lists.infradead.org/pipermail/linux-arm-kernel/2016-June/438780.html
>>>>>>
>>>>>> AKASHI Takahiro (8):
>>>>>>   arm64: kdump: reserve memory for crash dump kernel
>>>>>>   memblock: add memblock_cap_memory_range()
>>>>>>   arm64: limit memory regions based on DT property, usable-memory-range
>>>>>>   arm64: kdump: implement machine_crash_shutdown()
>>>>>>   arm64: kdump: add kdump support
>>>>>>   arm64: kdump: add VMCOREINFO's for user-space coredump tools
>>>>>>   arm64: kdump: enable kdump in the arm64 defconfig
>>>>>>   arm64: kdump: update a kernel doc
>>>>>>
>>>>>> James Morse (1):
>>>>>>   Documentation: dt: chosen properties for arm64 kdump
>>>>>>
>>>>>>  Documentation/devicetree/bindings/chosen.txt |  45 ++++++
>>>>>>  Documentation/kdump/kdump.txt                |  16 ++-
>>>>>>  arch/arm64/Kconfig                           |  11 ++
>>>>>>  arch/arm64/configs/defconfig                 |   1 +
>>>>>>  arch/arm64/include/asm/hardirq.h             |   2 +-
>>>>>>  arch/arm64/include/asm/kexec.h               |  41 +++++-
>>>>>>  arch/arm64/include/asm/smp.h                 |   2 +
>>>>>>  arch/arm64/kernel/Makefile                   |   1 +
>>>>>>  arch/arm64/kernel/crash_dump.c               |  71 ++++++++++
>>>>>>  arch/arm64/kernel/machine_kexec.c            |  67 ++++++++-
>>>>>>  arch/arm64/kernel/setup.c                    |   7 +-
>>>>>>  arch/arm64/kernel/smp.c                      |  63 +++++++++
>>>>>>  arch/arm64/mm/init.c                         | 202 +++++++++++++++++++++++++++
>>>>>>  include/linux/memblock.h                     |   1 +
>>>>>>  mm/memblock.c                                |  28 ++++
>>>>>>  15 files changed, 551 insertions(+), 7 deletions(-)
>>>>>>  create mode 100644 arch/arm64/kernel/crash_dump.c
>>>>>>
>>>>> Couple of points
>>>>> a) Just a note, while testing, the crashkernel reserved memory should be less than ARCH_LOW_ADDRESS_LIMIT (=arm64_dma_phys_limit).
>>>>
>>>> I think that this is a common mistake not only for kdump, but also
>>>> for general kernels.
>>>> Since request_standard_resources() calls alloc_bootmem_low(),
>>>> the kernel will panic if any of usable "System RAM" is located
>>>> above ARCH_LOW_ADDRESS_LIMIT.
>>>> For kdump, using "crashkernel=SS" notation is a convenient way
>>>> to avoid this issue.
>>>>
>>>>> b) Has anyone tested this on a SoC with Gicv3 ITS ?
>>>>> Should the GICD/R be reset prior to switching to crash kernel ?
>>>>> I am seeing lot of GICv3: RWP timeout, gone fishing while crash kernel boots.
>>>>
>>>> I've never seen this kind of messages.
>>>> I usually do my testing on a fast model.
>>>> "compatible" of interrupt-controller is "arm,gic-v3."
>>>>
>>> I suspect gic_cpu_pm_notifier is not being called on any of the cores prior to start of crash kernel.
>>> We might have to call it explicitly.
>>
>> I'm not sure that it is the cause, but anyway none of any cpu_pm_notifier's
>> will be called at panic. That is the reason why "maxcpus=1" should be
>> specified (for kdump on arm64).
>>
> What I meant was that since cpu_pm_notifier is not called before
> crash kernel is started, GIC Distributor/re-distributor/ITS is not
> set in quiescent state.

Which is fine, they are not expected to be in a sane state anyway
(that's what a crash is about...). The ITS now has provision to be put
in a disabled state before being reinitialized. As for GICD, it is
disabled before being reprogrammed, which should be enough.

> In my setup the GICD_CTRL[RWP] bit is not cleared in the
> crashkernels' distributor init function.

Which instance is failing? The initial one (just after the initial
disable)? Or the one called from gic_dist_config()?

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

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

WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v24 0/9] arm64: add kdump support
Date: Tue, 6 Sep 2016 16:33:57 +0100	[thread overview]
Message-ID: <57CEE1E5.7040206@arm.com> (raw)
In-Reply-To: <976ca1f8-5efb-b45c-19b8-bde7bd06f5b8@caviumnetworks.com>

On 05/09/16 13:42, Manish Jaggi wrote:
> 
> 
> On 09/05/2016 01:45 PM, AKASHI Takahiro wrote:
>> [Cc: Marc]
>>
>> On Fri, Sep 02, 2016 at 06:23:25PM +0530, Manish Jaggi wrote:
>>>
>>>
>>> On 08/31/2016 11:01 AM, AKASHI Takahiro wrote:
>>>> Manish,
>>>>
>>>> Thank you for testing my kdump and reporting issues.
>>>>
>>>> On Wed, Aug 31, 2016 at 09:11:52AM +0530, Manish Jaggi wrote:
>>>>> Hi Akashi,
>>>>>
>>>>> On 08/09/2016 07:22 AM, AKASHI Takahiro wrote:
>>>>>> This patch series adds kdump support on arm64.
>>>>>>
>>>>>> To load a crash-dump kernel to the systems, a series of patches to
>>>>>> kexec-tools, which have not yet been merged upstream, are needed.
>>>>>> Please use my kdump patches [1].
>>>>>>
>>>>>> To examine vmcore (/proc/vmcore) on a crash-dump kernel, you can use
>>>>>>   - crash utility (coming v7.1.6 or later) [2]
>>>>>>     (Necessary patches have already been queued in the master.)
>>>>>>
>>>>>> [1] T.B.D.
>>>>>> [2] https://github.com/crash-utility/crash.git
>>>>>>
>>>>>> Changes for v24 (Aug 9, 2016):
>>>>>>   o Rebase to Linux-4.8-rc1
>>>>>>   o Update descriptions about newly added DT proerties
>>>>>>
>>>>>> Changes for v23 (July 26, 2016):
>>>>>>
>>>>>>   o Move memblock_reserve() to a single place in reserve_crashkernel()
>>>>>>   o Use  cpu_park_loop() in ipi_cpu_crash_stop()
>>>>>>   o Always enforce ARCH_LOW_ADDRESS_LIMIT to the memory range of crash kernel
>>>>>>   o Re-implement fdt_enforce_memory_region() to remove non-reserve regions
>>>>>>     (for ACPI) from usable memory at crash kernel
>>>>>>
>>>>>> Changes for v22 (July 12, 2016):
>>>>>>
>>>>>>   o Export "crashkernel-base" and "crashkernel-size" via device-tree,
>>>>>>     and add some descriptions about them in chosen.txt
>>>>>>   o Rename "usable-memory" to "usable-memory-range" to avoid inconsistency
>>>>>>     with powerpc's "usable-memory"
>>>>>>   o Make cosmetic changes regarding "ifdef" usage
>>>>>>   o Correct some wordings in kdump.txt
>>>>>>
>>>>>> Changes for v21 (July 6, 2016):
>>>>>>
>>>>>>   o Remove kexec patches.
>>>>>>   o Rebase to arm64's for-next/core (Linux-4.7-rc4 based).
>>>>>>   o Clarify the description about kvm in kdump.txt.
>>>>>>
>>>>>> See the following link [3] for older changes:
>>>>>> [3]  http://lists.infradead.org/pipermail/linux-arm-kernel/2016-June/438780.html
>>>>>>
>>>>>> AKASHI Takahiro (8):
>>>>>>   arm64: kdump: reserve memory for crash dump kernel
>>>>>>   memblock: add memblock_cap_memory_range()
>>>>>>   arm64: limit memory regions based on DT property, usable-memory-range
>>>>>>   arm64: kdump: implement machine_crash_shutdown()
>>>>>>   arm64: kdump: add kdump support
>>>>>>   arm64: kdump: add VMCOREINFO's for user-space coredump tools
>>>>>>   arm64: kdump: enable kdump in the arm64 defconfig
>>>>>>   arm64: kdump: update a kernel doc
>>>>>>
>>>>>> James Morse (1):
>>>>>>   Documentation: dt: chosen properties for arm64 kdump
>>>>>>
>>>>>>  Documentation/devicetree/bindings/chosen.txt |  45 ++++++
>>>>>>  Documentation/kdump/kdump.txt                |  16 ++-
>>>>>>  arch/arm64/Kconfig                           |  11 ++
>>>>>>  arch/arm64/configs/defconfig                 |   1 +
>>>>>>  arch/arm64/include/asm/hardirq.h             |   2 +-
>>>>>>  arch/arm64/include/asm/kexec.h               |  41 +++++-
>>>>>>  arch/arm64/include/asm/smp.h                 |   2 +
>>>>>>  arch/arm64/kernel/Makefile                   |   1 +
>>>>>>  arch/arm64/kernel/crash_dump.c               |  71 ++++++++++
>>>>>>  arch/arm64/kernel/machine_kexec.c            |  67 ++++++++-
>>>>>>  arch/arm64/kernel/setup.c                    |   7 +-
>>>>>>  arch/arm64/kernel/smp.c                      |  63 +++++++++
>>>>>>  arch/arm64/mm/init.c                         | 202 +++++++++++++++++++++++++++
>>>>>>  include/linux/memblock.h                     |   1 +
>>>>>>  mm/memblock.c                                |  28 ++++
>>>>>>  15 files changed, 551 insertions(+), 7 deletions(-)
>>>>>>  create mode 100644 arch/arm64/kernel/crash_dump.c
>>>>>>
>>>>> Couple of points
>>>>> a) Just a note, while testing, the crashkernel reserved memory should be less than ARCH_LOW_ADDRESS_LIMIT (=arm64_dma_phys_limit).
>>>>
>>>> I think that this is a common mistake not only for kdump, but also
>>>> for general kernels.
>>>> Since request_standard_resources() calls alloc_bootmem_low(),
>>>> the kernel will panic if any of usable "System RAM" is located
>>>> above ARCH_LOW_ADDRESS_LIMIT.
>>>> For kdump, using "crashkernel=SS" notation is a convenient way
>>>> to avoid this issue.
>>>>
>>>>> b) Has anyone tested this on a SoC with Gicv3 ITS ?
>>>>> Should the GICD/R be reset prior to switching to crash kernel ?
>>>>> I am seeing lot of GICv3: RWP timeout, gone fishing while crash kernel boots.
>>>>
>>>> I've never seen this kind of messages.
>>>> I usually do my testing on a fast model.
>>>> "compatible" of interrupt-controller is "arm,gic-v3."
>>>>
>>> I suspect gic_cpu_pm_notifier is not being called on any of the cores prior to start of crash kernel.
>>> We might have to call it explicitly.
>>
>> I'm not sure that it is the cause, but anyway none of any cpu_pm_notifier's
>> will be called at panic. That is the reason why "maxcpus=1" should be
>> specified (for kdump on arm64).
>>
> What I meant was that since cpu_pm_notifier is not called before
> crash kernel is started, GIC Distributor/re-distributor/ITS is not
> set in quiescent state.

Which is fine, they are not expected to be in a sane state anyway
(that's what a crash is about...). The ITS now has provision to be put
in a disabled state before being reinitialized. As for GICD, it is
disabled before being reprogrammed, which should be enough.

> In my setup the GICD_CTRL[RWP] bit is not cleared in the
> crashkernels' distributor init function.

Which instance is failing? The initial one (just after the initial
disable)? Or the one called from gic_dist_config()?

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2016-09-06 15:33 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-09  1:52 [PATCH v24 0/9] arm64: add kdump support AKASHI Takahiro
2016-08-09  1:52 ` AKASHI Takahiro
2016-08-09  1:52 ` [PATCH v24 1/9] arm64: kdump: reserve memory for crash dump kernel AKASHI Takahiro
2016-08-09  1:52   ` AKASHI Takahiro
2016-08-09  1:55   ` [PATCH v24 2/9] memblock: add memblock_cap_memory_range() AKASHI Takahiro
2016-08-09  1:55     ` AKASHI Takahiro
2016-08-09  1:55     ` AKASHI Takahiro
2016-08-10 16:26     ` James Morse
2016-08-10 16:26       ` James Morse
2016-08-10 16:26       ` James Morse
2016-08-09  1:56   ` [PATCH v24 3/9] arm64: limit memory regions based on DT property, usable-memory-range AKASHI Takahiro
2016-08-09  1:56     ` AKASHI Takahiro
2016-08-09  1:56     ` [PATCH v24 4/9] arm64: kdump: implement machine_crash_shutdown() AKASHI Takahiro
2016-08-09  1:56       ` AKASHI Takahiro
2016-08-09  1:56     ` [PATCH v24 5/9] arm64: kdump: add kdump support AKASHI Takahiro
2016-08-09  1:56       ` AKASHI Takahiro
2016-08-10 16:38       ` James Morse
2016-08-10 16:38         ` James Morse
2016-08-10 18:18         ` Pratyush Anand
2016-08-10 18:18           ` Pratyush Anand
2016-08-11 10:03           ` Pratyush Anand
2016-08-11 10:03             ` Pratyush Anand
2016-08-16 10:13             ` James Morse
2016-08-16 10:13               ` James Morse
2016-08-17 15:33               ` [PATCH] fixup! " James Morse
2016-08-17 15:33                 ` James Morse
2016-08-18  7:32                 ` AKASHI Takahiro
2016-08-18  7:32                   ` AKASHI Takahiro
2016-08-19  8:00                 ` Pratyush Anand
2016-08-19  8:00                   ` Pratyush Anand
2016-08-19 13:34                   ` James Morse
2016-08-19 13:34                     ` James Morse
2016-08-19 15:19                     ` Pratyush Anand
2016-08-19 15:19                       ` Pratyush Anand
2016-08-18  7:15         ` [PATCH v24 5/9] " AKASHI Takahiro
2016-08-18  7:15           ` AKASHI Takahiro
2016-08-18  7:19           ` Dave Young
2016-08-18  7:19             ` Dave Young
2016-08-19  1:26           ` AKASHI Takahiro
2016-08-19  1:26             ` AKASHI Takahiro
2016-08-19 11:22             ` Pratyush Anand
2016-08-19 11:22               ` Pratyush Anand
2016-08-22  1:29               ` AKASHI Takahiro
2016-08-22  1:29                 ` AKASHI Takahiro
2016-08-22  7:07                 ` Pratyush Anand
2016-08-22  7:07                   ` Pratyush Anand
2016-08-22 13:47                 ` James Morse
2016-08-22 13:47                   ` James Morse
2016-08-23  0:38                   ` AKASHI Takahiro
2016-08-23  0:38                     ` AKASHI Takahiro
2016-08-23 11:23                     ` Pratyush Anand
2016-08-23 11:23                       ` Pratyush Anand
2016-08-24  8:04                       ` Dave Young
2016-08-24  8:04                         ` Dave Young
2016-08-24  8:04                         ` Dave Young
2016-08-24 10:25                         ` James Morse
2016-08-24 10:25                           ` James Morse
2016-08-24 10:25                           ` James Morse
2016-08-25  1:04                           ` Dave Young
2016-08-25  1:04                             ` Dave Young
2016-08-25  1:04                             ` Dave Young
2016-08-19 13:28             ` James Morse
2016-08-19 13:28               ` James Morse
2016-08-22  1:23               ` AKASHI Takahiro
2016-08-22  1:23                 ` AKASHI Takahiro
2016-08-24 14:44       ` Ard Biesheuvel
2016-08-24 14:44         ` Ard Biesheuvel
2016-08-26  6:22         ` AKASHI Takahiro
2016-08-26  6:22           ` AKASHI Takahiro
2016-08-09  1:56     ` [PATCH v24 6/9] arm64: kdump: add VMCOREINFO's for user-space coredump tools AKASHI Takahiro
2016-08-09  1:56       ` AKASHI Takahiro
2016-08-09  1:56     ` [PATCH v24 7/9] arm64: kdump: enable kdump in the arm64 defconfig AKASHI Takahiro
2016-08-09  1:56       ` AKASHI Takahiro
2016-08-09  1:56     ` [PATCH v24 8/9] arm64: kdump: update a kernel doc AKASHI Takahiro
2016-08-09  1:56       ` AKASHI Takahiro
2016-08-09  1:57   ` [PATCH v24 9/9] Documentation: dt: chosen properties for arm64 kdump AKASHI Takahiro
2016-08-09  1:57     ` AKASHI Takahiro
2016-08-09  1:57     ` AKASHI Takahiro
2016-08-19 13:26     ` Rob Herring
2016-08-19 13:26       ` Rob Herring
2016-08-19 13:26       ` Rob Herring
2016-08-22  4:28       ` AKASHI Takahiro
2016-08-22  4:28         ` AKASHI Takahiro
2016-08-22  4:28         ` AKASHI Takahiro
2016-08-30 16:34         ` Rob Herring
2016-08-30 16:34           ` Rob Herring
2016-08-30 16:34           ` Rob Herring
2016-08-30 23:45           ` AKASHI Takahiro
2016-08-30 23:45             ` AKASHI Takahiro
2016-08-30 23:45             ` AKASHI Takahiro
2016-08-31  5:02             ` AKASHI Takahiro
2016-08-31  5:02               ` AKASHI Takahiro
2016-08-31  5:02               ` AKASHI Takahiro
2016-09-02 10:11               ` AKASHI Takahiro
2016-09-02 10:11                 ` AKASHI Takahiro
2016-09-02 10:11                 ` AKASHI Takahiro
2016-09-27 23:39       ` Mark Rutland
2016-09-27 23:39         ` Mark Rutland
2016-09-27 23:39         ` Mark Rutland
2016-08-09  2:04 ` [PATCH v24 0/9] arm64: add kdump support AKASHI Takahiro
2016-08-09  2:04   ` AKASHI Takahiro
2016-08-31  3:41 ` Manish Jaggi
2016-08-31  3:41   ` Manish Jaggi
2016-08-31  5:31   ` AKASHI Takahiro
2016-08-31  5:31     ` AKASHI Takahiro
2016-09-02 12:53     ` Manish Jaggi
2016-09-02 12:53       ` Manish Jaggi
2016-09-05  8:15       ` AKASHI Takahiro
2016-09-05  8:15         ` AKASHI Takahiro
2016-09-05 12:42         ` Manish Jaggi
2016-09-05 12:42           ` Manish Jaggi
2016-09-06 15:33           ` Marc Zyngier [this message]
2016-09-06 15:33             ` Marc Zyngier
2016-09-06 16:15             ` Manish Jaggi
2016-09-06 16:15               ` Manish Jaggi
2016-09-06 16:42               ` Marc Zyngier
2016-09-06 16:42                 ` Marc Zyngier

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=57CEE1E5.7040206@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=bauerman@linux.vnet.ibm.com \
    --cc=catalin.marinas@arm.com \
    --cc=dyoung@redhat.com \
    --cc=geoff@infradead.org \
    --cc=james.morse@arm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=mjaggi@caviumnetworks.com \
    --cc=takahiro.akashi@linaro.org \
    --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.