public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nick Kossifidis <mick@ics.forth.gr>
To: Palmer Dabbelt <palmer@dabbelt.com>
Cc: zong.li@sifive.com, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Paul Walmsley <paul.walmsley@sifive.com>
Subject: Re: [PATCH 1/2] riscv: Register System RAM as iomem resources
Date: Fri, 10 Jul 2020 05:05:30 +0300	[thread overview]
Message-ID: <6d5006efde7affcb3307f5dcb85af7aa@mailhost.ics.forth.gr> (raw)
In-Reply-To: <mhng-cd7e19bb-859a-45a4-90e8-7851c4fb3083@palmerdabbelt-glaptop1>

Στις 2020-07-09 21:27, Palmer Dabbelt έγραψε:
> On Tue, 16 Jun 2020 00:45:46 PDT (-0700), zong.li@sifive.com wrote:
>> Add System RAM to /proc/iomem, various tools expect it such as kdump.
>> It is also needed for page_is_ram API which checks the specified 
>> address
>> whether registered as System RAM in iomem_resource list.
>> 
>> Signed-off-by: Zong Li <zong.li@sifive.com>
>> ---
>>  arch/riscv/mm/init.c | 22 ++++++++++++++++++++++
>>  1 file changed, 22 insertions(+)
>> 
>> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
>> index f4adb3684f3d..bbe816e03b2f 100644
>> --- a/arch/riscv/mm/init.c
>> +++ b/arch/riscv/mm/init.c
>> @@ -517,6 +517,27 @@ void mark_rodata_ro(void)
>>  }
>>  #endif
>> 
>> +void __init resource_init(void)
>> +{
>> +	struct memblock_region *region;
>> +
>> +	for_each_memblock(memory, region) {
>> +		struct resource *res;
>> +
>> +		res = memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES);
>> +		if (!res)
>> +			panic("%s: Failed to allocate %zu bytes\n", __func__,
>> +			      sizeof(struct resource));
>> +
>> +		res->name = "System RAM";
>> +		res->start = 
>> __pfn_to_phys(memblock_region_memory_base_pfn(region));
>> +		res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 
>> 1;
>> +		res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
> 
> Looks like everyone else is checking MEMBLOCK_NOMAP before registering 
> memory
> regions.  I've added that and put this on for-next.  Thanks!
> 
> commit 11dc632bf515874c84887727614e8044452f1f28
> gpg: Signature made Thu 09 Jul 2020 11:24:08 AM PDT
> gpg:                using RSA key 
> 2B3C3747446843B24A943A7A2E1319F35FBB1889
> gpg:                issuer "palmer@dabbelt.com"
> gpg: Good signature from "Palmer Dabbelt <palmer@dabbelt.com>" 
> [ultimate]
> gpg:                 aka "Palmer Dabbelt <palmerdabbelt@google.com>" 
> [ultimate]
> Author: Zong Li <zong.li@sifive.com>
> Date:   Tue Jun 16 15:45:46 2020 +0800
> 
>    riscv: Register System RAM as iomem resources
>       Add System RAM to /proc/iomem, various tools expect it such as 
> kdump.
>    It is also needed for page_is_ram API which checks the specified 
> address
>    whether registered as System RAM in iomem_resource list.
>       Signed-off-by: Zong Li <zong.li@sifive.com>
>    [Palmer: check MEMBLOCK_NOMAP]
>    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
> 
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index f4adb3684f3d..8b78fd23713e 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -517,6 +517,32 @@ void mark_rodata_ro(void)
> }
> #endif
> 
> +void __init resource_init(void)
> +{
> +	struct memblock_region *region;
> +
> +	for_each_memblock(memory, region) {
> +		struct resource *res;
> +
> +		res = memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES);
> +		if (!res)
> +			panic("%s: Failed to allocate %zu bytes\n", __func__,
> +			      sizeof(struct resource));
> +
> +		if (memblock_is_nomap(region) {
> +			res->name = "reserved";
> +			res->flags = IORESOURCE_MEM;
> +		} else {
> +			res->name = "System RAM";
> +			res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
> +		}
> +		res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region));
> +		res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 
> 1;
> +
> +		request_resource(&iomem_resource, res);
> +	}
> +}
> +
> void __init paging_init(void)
> {
> 	setup_vm_final();
> @@ -524,6 +550,7 @@ void __init paging_init(void)
> 	sparse_init();
> 	setup_zero_page();
> 	zone_sizes_init();
> +	resource_init();
> }
> 
> #ifdef CONFIG_SPARSEMEM_VMEMMAP
> 
> 
>> +
>> +		request_resource(&iomem_resource, res);
>> +	}
>> +}
>> +
>>  void __init paging_init(void)
>>  {
>>  	setup_vm_final();
>> @@ -524,6 +545,7 @@ void __init paging_init(void)
>>  	sparse_init();
>>  	setup_zero_page();
>>  	zone_sizes_init();
>> +	resource_init();
>>  }
>> 
>>  #ifdef CONFIG_SPARSEMEM_VMEMMAP
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

Zong Li sent a newer version of this series without this patch, since 
I'm handling this on the kexec/kdump series as well where other sections 
needed for kdump are also registered.

  reply	other threads:[~2020-07-10  2:06 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-16  7:45 [PATCH 0/2] Add STRICT_DEVMEM support on RISC-V Zong Li
2020-06-16  7:45 ` [PATCH 1/2] riscv: Register System RAM as iomem resources Zong Li
2020-06-16 11:51   ` Nick Kossifidis
2020-06-17  1:23     ` Zong Li
2020-07-09 18:27   ` Palmer Dabbelt
2020-07-10  2:05     ` Nick Kossifidis [this message]
2020-06-16  7:45 ` [PATCH 2/2] riscv: Support CONFIG_STRICT_DEVMEM Zong Li
2020-06-16 12:27   ` Nick Kossifidis
2020-06-17  1:56     ` Zong Li
2020-06-17  5:28       ` Nick Kossifidis
2020-06-17  6:32         ` Zong Li
2020-07-09 20:08   ` Palmer Dabbelt
2020-07-10  2:43     ` Zong Li

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=6d5006efde7affcb3307f5dcb85af7aa@mailhost.ics.forth.gr \
    --to=mick@ics.forth.gr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=zong.li@sifive.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox