From: james.morse@arm.com (James Morse) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v26 0/7] arm64: add kdump support Date: Fri, 16 Sep 2016 17:04:34 +0100 [thread overview] Message-ID: <57DC1812.6040906@arm.com> (raw) In-Reply-To: <20160907042908.6232-1-takahiro.akashi@linaro.org> (Cc: Ard), Mark, Ard, how does/will reserved-memory work on an APCI only system? On 07/09/16 05:29, AKASHI Takahiro wrote: > v26-specific note: After a comment from Rob[0], an idea of adding > "linux,usable-memory-range" was dropped. Instead, an existing > "reserved-memory" node will be used to limit usable memory ranges > on crash dump kernel. > This works not only on UEFI/ACPI systems but also on DT-only systems, > but if he really insists on using DT-specific "usable-memory" property, > I will post additional patches for kexec-tools. Those would be > redundant, though. > Even in that case, the kernel will not have to be changed. Some narrative on how the old memory ranges get reserved, as there is no longer any code in the series doing this, (which is pretty neat!): kexec-tools parses the list of memory ranges in /proc/iomem, and adds a node to the /reserved-memory for System RAM ranges that don't cover the crash kernel. Decompiling the crash-kernel DT from Seattle, it looks roughly like this: reserved-memory { ranges; #size-cells = <0x2>; #address-cells = <0x2>; crash_dump at 83ffe50000 { no-map; reg = <0x83 0xffe50000 0x0 0x1b0000>; }; [ ... ] }; 'no-map' means its doing the same thing to memblock as 'linux,usable-memory-range' did in earlier versions, early_init_dt_reserve_memory_arch() takes no-map to mean memblock_remove(). We trigger the removing via early_init_fdt_scan_reserved_mem() in arch/arm64/mm/init.c. This happens later than before, but its before the crashkernel and cma ranges get reserved. One difference I can see is that before we avoided memblock_remove()ing ranges that were also in memblock.nomap. This was to avoid the ACPI tables getting mapped as device memory by mistake, this is fixed by [1]. Now these ranges are published in /proc/iomem as 'reserved' and won't get covered by a reserved-memory node, and so we don't need to check memblock.nomap when memblock_remove()ing. The only odd thing I can see is for a (mythical?) pure-ACPI system. The EFI stub will create a DT with a chosen node containing pointers to the memory map and the efi command line. Now such as system may also grow a /reserved-memory node after kdump. I don't think this is a problem, but it may not match how an acpi-only system reserves memory. (how does that work?) > [1] "arm64: mark reserved memblock regions explicitly in iomem" > http://lists.infradead.org/pipermail/linux-arm-kernel/2016-August/450433.html This is queued in Will's arm64/for-next/core, > [2] "efi: arm64: treat regions with WT/WC set but WB cleared as memory" > http://lists.infradead.org/pipermail/linux-arm-kernel/2016-August/451491.html This is queued in tip, but I can't see why kdump depends on it. It only has an effect if the uefi memory map has !WB regions that linux needs to use. Thanks, James
WARNING: multiple messages have this Message-ID (diff)
From: James Morse <james.morse@arm.com> To: mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>, geoff@infradead.org, catalin.marinas@arm.com, will.deacon@arm.com, AKASHI Takahiro <takahiro.akashi@linaro.org>, bauerman@linux.vnet.ibm.com, dyoung@redhat.com, kexec@lists.infradead.org Subject: Re: [PATCH v26 0/7] arm64: add kdump support Date: Fri, 16 Sep 2016 17:04:34 +0100 [thread overview] Message-ID: <57DC1812.6040906@arm.com> (raw) In-Reply-To: <20160907042908.6232-1-takahiro.akashi@linaro.org> (Cc: Ard), Mark, Ard, how does/will reserved-memory work on an APCI only system? On 07/09/16 05:29, AKASHI Takahiro wrote: > v26-specific note: After a comment from Rob[0], an idea of adding > "linux,usable-memory-range" was dropped. Instead, an existing > "reserved-memory" node will be used to limit usable memory ranges > on crash dump kernel. > This works not only on UEFI/ACPI systems but also on DT-only systems, > but if he really insists on using DT-specific "usable-memory" property, > I will post additional patches for kexec-tools. Those would be > redundant, though. > Even in that case, the kernel will not have to be changed. Some narrative on how the old memory ranges get reserved, as there is no longer any code in the series doing this, (which is pretty neat!): kexec-tools parses the list of memory ranges in /proc/iomem, and adds a node to the /reserved-memory for System RAM ranges that don't cover the crash kernel. Decompiling the crash-kernel DT from Seattle, it looks roughly like this: reserved-memory { ranges; #size-cells = <0x2>; #address-cells = <0x2>; crash_dump@83ffe50000 { no-map; reg = <0x83 0xffe50000 0x0 0x1b0000>; }; [ ... ] }; 'no-map' means its doing the same thing to memblock as 'linux,usable-memory-range' did in earlier versions, early_init_dt_reserve_memory_arch() takes no-map to mean memblock_remove(). We trigger the removing via early_init_fdt_scan_reserved_mem() in arch/arm64/mm/init.c. This happens later than before, but its before the crashkernel and cma ranges get reserved. One difference I can see is that before we avoided memblock_remove()ing ranges that were also in memblock.nomap. This was to avoid the ACPI tables getting mapped as device memory by mistake, this is fixed by [1]. Now these ranges are published in /proc/iomem as 'reserved' and won't get covered by a reserved-memory node, and so we don't need to check memblock.nomap when memblock_remove()ing. The only odd thing I can see is for a (mythical?) pure-ACPI system. The EFI stub will create a DT with a chosen node containing pointers to the memory map and the efi command line. Now such as system may also grow a /reserved-memory node after kdump. I don't think this is a problem, but it may not match how an acpi-only system reserves memory. (how does that work?) > [1] "arm64: mark reserved memblock regions explicitly in iomem" > http://lists.infradead.org/pipermail/linux-arm-kernel/2016-August/450433.html This is queued in Will's arm64/for-next/core, > [2] "efi: arm64: treat regions with WT/WC set but WB cleared as memory" > http://lists.infradead.org/pipermail/linux-arm-kernel/2016-August/451491.html This is queued in tip, but I can't see why kdump depends on it. It only has an effect if the uefi memory map has !WB regions that linux needs to use. Thanks, James _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2016-09-16 16:04 UTC|newest] Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-09-07 4:29 [PATCH v26 0/7] arm64: add kdump support AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-07 4:29 ` [PATCH v26 1/7] arm64: kdump: reserve memory for crash dump kernel AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-22 10:23 ` Matthias Bruger 2016-09-22 10:23 ` Matthias Bruger 2016-09-23 8:37 ` AKASHI Takahiro 2016-09-23 8:37 ` AKASHI Takahiro 2016-09-07 4:29 ` [PATCH v26 2/7] arm64: kdump: implement machine_crash_shutdown() AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-14 18:09 ` James Morse 2016-09-14 18:09 ` James Morse 2016-09-15 8:13 ` Marc Zyngier 2016-09-15 8:13 ` Marc Zyngier 2016-09-16 3:21 ` AKASHI Takahiro 2016-09-16 3:21 ` AKASHI Takahiro 2016-09-16 14:49 ` James Morse 2016-09-16 14:49 ` James Morse 2016-09-20 7:36 ` AKASHI Takahiro 2016-09-20 7:36 ` AKASHI Takahiro 2016-09-07 4:29 ` [PATCH v26 3/7] arm64: kdump: add kdump support AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-16 14:50 ` James Morse 2016-09-16 14:50 ` James Morse 2016-09-20 7:46 ` AKASHI Takahiro 2016-09-20 7:46 ` AKASHI Takahiro 2016-09-22 15:50 ` Matthias Brugger 2016-09-22 15:50 ` Matthias Brugger 2016-09-07 4:29 ` [PATCH v26 4/7] arm64: kdump: add VMCOREINFO's for user-space coredump tools AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-16 16:04 ` James Morse 2016-09-16 16:04 ` James Morse 2016-09-07 4:29 ` [PATCH v26 5/7] arm64: kdump: enable kdump in the arm64 defconfig AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-07 4:29 ` [PATCH v26 6/7] arm64: kdump: update a kernel doc AKASHI Takahiro 2016-09-07 4:29 ` AKASHI Takahiro 2016-09-16 16:08 ` James Morse 2016-09-16 16:08 ` James Morse 2016-09-20 8:27 ` AKASHI Takahiro 2016-09-20 8:27 ` AKASHI Takahiro 2016-09-26 17:21 ` Matthias Brugger 2016-09-26 17:21 ` Matthias Brugger [not found] ` <20160907042908.6232-1-takahiro.akashi-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> 2016-09-07 4:32 ` [PATCH v26 7/7] Documentation: dt: chosen properties for arm64 kdump AKASHI Takahiro 2016-09-07 4:32 ` AKASHI Takahiro 2016-09-07 4:32 ` AKASHI Takahiro [not found] ` <20160907043203.6309-1-takahiro.akashi-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> 2016-09-16 13:03 ` Rob Herring 2016-09-16 13:03 ` Rob Herring 2016-09-16 13:03 ` Rob Herring 2016-09-07 4:37 ` [PATCH v26 0/7] arm64: add kdump support AKASHI Takahiro 2016-09-07 4:37 ` AKASHI Takahiro 2016-09-16 16:04 ` James Morse [this message] 2016-09-16 16:04 ` James Morse 2016-09-16 20:17 ` Ard Biesheuvel 2016-09-16 20:17 ` Ard Biesheuvel 2016-09-19 16:05 ` James Morse 2016-09-19 16:05 ` James Morse 2016-09-19 16:10 ` Ard Biesheuvel 2016-09-19 16:10 ` Ard Biesheuvel 2016-09-21 7:42 ` AKASHI Takahiro 2016-09-21 7:42 ` AKASHI Takahiro 2016-09-21 7:33 ` AKASHI Takahiro 2016-09-21 7:33 ` AKASHI Takahiro 2016-10-03 7:54 ` Manish Jaggi 2016-10-03 7:54 ` Manish Jaggi 2016-10-03 11:04 ` AKASHI Takahiro 2016-10-03 11:04 ` AKASHI Takahiro 2016-10-03 12:41 ` Manish Jaggi 2016-10-03 12:41 ` Manish Jaggi 2016-10-04 2:56 ` AKASHI Takahiro 2016-10-04 2:56 ` AKASHI Takahiro 2016-10-04 9:46 ` James Morse 2016-10-04 9:46 ` James Morse 2016-10-04 10:05 ` Manish Jaggi 2016-10-04 10:05 ` Manish Jaggi 2016-10-04 10:53 ` James Morse 2016-10-04 10:53 ` James Morse 2016-10-04 13:23 ` Manish Jaggi 2016-10-04 13:23 ` Manish Jaggi 2016-10-05 5:48 ` AKASHI Takahiro 2016-10-05 5:48 ` AKASHI Takahiro 2016-10-05 5:41 ` AKASHI Takahiro 2016-10-05 5:41 ` AKASHI Takahiro 2016-10-04 10:18 ` Mark Rutland 2016-10-04 10:18 ` Mark Rutland 2016-10-17 15:41 ` Ruslan Bilovol 2016-10-17 15:41 ` Ruslan Bilovol 2016-10-18 6:26 ` AKASHI Takahiro 2016-10-18 6:26 ` AKASHI Takahiro 2016-11-01 12:19 ` Ruslan Bilovol 2016-11-01 12:19 ` Ruslan Bilovol
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=57DC1812.6040906@arm.com \ --to=james.morse@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ /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: linkBe 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.