[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <dleftjsgfesq8x.fsf%l.stelmach@samsung.com>
Date: Mon, 01 Jun 2020 18:30:22 +0200
From: Lukasz Stelmach <l.stelmach@...sung.com>
To: Russell King - ARM Linux admin <linux@...linux.org.uk>
Cc: Masahiro Yamada <masahiroy@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Thomas Gleixner <tglx@...utronix.de>,
Enrico Weigelt <info@...ux.net>,
Kees Cook <keescook@...omium.org>,
Ingo Molnar <mingo@...nel.org>,
Ben Dooks <ben-linux@...ff.org>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
AKASHI Takahiro <takahiro.akashi@...aro.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Marek Szyprowski <m.szyprowski@...sung.com>
Subject: Re: [PATCH 4/5] arm: Add kexec_image_info
It was <2020-06-01 pon 15:56>, when Russell King - ARM Linux admin wrote:
> On Mon, Jun 01, 2020 at 04:27:53PM +0200, Łukasz Stelmach wrote:
>> Add kexec_image_info to print detailed information about a kexec image.
>
> Isn't this already visible through kexec debugging? Why do we need
> to duplicate the same output in the kernel? Do we think that the
> kexec interfaces are that fragile that they don't work?
Because:
+ kexec_image_info is required if we want to show information for an
image loaded via kexec_file_load (with kexec-tools or any other
tool e.g. u-root),
+ this is where both interfaces meet and it is easy to compare
their results,
+ I consider showing results as close to the end of a code path as
possible more reliable.
>>
>> Signed-off-by: Łukasz Stelmach <l.stelmach@...sung.com>
>> ---
>> arch/arm/kernel/machine_kexec.c | 28 ++++++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
>> index 76300f3813e8..c10a2dfd53d1 100644
>> --- a/arch/arm/kernel/machine_kexec.c
>> +++ b/arch/arm/kernel/machine_kexec.c
>> @@ -31,6 +31,32 @@ extern unsigned long kexec_boot_atags;
>>
>> static atomic_t waiting_for_crash_ipi;
>>
>> +/**
>> + * kexec_image_info - For debugging output.
>> + */
>> +#define kexec_image_info(_i) _kexec_image_info(__func__, __LINE__, _i)
>> +static void _kexec_image_info(const char *func, int line,
>> + const struct kimage *kimage)
>> +{
>> + unsigned long i;
>> +
>> + pr_debug("%s:%d:\n", func, line);
>> + pr_debug(" kexec kimage info:\n");
>> + pr_debug(" type: %d\n", kimage->type);
>> + pr_debug(" start: %lx\n", kimage->start);
>> + pr_debug(" head: %lx\n", kimage->head);
>> + pr_debug(" nr_segments: %lu\n", kimage->nr_segments);
>> +
>> + for (i = 0; i < kimage->nr_segments; i++) {
>> + pr_debug(" segment[%lu]: %08lx - %08lx, 0x%x bytes, %lu pages\n",
>> + i,
>> + kimage->segment[i].mem,
>> + kimage->segment[i].mem + kimage->segment[i].memsz,
>> + kimage->segment[i].memsz,
>> + kimage->segment[i].memsz / PAGE_SIZE);
>> + }
>> +}
>> +
>> /*
>> * Provide a dummy crash_notes definition while crash dump arrives to arm.
>> * This prevents breakage of crash_notes attribute in kernel/ksysfs.c.
>> @@ -42,6 +68,8 @@ int machine_kexec_prepare(struct kimage *image)
>> __be32 header;
>> int i, err;
>>
>> + kexec_image_info(image);
>> +
>> image->arch.kernel_r2 = image->start - KEXEC_ARM_ZIMAGE_OFFSET
>> + KEXEC_ARM_ATAGS_OFFSET;
>>
>> --
>> 2.26.2
>>
>>
--
Łukasz Stelmach
Samsung R&D Institute Poland
Samsung Electronics
Download attachment "signature.asc" of type "application/pgp-signature" (488 bytes)
Powered by blists - more mailing lists