All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Eric DeVolder <eric.devolder@oracle.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	kexec@lists.infradead.org, ebiederm@xmission.com,
	dyoung@redhat.com, vgoyal@redhat.com, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	hpa@zytor.com, nramas@linux.microsoft.com,
	thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de,
	rppt@kernel.org, david@redhat.com, sourabhjain@linux.ibm.com,
	konrad.wilk@oracle.com, boris.ostrovsky@oracle.com
Subject: Re: [PATCH v21 0/7] crash: Kernel handling of CPU and memory hot un/plug
Date: Thu, 6 Apr 2023 19:06:19 +0800	[thread overview]
Message-ID: <ZC6nq13EDIrK1XFe@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20230404180326.6890-1-eric.devolder@oracle.com>

On 04/04/23 at 02:03pm, Eric DeVolder wrote:
> Once the kdump service is loaded, if changes to CPUs or memory occur,
> either by hot un/plug or off/onlining, the crash elfcorehdr must also
> be updated.
> 
> The elfcorehdr describes to kdump the CPUs and memory in the system,
> and any inaccuracies can result in a vmcore with missing CPU context
> or memory regions.
> 
> The current solution utilizes udev to initiate an unload-then-reload
> of the kdump image (eg. kernel, initrd, boot_params, purgatory and
> elfcorehdr) by the userspace kexec utility. In the original post I
> outlined the significant performance problems related to offloading
> this activity to userspace.
> 
> This patchset introduces a generic crash handler that registers with
> the CPU and memory notifiers. Upon CPU or memory changes, from either
> hot un/plug or off/onlining, this generic handler is invoked and
> performs important housekeeping, for example obtaining the appropriate
> lock, and then invokes an architecture specific handler to do the
> appropriate elfcorehdr update.
> 
> Note the description in patch 'crash: change crash_prepare_elf64_headers()
> to for_each_possible_cpu()' and 'x86/crash: optimize CPU changes' that
> enables further optimizations related to CPU plug/unplug/online/offline
> performance of elfcorehdr updates.
> 
> In the case of x86_64, the arch specific handler generates a new
> elfcorehdr, and overwrites the old one in memory; thus no involvement
> with userspace needed.
> 
> To realize the benefits/test this patchset, one must make a couple
> of minor changes to userspace:
> 
>  - Prevent udev from updating kdump crash kernel on hot un/plug changes.
>    Add the following as the first lines to the RHEL udev rule file
>    /usr/lib/udev/rules.d/98-kexec.rules:
> 
>    # The kernel updates the crash elfcorehdr for CPU and memory changes
>    SUBSYSTEM=="cpu", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
>    SUBSYSTEM=="memory", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
> 
>    With this changeset applied, the two rules evaluate to false for
>    CPU and memory change events and thus skip the userspace
>    unload-then-reload of kdump.
> 
>  - Change to the kexec_file_load for loading the kdump kernel:
>    Eg. on RHEL: in /usr/bin/kdumpctl, change to:
>     standard_kexec_args="-p -d -s"
>    which adds the -s to select kexec_file_load() syscall.
> 
> This kernel patchset also supports kexec_load() with a modified kexec
> userspace utility. A working changeset to the kexec userspace utility
> is posted to the kexec-tools mailing list here:
> 
>  http://lists.infradead.org/pipermail/kexec/2022-October/026032.html
> 
> To use the kexec-tools patch, apply, build and install kexec-tools,
> then change the kdumpctl's standard_kexec_args to replace the -s with
> --hotplug. The removal of -s reverts to the kexec_load syscall and
> the addition of --hotplug invokes the changes put forth in the
> kexec-tools patch.

Other than the nitpick in patch 2, this series looks good to me.

Acked-by: Baoquan He <bhe@redhat.com>


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

WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: Eric DeVolder <eric.devolder@oracle.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	kexec@lists.infradead.org, ebiederm@xmission.com,
	dyoung@redhat.com, vgoyal@redhat.com, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	hpa@zytor.com, nramas@linux.microsoft.com,
	thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de,
	rppt@kernel.org, david@redhat.com, sourabhjain@linux.ibm.com,
	konrad.wilk@oracle.com, boris.ostrovsky@oracle.com
Subject: Re: [PATCH v21 0/7] crash: Kernel handling of CPU and memory hot un/plug
Date: Thu, 6 Apr 2023 19:06:19 +0800	[thread overview]
Message-ID: <ZC6nq13EDIrK1XFe@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20230404180326.6890-1-eric.devolder@oracle.com>

On 04/04/23 at 02:03pm, Eric DeVolder wrote:
> Once the kdump service is loaded, if changes to CPUs or memory occur,
> either by hot un/plug or off/onlining, the crash elfcorehdr must also
> be updated.
> 
> The elfcorehdr describes to kdump the CPUs and memory in the system,
> and any inaccuracies can result in a vmcore with missing CPU context
> or memory regions.
> 
> The current solution utilizes udev to initiate an unload-then-reload
> of the kdump image (eg. kernel, initrd, boot_params, purgatory and
> elfcorehdr) by the userspace kexec utility. In the original post I
> outlined the significant performance problems related to offloading
> this activity to userspace.
> 
> This patchset introduces a generic crash handler that registers with
> the CPU and memory notifiers. Upon CPU or memory changes, from either
> hot un/plug or off/onlining, this generic handler is invoked and
> performs important housekeeping, for example obtaining the appropriate
> lock, and then invokes an architecture specific handler to do the
> appropriate elfcorehdr update.
> 
> Note the description in patch 'crash: change crash_prepare_elf64_headers()
> to for_each_possible_cpu()' and 'x86/crash: optimize CPU changes' that
> enables further optimizations related to CPU plug/unplug/online/offline
> performance of elfcorehdr updates.
> 
> In the case of x86_64, the arch specific handler generates a new
> elfcorehdr, and overwrites the old one in memory; thus no involvement
> with userspace needed.
> 
> To realize the benefits/test this patchset, one must make a couple
> of minor changes to userspace:
> 
>  - Prevent udev from updating kdump crash kernel on hot un/plug changes.
>    Add the following as the first lines to the RHEL udev rule file
>    /usr/lib/udev/rules.d/98-kexec.rules:
> 
>    # The kernel updates the crash elfcorehdr for CPU and memory changes
>    SUBSYSTEM=="cpu", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
>    SUBSYSTEM=="memory", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
> 
>    With this changeset applied, the two rules evaluate to false for
>    CPU and memory change events and thus skip the userspace
>    unload-then-reload of kdump.
> 
>  - Change to the kexec_file_load for loading the kdump kernel:
>    Eg. on RHEL: in /usr/bin/kdumpctl, change to:
>     standard_kexec_args="-p -d -s"
>    which adds the -s to select kexec_file_load() syscall.
> 
> This kernel patchset also supports kexec_load() with a modified kexec
> userspace utility. A working changeset to the kexec userspace utility
> is posted to the kexec-tools mailing list here:
> 
>  http://lists.infradead.org/pipermail/kexec/2022-October/026032.html
> 
> To use the kexec-tools patch, apply, build and install kexec-tools,
> then change the kdumpctl's standard_kexec_args to replace the -s with
> --hotplug. The removal of -s reverts to the kexec_load syscall and
> the addition of --hotplug invokes the changes put forth in the
> kexec-tools patch.

Other than the nitpick in patch 2, this series looks good to me.

Acked-by: Baoquan He <bhe@redhat.com>


  parent reply	other threads:[~2023-04-06 11:06 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-04 18:03 [PATCH v21 0/7] crash: Kernel handling of CPU and memory hot un/plug Eric DeVolder
2023-04-04 18:03 ` Eric DeVolder
2023-04-04 18:03 ` [PATCH v21 1/7] crash: move a few code bits to setup support of crash hotplug Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-04 18:03 ` [PATCH v21 2/7] crash: add generic infrastructure for crash hotplug support Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-06 11:04   ` Baoquan He
2023-04-06 11:04     ` Baoquan He
2023-04-06 16:10     ` Eric DeVolder
2023-04-06 16:10       ` Eric DeVolder
2023-04-06 23:58       ` Baoquan He
2023-04-06 23:58         ` Baoquan He
2023-04-18 13:55         ` Eric DeVolder
2023-04-18 13:55           ` Eric DeVolder
2023-04-19  0:05           ` Baoquan He
2023-04-19  0:05             ` Baoquan He
2023-04-12  8:38       ` Sourabh Jain
2023-04-12  8:38         ` Sourabh Jain
2023-04-04 18:03 ` [PATCH v21 3/7] kexec: exclude elfcorehdr from the segment digest Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-04 18:03 ` [PATCH v21 4/7] crash: memory and CPU hotplug sysfs attributes Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-04 18:03 ` [PATCH v21 5/7] x86/crash: add x86 crash hotplug support Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-27  7:09   ` Hari Bathini
2023-04-27  7:09     ` Hari Bathini
2023-04-27  8:49     ` Baoquan He
2023-04-27  8:49       ` Baoquan He
2023-04-27 16:56       ` Hari Bathini
2023-04-27 16:56         ` Hari Bathini
2023-04-28  9:25         ` Baoquan He
2023-04-28  9:25           ` Baoquan He
2023-04-28 18:31           ` Hari Bathini
2023-04-28 18:31             ` Hari Bathini
2023-05-01 18:33             ` Eric DeVolder
2023-05-01 18:33               ` Eric DeVolder
2023-05-02  9:36               ` Hari Bathini
2023-05-02  9:36                 ` Hari Bathini
2023-04-04 18:03 ` [PATCH v21 6/7] crash: change crash_prepare_elf64_headers() to for_each_possible_cpu() Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-04 18:03 ` [PATCH v21 7/7] x86/crash: optimize CPU changes Eric DeVolder
2023-04-04 18:03   ` Eric DeVolder
2023-04-06 11:06 ` Baoquan He [this message]
2023-04-06 11:06   ` [PATCH v21 0/7] crash: Kernel handling of CPU and memory hot un/plug Baoquan He
2023-04-06 16:12   ` Eric DeVolder
2023-04-06 16:12     ` Eric DeVolder
2023-04-27  7:08 ` Hari Bathini
2023-04-27  7:08   ` Hari Bathini
2023-05-01 18:35   ` Eric DeVolder
2023-05-01 18:35     ` Eric DeVolder

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=ZC6nq13EDIrK1XFe@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@redhat.com \
    --cc=dyoung@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=efault@gmx.de \
    --cc=eric.devolder@oracle.com \
    --cc=hpa@zytor.com \
    --cc=kexec@lists.infradead.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=nramas@linux.microsoft.com \
    --cc=robh@kernel.org \
    --cc=rppt@kernel.org \
    --cc=sourabhjain@linux.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=vgoyal@redhat.com \
    --cc=x86@kernel.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: 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.