From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: James Morse <james.morse@arm.com>
Cc: herbert@gondor.apana.org.au, bhe@redhat.com,
ard.biesheuvel@linaro.org, catalin.marinas@arm.com,
bhsharma@redhat.com, will.deacon@arm.com,
linux-kernel@vger.kernel.org, dhowells@redhat.com, arnd@arndb.de,
linux-arm-kernel@lists.infradead.org, kexec@lists.infradead.org,
dyoung@redhat.com, davem@davemloft.net, vgoyal@redhat.com
Subject: Re: [PATCH v9 03/11] arm64: kexec_file: invoke the kernel without purgatory
Date: Fri, 18 May 2018 15:22:49 +0900 [thread overview]
Message-ID: <20180518062248.GK2737@linaro.org> (raw)
In-Reply-To: <fbd2c6c6-be20-a9fa-0303-e4448225df18@arm.com>
James,
On Tue, May 15, 2018 at 05:15:52PM +0100, James Morse wrote:
> Hi Akashi,
>
> On 15/05/18 05:45, AKASHI Takahiro wrote:
> > On Fri, May 11, 2018 at 06:03:49PM +0100, James Morse wrote:
> >> On 07/05/18 06:22, AKASHI Takahiro wrote:
> >>> On Tue, May 01, 2018 at 06:46:06PM +0100, James Morse wrote:
> >>>> On 25/04/18 07:26, AKASHI Takahiro wrote:
> >>>>> diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c
> >>>>> index f76ea92dff91..f7dbba00be10 100644
> >>>>> --- a/arch/arm64/kernel/machine_kexec.c
> >>>>> +++ b/arch/arm64/kernel/machine_kexec.c
> >>>>> @@ -205,10 +205,17 @@ void machine_kexec(struct kimage *kimage)
> >>
> >>>>> cpu_soft_restart(kimage != kexec_crash_image,
> >>>>> - reboot_code_buffer_phys, kimage->head, kimage->start, 0);
> >>>>> + reboot_code_buffer_phys, kimage->head, kimage->start,
> >>>>> +#ifdef CONFIG_KEXEC_FILE
> >>>>> + kimage->purgatory_info.purgatory_buf ?
> >>>>> + 0 : kimage->arch.dtb_mem);
> >>>>> +#else
> >>>>> + 0);
> >>>>> +#endif
> >>
> >>
> >>>> purgatory_buf seems to only be set in kexec_purgatory_setup_kbuf(), called from
> >>>> kexec_load_purgatory(), which we don't use. How does this get a value?
> >>>>
> >>>> Would it be better to always use kimage->arch.dtb_mem, and ensure that is 0 for
> >>>> regular kexec (as we can't know where the dtb is)? (image_arg may then be a
> >>>> better name).
> >>>
> >>> The problem is arch.dtb_mem is currently defined only if CONFIG_KEXEC_FILE.
> >>
> >> I thought it was ARCH_HAS_KIMAGE_ARCH, which we can define all the time if
> >> that's what we want.
> >>
> >>
> >>> So I would like to
> >>> - merge this patch with patch#8
> >>> - change the condition
> >>> #ifdef CONFIG_KEXEC_FILE
> >>> kimage->file_mode ? kimage->arch.dtb_mem : 0);
We don't need "kimage->file_mode ?" since arch.dtb_mem is 0 if !file_mode.
> >>> #else
> >>> 0);
> >>> #endif
> >>
> >> If we can avoid even this #ifdef by always having kimage->arch, I'd prefer that.
> >> If we do that 'dtb_mem' would need some thing that indicates its for kexec_file,
> >> as kexec has a DTB too, we just don't know where it is...
> >
> > OK, but I want to have a minimum of kexec.arch always exist.
>
> I'm curious, why? Its 32bytes that is allocated a maximum of twice.
I believe that I'm a stingy minimalist :)
> (my questions on what needs to go in there were because it looked like a third
> user was missing...)
>
>
> > How about this?
> >
> > | struct kimage_arch {
> > | phys_addr_t dtb_mem;
> > | #ifdef CONFIG_KEXEC_FILE
>
> #ifdef in structs just breeds more #ifdefs, as the code that accesses those
> members has to be behind the same set of conditions.
>
> Given this, I prefer the #ifdefs around cpu_soft_restart() as it doesn't force
> us to add more #ifdefs later.
OK
> For either option without purgatory_info:
> Reviewed-by: James Morse <james.morse@arm.com>
Thanks,
-Takahiro AKASHI
>
> Thanks,
>
> James
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: takahiro.akashi@linaro.org (AKASHI Takahiro)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 03/11] arm64: kexec_file: invoke the kernel without purgatory
Date: Fri, 18 May 2018 15:22:49 +0900 [thread overview]
Message-ID: <20180518062248.GK2737@linaro.org> (raw)
In-Reply-To: <fbd2c6c6-be20-a9fa-0303-e4448225df18@arm.com>
James,
On Tue, May 15, 2018 at 05:15:52PM +0100, James Morse wrote:
> Hi Akashi,
>
> On 15/05/18 05:45, AKASHI Takahiro wrote:
> > On Fri, May 11, 2018 at 06:03:49PM +0100, James Morse wrote:
> >> On 07/05/18 06:22, AKASHI Takahiro wrote:
> >>> On Tue, May 01, 2018 at 06:46:06PM +0100, James Morse wrote:
> >>>> On 25/04/18 07:26, AKASHI Takahiro wrote:
> >>>>> diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c
> >>>>> index f76ea92dff91..f7dbba00be10 100644
> >>>>> --- a/arch/arm64/kernel/machine_kexec.c
> >>>>> +++ b/arch/arm64/kernel/machine_kexec.c
> >>>>> @@ -205,10 +205,17 @@ void machine_kexec(struct kimage *kimage)
> >>
> >>>>> cpu_soft_restart(kimage != kexec_crash_image,
> >>>>> - reboot_code_buffer_phys, kimage->head, kimage->start, 0);
> >>>>> + reboot_code_buffer_phys, kimage->head, kimage->start,
> >>>>> +#ifdef CONFIG_KEXEC_FILE
> >>>>> + kimage->purgatory_info.purgatory_buf ?
> >>>>> + 0 : kimage->arch.dtb_mem);
> >>>>> +#else
> >>>>> + 0);
> >>>>> +#endif
> >>
> >>
> >>>> purgatory_buf seems to only be set in kexec_purgatory_setup_kbuf(), called from
> >>>> kexec_load_purgatory(), which we don't use. How does this get a value?
> >>>>
> >>>> Would it be better to always use kimage->arch.dtb_mem, and ensure that is 0 for
> >>>> regular kexec (as we can't know where the dtb is)? (image_arg may then be a
> >>>> better name).
> >>>
> >>> The problem is arch.dtb_mem is currently defined only if CONFIG_KEXEC_FILE.
> >>
> >> I thought it was ARCH_HAS_KIMAGE_ARCH, which we can define all the time if
> >> that's what we want.
> >>
> >>
> >>> So I would like to
> >>> - merge this patch with patch#8
> >>> - change the condition
> >>> #ifdef CONFIG_KEXEC_FILE
> >>> kimage->file_mode ? kimage->arch.dtb_mem : 0);
We don't need "kimage->file_mode ?" since arch.dtb_mem is 0 if !file_mode.
> >>> #else
> >>> 0);
> >>> #endif
> >>
> >> If we can avoid even this #ifdef by always having kimage->arch, I'd prefer that.
> >> If we do that 'dtb_mem' would need some thing that indicates its for kexec_file,
> >> as kexec has a DTB too, we just don't know where it is...
> >
> > OK, but I want to have a minimum of kexec.arch always exist.
>
> I'm curious, why? Its 32bytes that is allocated a maximum of twice.
I believe that I'm a stingy minimalist :)
> (my questions on what needs to go in there were because it looked like a third
> user was missing...)
>
>
> > How about this?
> >
> > | struct kimage_arch {
> > | phys_addr_t dtb_mem;
> > | #ifdef CONFIG_KEXEC_FILE
>
> #ifdef in structs just breeds more #ifdefs, as the code that accesses those
> members has to be behind the same set of conditions.
>
> Given this, I prefer the #ifdefs around cpu_soft_restart() as it doesn't force
> us to add more #ifdefs later.
OK
> For either option without purgatory_info:
> Reviewed-by: James Morse <james.morse@arm.com>
Thanks,
-Takahiro AKASHI
>
> Thanks,
>
> James
WARNING: multiple messages have this Message-ID (diff)
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: James Morse <james.morse@arm.com>
Cc: catalin.marinas@arm.com, will.deacon@arm.com,
dhowells@redhat.com, vgoyal@redhat.com,
herbert@gondor.apana.org.au, davem@davemloft.net,
dyoung@redhat.com, bhe@redhat.com, arnd@arndb.de,
ard.biesheuvel@linaro.org, bhsharma@redhat.com,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v9 03/11] arm64: kexec_file: invoke the kernel without purgatory
Date: Fri, 18 May 2018 15:22:49 +0900 [thread overview]
Message-ID: <20180518062248.GK2737@linaro.org> (raw)
In-Reply-To: <fbd2c6c6-be20-a9fa-0303-e4448225df18@arm.com>
James,
On Tue, May 15, 2018 at 05:15:52PM +0100, James Morse wrote:
> Hi Akashi,
>
> On 15/05/18 05:45, AKASHI Takahiro wrote:
> > On Fri, May 11, 2018 at 06:03:49PM +0100, James Morse wrote:
> >> On 07/05/18 06:22, AKASHI Takahiro wrote:
> >>> On Tue, May 01, 2018 at 06:46:06PM +0100, James Morse wrote:
> >>>> On 25/04/18 07:26, AKASHI Takahiro wrote:
> >>>>> diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c
> >>>>> index f76ea92dff91..f7dbba00be10 100644
> >>>>> --- a/arch/arm64/kernel/machine_kexec.c
> >>>>> +++ b/arch/arm64/kernel/machine_kexec.c
> >>>>> @@ -205,10 +205,17 @@ void machine_kexec(struct kimage *kimage)
> >>
> >>>>> cpu_soft_restart(kimage != kexec_crash_image,
> >>>>> - reboot_code_buffer_phys, kimage->head, kimage->start, 0);
> >>>>> + reboot_code_buffer_phys, kimage->head, kimage->start,
> >>>>> +#ifdef CONFIG_KEXEC_FILE
> >>>>> + kimage->purgatory_info.purgatory_buf ?
> >>>>> + 0 : kimage->arch.dtb_mem);
> >>>>> +#else
> >>>>> + 0);
> >>>>> +#endif
> >>
> >>
> >>>> purgatory_buf seems to only be set in kexec_purgatory_setup_kbuf(), called from
> >>>> kexec_load_purgatory(), which we don't use. How does this get a value?
> >>>>
> >>>> Would it be better to always use kimage->arch.dtb_mem, and ensure that is 0 for
> >>>> regular kexec (as we can't know where the dtb is)? (image_arg may then be a
> >>>> better name).
> >>>
> >>> The problem is arch.dtb_mem is currently defined only if CONFIG_KEXEC_FILE.
> >>
> >> I thought it was ARCH_HAS_KIMAGE_ARCH, which we can define all the time if
> >> that's what we want.
> >>
> >>
> >>> So I would like to
> >>> - merge this patch with patch#8
> >>> - change the condition
> >>> #ifdef CONFIG_KEXEC_FILE
> >>> kimage->file_mode ? kimage->arch.dtb_mem : 0);
We don't need "kimage->file_mode ?" since arch.dtb_mem is 0 if !file_mode.
> >>> #else
> >>> 0);
> >>> #endif
> >>
> >> If we can avoid even this #ifdef by always having kimage->arch, I'd prefer that.
> >> If we do that 'dtb_mem' would need some thing that indicates its for kexec_file,
> >> as kexec has a DTB too, we just don't know where it is...
> >
> > OK, but I want to have a minimum of kexec.arch always exist.
>
> I'm curious, why? Its 32bytes that is allocated a maximum of twice.
I believe that I'm a stingy minimalist :)
> (my questions on what needs to go in there were because it looked like a third
> user was missing...)
>
>
> > How about this?
> >
> > | struct kimage_arch {
> > | phys_addr_t dtb_mem;
> > | #ifdef CONFIG_KEXEC_FILE
>
> #ifdef in structs just breeds more #ifdefs, as the code that accesses those
> members has to be behind the same set of conditions.
>
> Given this, I prefer the #ifdefs around cpu_soft_restart() as it doesn't force
> us to add more #ifdefs later.
OK
> For either option without purgatory_info:
> Reviewed-by: James Morse <james.morse@arm.com>
Thanks,
-Takahiro AKASHI
>
> Thanks,
>
> James
next prev parent reply other threads:[~2018-05-18 6:23 UTC|newest]
Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-25 6:26 [PATCH v9 00/11] arm64: kexec: add kexec_file_load() support AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 01/11] asm-generic: add kexec_file_load system call to unistd.h AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 02/11] kexec_file: make kexec_image_post_load_cleanup_default() global AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-28 9:45 ` Dave Young
2018-04-28 9:45 ` Dave Young
2018-04-28 9:45 ` Dave Young
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-07 4:40 ` AKASHI Takahiro
2018-05-07 4:40 ` AKASHI Takahiro
2018-05-07 4:40 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 03/11] arm64: kexec_file: invoke the kernel without purgatory AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-07 5:22 ` AKASHI Takahiro
2018-05-07 5:22 ` AKASHI Takahiro
2018-05-07 5:22 ` AKASHI Takahiro
2018-05-11 17:03 ` James Morse
2018-05-11 17:03 ` James Morse
2018-05-11 17:03 ` James Morse
2018-05-15 4:45 ` AKASHI Takahiro
2018-05-15 4:45 ` AKASHI Takahiro
2018-05-15 4:45 ` AKASHI Takahiro
2018-05-15 16:15 ` James Morse
2018-05-15 16:15 ` James Morse
2018-05-15 16:15 ` James Morse
2018-05-18 6:22 ` AKASHI Takahiro [this message]
2018-05-18 6:22 ` AKASHI Takahiro
2018-05-18 6:22 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 04/11] arm64: kexec_file: allocate memory walking through memblock list AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-07 5:59 ` AKASHI Takahiro
2018-05-07 5:59 ` AKASHI Takahiro
2018-05-07 5:59 ` AKASHI Takahiro
2018-05-15 4:35 ` AKASHI Takahiro
2018-05-15 4:35 ` AKASHI Takahiro
2018-05-15 4:35 ` AKASHI Takahiro
2018-05-15 16:17 ` James Morse
2018-05-15 16:17 ` James Morse
2018-05-15 16:17 ` James Morse
2018-05-17 2:10 ` Baoquan He
2018-05-17 2:10 ` Baoquan He
2018-05-17 2:10 ` Baoquan He
2018-05-17 2:15 ` Baoquan He
2018-05-17 2:15 ` Baoquan He
2018-05-17 2:15 ` Baoquan He
2018-05-17 18:04 ` James Morse
2018-05-17 18:04 ` James Morse
2018-05-17 18:04 ` James Morse
2018-05-18 1:37 ` Baoquan He
2018-05-18 1:37 ` Baoquan He
2018-05-18 1:37 ` Baoquan He
2018-05-18 5:07 ` AKASHI Takahiro
2018-05-18 5:07 ` AKASHI Takahiro
2018-05-18 5:07 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 05/11] arm64: kexec_file: load initrd and device-tree AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-05-15 16:20 ` James Morse
2018-05-15 16:20 ` James Morse
2018-05-15 16:20 ` James Morse
2018-05-18 7:11 ` AKASHI Takahiro
2018-05-18 7:11 ` AKASHI Takahiro
2018-05-18 7:11 ` AKASHI Takahiro
2018-05-18 7:42 ` AKASHI Takahiro
2018-05-18 7:42 ` AKASHI Takahiro
2018-05-18 7:42 ` AKASHI Takahiro
2018-05-18 15:59 ` James Morse
2018-05-18 15:59 ` James Morse
2018-05-18 15:59 ` James Morse
2018-04-25 6:26 ` [PATCH v9 06/11] arm64: kexec_file: allow for loading Image-format kernel AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-01 17:46 ` James Morse
2018-05-07 7:21 ` AKASHI Takahiro
2018-05-07 7:21 ` AKASHI Takahiro
2018-05-07 7:21 ` AKASHI Takahiro
2018-05-11 17:07 ` James Morse
2018-05-11 17:07 ` James Morse
2018-05-11 17:07 ` James Morse
2018-05-15 5:13 ` AKASHI Takahiro
2018-05-15 5:13 ` AKASHI Takahiro
2018-05-15 5:13 ` AKASHI Takahiro
2018-05-15 17:14 ` James Morse
2018-05-15 17:14 ` James Morse
2018-05-15 17:14 ` James Morse
2018-05-21 9:32 ` AKASHI Takahiro
2018-05-21 9:32 ` AKASHI Takahiro
2018-05-21 9:32 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 07/11] arm64: kexec_file: add crash dump support AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-05-15 17:11 ` James Morse
2018-05-15 17:11 ` James Morse
2018-05-15 17:11 ` James Morse
2018-05-16 8:34 ` James Morse
2018-05-16 8:34 ` James Morse
2018-05-16 8:34 ` James Morse
2018-05-18 9:58 ` AKASHI Takahiro
2018-05-18 9:58 ` AKASHI Takahiro
2018-05-18 9:58 ` AKASHI Takahiro
2018-05-16 10:06 ` James Morse
2018-05-16 10:06 ` James Morse
2018-05-16 10:06 ` James Morse
2018-05-18 9:50 ` AKASHI Takahiro
2018-05-18 9:50 ` AKASHI Takahiro
2018-05-18 9:50 ` AKASHI Takahiro
2018-05-18 10:39 ` AKASHI Takahiro
2018-05-18 10:39 ` AKASHI Takahiro
2018-05-18 10:39 ` AKASHI Takahiro
2018-05-18 16:00 ` James Morse
2018-05-18 16:00 ` James Morse
2018-05-18 16:00 ` James Morse
2018-05-21 9:46 ` AKASHI Takahiro
2018-05-21 9:46 ` AKASHI Takahiro
2018-05-21 9:46 ` AKASHI Takahiro
2018-05-15 17:12 ` James Morse
2018-05-15 17:12 ` James Morse
2018-05-15 17:12 ` James Morse
2018-05-18 15:35 ` Rob Herring
2018-05-18 15:35 ` Rob Herring
2018-05-18 15:35 ` Rob Herring
2018-05-21 10:14 ` AKASHI Takahiro
2018-05-21 10:14 ` AKASHI Takahiro
2018-05-21 10:14 ` AKASHI Takahiro
2018-05-24 14:25 ` Rob Herring
2018-05-24 14:25 ` Rob Herring
2018-05-24 14:25 ` Rob Herring
2018-04-25 6:26 ` [PATCH v9 08/11] arm64: enable KEXEC_FILE config AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 09/11] include: pe.h: remove message[] from mz header definition AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 10/11] arm64: kexec_file: add kernel signature verification support AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` [PATCH v9 11/11] arm64: kexec_file: add kaslr support AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
2018-04-25 6:26 ` AKASHI Takahiro
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=20180518062248.GK2737@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=ard.biesheuvel@linaro.org \
--cc=arnd@arndb.de \
--cc=bhe@redhat.com \
--cc=bhsharma@redhat.com \
--cc=catalin.marinas@arm.com \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=dyoung@redhat.com \
--cc=herbert@gondor.apana.org.au \
--cc=james.morse@arm.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=vgoyal@redhat.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.