From: Sourabh Jain <sourabhjain@linux.ibm.com>
To: Eric DeVolder <eric.devolder@oracle.com>,
linux-kernel@vger.kernel.org, x86@kernel.org,
kexec@lists.infradead.org, ebiederm@xmission.com,
dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com
Cc: 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, konrad.wilk@oracle.com,
boris.ostrovsky@oracle.com
Subject: Re: [PATCH v19 7/7] x86/crash: optimize cpu changes
Date: Tue, 7 Mar 2023 14:30:09 +0530 [thread overview]
Message-ID: <53343c55-c59f-fee7-22f5-94de15a1d18c@linux.ibm.com> (raw)
In-Reply-To: <20230306162228.8277-8-eric.devolder@oracle.com>
On 06/03/23 21:52, Eric DeVolder wrote:
> This patch is dependent upon the patch 'crash: change
> crash_prepare_elf64_headers() to for_each_possible_cpu()'. With that
> patch, crash_prepare_elf64_headers() writes out an ELF cpu PT_NOTE
> for all possible cpus, thus further cpu changes to the elfcorehdr
> are not needed.
>
> This change works for kexec_file_load() and kexec_load() syscalls.
> For kexec_file_load(), crash_prepare_elf64_headers() is utilized
> directly and thus all ELF cpu PT_NOTEs are in the elfcorehdr already.
> This is the kimage->file_mode term.
> For kexec_load() syscall, one cpu or memory change will cause the
> elfcorehdr to be updated via crash_prepare_elf64_headers() and at
> that point all ELF cpu PT_NOTEs are in the elfcorehdr. This is the
> kimage->elfcorehdr_updated term.
>
> This code is intentionally *NOT* hoisted into
> crash_handle_hotplug_event() as it would prevent the arch-specific
> handler from running for cpu changes. This would break PPC, for
> example, which needs to update other information besides the
> elfcorehdr, on cpu changes.
>
> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
> ---
> arch/x86/kernel/crash.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> index c9aaec9de775..82ea2b1bdc61 100644
> --- a/arch/x86/kernel/crash.c
> +++ b/arch/x86/kernel/crash.c
> @@ -471,6 +471,16 @@ void arch_crash_handle_hotplug_event(struct kimage *image)
> unsigned long mem, memsz;
> unsigned long elfsz = 0;
>
> + /* As crash_prepare_elf64_headers() has already described all
> + * possible cpus, there is no need to update the elfcorehdr
> + * for additional cpu changes. This works for both kexec_load()
> + * and kexec_file_load() syscalls.
> + */
> + if ((image->file_mode || image->elfcorehdr_updated) &&
> + ((image->hp_action == KEXEC_CRASH_HP_ADD_CPU) ||
> + (image->hp_action == KEXEC_CRASH_HP_REMOVE_CPU)))
> + return;
I like the idea of having elfcorehdr_updated to track elfcoredhr segment
updates.
It handles the possible CPU thing for kexec_load syscall nicely.
Thanks for incorporating the possible CPU change.
The patch series looks good to me.
Reviewed-by: Sourabh Jain <sourabhjain@linux.ibm.com>
- Sourabh Jain
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Sourabh Jain <sourabhjain@linux.ibm.com>
To: Eric DeVolder <eric.devolder@oracle.com>,
linux-kernel@vger.kernel.org, x86@kernel.org,
kexec@lists.infradead.org, ebiederm@xmission.com,
dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com
Cc: 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, konrad.wilk@oracle.com,
boris.ostrovsky@oracle.com
Subject: Re: [PATCH v19 7/7] x86/crash: optimize cpu changes
Date: Tue, 7 Mar 2023 14:30:09 +0530 [thread overview]
Message-ID: <53343c55-c59f-fee7-22f5-94de15a1d18c@linux.ibm.com> (raw)
In-Reply-To: <20230306162228.8277-8-eric.devolder@oracle.com>
On 06/03/23 21:52, Eric DeVolder wrote:
> This patch is dependent upon the patch 'crash: change
> crash_prepare_elf64_headers() to for_each_possible_cpu()'. With that
> patch, crash_prepare_elf64_headers() writes out an ELF cpu PT_NOTE
> for all possible cpus, thus further cpu changes to the elfcorehdr
> are not needed.
>
> This change works for kexec_file_load() and kexec_load() syscalls.
> For kexec_file_load(), crash_prepare_elf64_headers() is utilized
> directly and thus all ELF cpu PT_NOTEs are in the elfcorehdr already.
> This is the kimage->file_mode term.
> For kexec_load() syscall, one cpu or memory change will cause the
> elfcorehdr to be updated via crash_prepare_elf64_headers() and at
> that point all ELF cpu PT_NOTEs are in the elfcorehdr. This is the
> kimage->elfcorehdr_updated term.
>
> This code is intentionally *NOT* hoisted into
> crash_handle_hotplug_event() as it would prevent the arch-specific
> handler from running for cpu changes. This would break PPC, for
> example, which needs to update other information besides the
> elfcorehdr, on cpu changes.
>
> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
> ---
> arch/x86/kernel/crash.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> index c9aaec9de775..82ea2b1bdc61 100644
> --- a/arch/x86/kernel/crash.c
> +++ b/arch/x86/kernel/crash.c
> @@ -471,6 +471,16 @@ void arch_crash_handle_hotplug_event(struct kimage *image)
> unsigned long mem, memsz;
> unsigned long elfsz = 0;
>
> + /* As crash_prepare_elf64_headers() has already described all
> + * possible cpus, there is no need to update the elfcorehdr
> + * for additional cpu changes. This works for both kexec_load()
> + * and kexec_file_load() syscalls.
> + */
> + if ((image->file_mode || image->elfcorehdr_updated) &&
> + ((image->hp_action == KEXEC_CRASH_HP_ADD_CPU) ||
> + (image->hp_action == KEXEC_CRASH_HP_REMOVE_CPU)))
> + return;
I like the idea of having elfcorehdr_updated to track elfcoredhr segment
updates.
It handles the possible CPU thing for kexec_load syscall nicely.
Thanks for incorporating the possible CPU change.
The patch series looks good to me.
Reviewed-by: Sourabh Jain <sourabhjain@linux.ibm.com>
- Sourabh Jain
next prev parent reply other threads:[~2023-03-07 9:00 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-06 16:22 [PATCH v19 0/7] crash: Kernel handling of CPU and memory hot un/plug Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-06 16:22 ` [PATCH v19 1/7] crash: move a few code bits to setup support of crash hotplug Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-06 16:22 ` [PATCH v19 2/7] crash: add generic infrastructure for crash hotplug support Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-14 10:43 ` Baoquan He
2023-03-14 10:43 ` Baoquan He
2023-03-14 13:28 ` Eric DeVolder
2023-03-14 13:28 ` Eric DeVolder
2023-03-14 14:22 ` Baoquan He
2023-03-14 14:22 ` Baoquan He
2023-03-14 14:25 ` Eric DeVolder
2023-03-14 14:25 ` Eric DeVolder
2023-03-16 10:11 ` Baoquan He
2023-03-16 10:11 ` Baoquan He
2023-03-16 14:44 ` Eric DeVolder
2023-03-16 14:44 ` Eric DeVolder
2023-03-16 15:47 ` Eric DeVolder
2023-03-16 15:47 ` Eric DeVolder
2023-03-17 9:30 ` Baoquan He
2023-03-17 9:30 ` Baoquan He
2023-03-17 9:04 ` Baoquan He
2023-03-17 9:04 ` Baoquan He
2023-03-17 18:13 ` Eric DeVolder
2023-03-17 18:13 ` Eric DeVolder
2023-03-06 16:22 ` [PATCH v19 3/7] kexec: exclude elfcorehdr from the segment digest Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-06 16:22 ` [PATCH v19 4/7] crash: memory and cpu hotplug sysfs attributes Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-06 16:22 ` [PATCH v19 5/7] x86/crash: add x86 crash hotplug support Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-08 3:08 ` Sourabh Jain
2023-03-08 3:08 ` Sourabh Jain
2023-03-06 16:22 ` [PATCH v19 6/7] crash: change crash_prepare_elf64_headers() to for_each_possible_cpu() Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-07 8:48 ` Sourabh Jain
2023-03-07 8:48 ` Sourabh Jain
2023-03-17 19:12 ` Eric DeVolder
2023-03-17 19:12 ` Eric DeVolder
2023-03-06 16:22 ` [PATCH v19 7/7] x86/crash: optimize cpu changes Eric DeVolder
2023-03-06 16:22 ` Eric DeVolder
2023-03-07 9:00 ` Sourabh Jain [this message]
2023-03-07 9:00 ` Sourabh Jain
2023-03-17 18:42 ` Eric DeVolder
2023-03-17 18:42 ` 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=53343c55-c59f-fee7-22f5-94de15a1d18c@linux.ibm.com \
--to=sourabhjain@linux.ibm.com \
--cc=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=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.