From: Joseph Cathcart <josephc@linux.ibm.com>
To: Ilya Leoshkevich <iii@linux.ibm.com>, linux-s390@vger.kernel.org
Cc: eoin.mcnamara@ibm.com, Christian Brauner <brauner@kernel.org>,
Alexander Graf <graf@amazon.com>,
cathcartj08@gmail.com
Subject: Re: [PATCH v4] s390/iomem: register initrd as an iomem resource when retain_initrd is set
Date: Fri, 28 Aug 2026 14:57:58 +0100 [thread overview]
Message-ID: <da7ac4e9-4da0-489a-9bf5-f37c90bee826@linux.ibm.com> (raw)
In-Reply-To: <6f66956a-9793-4f96-b973-6e5875e5e433@linux.ibm.com>
On 8/19/26 7:40 AM, Ilya Leoshkevich wrote:
>
>
> On 8/18/26 19:57, Joseph Cathcart wrote:
>> Currently, /proc/iomem contains no reference to initrd memory, even
>> when initrd is retained and still held in RAM. This makes the memory
>> ranges invisible from userspace, and unusable to programs such as
>> kexec. (A sysfs bin file is created for initrd, but this doesn't
>> help programs which need the explicit memory ranges)
>>
>> Add initrd to standard_resources[] unconditionally. Add initrd as a
>> child of iomem_resources only if retain_initrd is specified.
>>
>> strstr() could match substrings like "retain_initrd=0" or
>> "no_retain_initrd", but this is how PPC chose to check for
>> "retain_initrd" param too. (arch/powerpc/kexec/ranges.c)
>>
>> Signed-off-by: Joseph Cathcart <josephc@linux.ibm.com>
>> ---
>> arch/s390/kernel/setup.c | 22 ++++++++++++++++++++++
>> 1 file changed, 22 insertions(+)
>
> Checkpatch complains:
>
> $ b4 shazam
> 'https://lore.kernel.org/all/20260818175755.3520-1-josephc@linux.ibm.com/'
>
> $ git format-patch -1 --stdout | ./scripts/checkpatch.pl -
> ERROR: trailing whitespace
> #58: FILE: arch/s390/kernel/setup.c:513:
> +^I$
>
>> diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
>> index b60284328fe3..373e54ed7519 100644
>> --- a/arch/s390/kernel/setup.c
>> +++ b/arch/s390/kernel/setup.c
>> @@ -481,15 +481,22 @@ static struct resource bss_resource = {
>> .flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM,
>> };
>> +static struct resource initrd_resource = {
>> + .name = "initrd",
>> + .flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM,
>> +};
>> +
>> static struct resource __initdata *standard_resources[] = {
>> &code_resource,
>> &data_resource,
>> &bss_resource,
>> + &initrd_resource,
>> };
>> static void __init setup_resources(void)
>> {
>> struct resource *res, *std_res, *sub_res;
>> + bool retain_initrd = false;
>> phys_addr_t start, end;
>> int j;
>> u64 i;
>> @@ -501,6 +508,19 @@ static void __init setup_resources(void)
>> bss_resource.start = __pa_symbol(__bss_start);
>> bss_resource.end = __pa_symbol(__bss_stop) - 1;
>> + if (IS_ENABLED(CONFIG_BLK_DEV_INITRD)) {
>> + unsigned long initrd_addr, initrd_size;
>> +
>> + if (strstr(boot_command_line, "retain_initrd"))
>> + retain_initrd = true;
>> + if (retain_initrd && get_physmem_reserved(RR_INITRD,
>> &initrd_addr, &initrd_size)) {
>> + initrd_resource.start = initrd_addr;
>> + initrd_resource.end = initrd_resource.start +
>> initrd_size - 1;
>> + } else {
>> + retain_initrd = false;
>> + }
>> + }
>> +
>> for_each_mem_range(i, &start, &end) {
>> res = memblock_alloc_or_panic(sizeof(*res), 8);
>> res->flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM;
>> @@ -517,6 +537,8 @@ static void __init setup_resources(void)
>> for (j = 0; j < ARRAY_SIZE(standard_resources); j++) {
>> std_res = standard_resources[j];
>> + if (std_res == &initrd_resource && !retain_initrd)
>> + continue;
>> if (std_res->start < res->start ||
>> std_res->start > res->end)
>> continue;
>
> Cc: Christian and Alexander.
>
> I wonder if it would make sense to move initrd resource creation to
> do_populate_rootfs(), right after /sys/firmware/initrd creation,
> enabling this feature on all architectures?
As I will no longer have access to my IBM email address after today, I
will be continuing
my contributions through my personal email address "cathcartj08@gmail.com"
prev parent reply other threads:[~2026-08-28 13:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 17:57 [PATCH v4] s390/iomem: register initrd as an iomem resource when retain_initrd is set Joseph Cathcart
2026-08-18 18:08 ` sashiko-bot
2026-08-19 6:40 ` Ilya Leoshkevich
2026-08-28 13:57 ` Joseph Cathcart [this message]
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=da7ac4e9-4da0-489a-9bf5-f37c90bee826@linux.ibm.com \
--to=josephc@linux.ibm.com \
--cc=brauner@kernel.org \
--cc=cathcartj08@gmail.com \
--cc=eoin.mcnamara@ibm.com \
--cc=graf@amazon.com \
--cc=iii@linux.ibm.com \
--cc=linux-s390@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox