Linux-RISC-V Archive mirror
 help / color / mirror / Atom feed
From: Alexandre ghiti <alex@ghiti.fr>
To: 潘庆霖 <panqinglin2020@iscas.ac.cn>,
	"Alexandre Ghiti" <alexandre.ghiti@canonical.com>,
	linux-riscv@lists.infradead.org
Subject: Re: [PATCH v3 10/13] riscv: Improve virtual kernel memory layout dump
Date: Thu, 9 Dec 2021 10:09:15 +0100	[thread overview]
Message-ID: <c723da82-b39c-7625-0184-4dbd322bcedb@ghiti.fr> (raw)
In-Reply-To: <36847cf4-3fc6-c72f-7778-72da3741b47d@iscas.ac.cn>

On 12/9/21 05:18, 潘庆霖 wrote:
> Hi Alex,
>
>
> On 2021/12/6 18:46, Alexandre Ghiti wrote:
> > With the arrival of sv48 and its large address space, it would be
> > cumbersome to statically define the unit size to use to print the 
> different
> > portions of the virtual memory layout: instead, determine it 
> dynamically.
> >
> > Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
> > ---
> >  arch/riscv/mm/init.c               | 67 +++++++++++++++++++++++-------
> >  drivers/pci/controller/pci-xgene.c |  2 +-
> >  include/linux/sizes.h              |  1 +
> >  3 files changed, 54 insertions(+), 16 deletions(-)
> >
> > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> > index 6a19a1b1caf8..28de6ea0a720 100644
> > --- a/arch/riscv/mm/init.c
> > +++ b/arch/riscv/mm/init.c
> > @@ -79,37 +79,74 @@ static void __init zone_sizes_init(void)
> >  }
> >
> >  #if defined(CONFIG_MMU) && defined(CONFIG_DEBUG_VM)
> > +
> > +#define LOG2_SZ_1K  ilog2(SZ_1K)
> > +#define LOG2_SZ_1M  ilog2(SZ_1M)
> > +#define LOG2_SZ_1G  ilog2(SZ_1G)
> > +#define LOG2_SZ_1T  ilog2(SZ_1T)
> > +
> >  static inline void print_mlk(char *name, unsigned long b, unsigned 
> long t)
> >  {
> >      pr_notice("%12s : 0x%08lx - 0x%08lx   (%4ld kB)\n", name, b, t,
> > -          (((t) - (b)) >> 10));
> > +          (((t) - (b)) >> LOG2_SZ_1K));
> >  }
> >
> >  static inline void print_mlm(char *name, unsigned long b, unsigned 
> long t)
> >  {
> >      pr_notice("%12s : 0x%08lx - 0x%08lx   (%4ld MB)\n", name, b, t,
> > -          (((t) - (b)) >> 20));
> > +          (((t) - (b)) >> LOG2_SZ_1M));
> > +}
> > +
> > +static inline void print_mlg(char *name, unsigned long b, unsigned 
> long t)
> > +{
> > +    pr_notice("%12s : 0x%08lx - 0x%08lx   (%4ld GB)\n", name, b, t,
> > +          (((t) - (b)) >> LOG2_SZ_1G));
> > +}
> > +
> > +#ifdef CONFIG_64BIT
> > +static inline void print_mlt(char *name, unsigned long b, unsigned 
> long t)
> > +{
> > +    pr_notice("%12s : 0x%08lx - 0x%08lx   (%4ld TB)\n", name, b, t,
> > +          (((t) - (b)) >> LOG2_SZ_1T));
> > +}
> > +#endif
> > +
> > +static inline void print_ml(char *name, unsigned long b, unsigned 
> long t)
> > +{
> > +    unsigned long diff = t - b;
> > +
> > +#ifdef CONFIG_64BIT
> > +    if ((diff >> LOG2_SZ_1T) >= 10)
> > +        print_mlt(name, b, t);
> > +    else
> > +#endif
> > +    if ((diff >> LOG2_SZ_1G) >= 10)
> > +        print_mlg(name, b, t);
> > +    else if ((diff >> LOG2_SZ_1M) >= 10)
> > +        print_mlm(name, b, t);
> > +    else
> > +        print_mlk(name, b, t);
> >  }
> >
> >  static void __init print_vm_layout(void)
> >  {
> >      pr_notice("Virtual kernel memory layout:\n");
> > -    print_mlk("fixmap", (unsigned long)FIXADDR_START,
> > -          (unsigned long)FIXADDR_TOP);
> > -    print_mlm("pci io", (unsigned long)PCI_IO_START,
> > -          (unsigned long)PCI_IO_END);
> > -    print_mlm("vmemmap", (unsigned long)VMEMMAP_START,
> > -          (unsigned long)VMEMMAP_END);
> > -    print_mlm("vmalloc", (unsigned long)VMALLOC_START,
> > -          (unsigned long)VMALLOC_END);
> > -    print_mlm("lowmem", (unsigned long)PAGE_OFFSET,
> > -          (unsigned long)high_memory);
> > +    print_ml("fixmap", (unsigned long)FIXADDR_START,
> > +         (unsigned long)FIXADDR_TOP);
> > +    print_ml("pci io", (unsigned long)PCI_IO_START,
> > +         (unsigned long)PCI_IO_END);
> > +    print_ml("vmemmap", (unsigned long)VMEMMAP_START,
> > +         (unsigned long)VMEMMAP_END);
> > +    print_ml("vmalloc", (unsigned long)VMALLOC_START,
> > +         (unsigned long)VMALLOC_END);
> > +    print_ml("lowmem", (unsigned long)PAGE_OFFSET,
> > +         (unsigned long)high_memory);
> >  #ifdef CONFIG_64BIT
> >  #ifdef CONFIG_KASAN
> > -    print_mlm("kasan", KASAN_SHADOW_START, KASAN_SHADOW_END);
> > +    print_ml("kasan", KASAN_SHADOW_START, KASAN_SHADOW_END);
> >  #endif
> > -    print_mlm("kernel", (unsigned long)KERNEL_LINK_ADDR,
> > -          (unsigned long)ADDRESS_SPACE_END);
> > +    print_ml("kernel", (unsigned long)KERNEL_LINK_ADDR,
> > +         (unsigned long)ADDRESS_SPACE_END);
> >  #endif
> >  }
> >  #else
> > diff --git a/drivers/pci/controller/pci-xgene.c 
> b/drivers/pci/controller/pci-xgene.c
> > index e64536047b65..187dcf8a9694 100644
> > --- a/drivers/pci/controller/pci-xgene.c
> > +++ b/drivers/pci/controller/pci-xgene.c
> > @@ -21,6 +21,7 @@
> >  #include <linux/pci-ecam.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/slab.h>
> > +#include <linux/sizes.h>
> >
> >  #include "../pci.h"
> >
> > @@ -50,7 +51,6 @@
> >  #define OB_LO_IO            0x00000002
> >  #define XGENE_PCIE_VENDORID        0x10E8
> >  #define XGENE_PCIE_DEVICEID        0xE004
> > -#define SZ_1T                (SZ_1G*1024ULL)
>
> I am trying to apply your patchset on upstream's master or for-next 
> branch. The git repo is
>
> git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git
>
> and I get a failure. The commit which I apply on is 
> fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf
>
> I found the code here on that commit is:
>
> #define OB_LO_IO            0x00000002
> #define XGENE_PCIE_DEVICEID        0xE004
> #define SZ_1T                    (SZ_1G*1024ULL)
> #define PIPE_PHY_RATE_RD(src)        ((0xc000 & (u32)(src)) >> 0xe)
>
> I think it may be the reason why the apply is failed. May I get your 
> help to determine the reason?


I will rebase my patchset on top of v5.16-rc4 shortly, I will fix that, 
this file changed in the meantime.

Thanks,

Alex


>
> Thanks,
> Qinglin
>
>
> >
> >  #define PIPE_PHY_RATE_RD(src)        ((0xc000 & (u32)(src)) >> 0xe)
> >
> >  #define XGENE_V1_PCI_EXP_CAP        0x40
> > diff --git a/include/linux/sizes.h b/include/linux/sizes.h
> > index 1ac79bcee2bb..0bc6cf394b08 100644
> > --- a/include/linux/sizes.h
> > +++ b/include/linux/sizes.h
> > @@ -47,6 +47,7 @@
> >  #define SZ_8G                _AC(0x200000000, ULL)
> >  #define SZ_16G                _AC(0x400000000, ULL)
> >  #define SZ_32G                _AC(0x800000000, ULL)
> > +#define SZ_1T                _AC(0x10000000000, ULL)
> >  #define SZ_64T                _AC(0x400000000000, ULL)
> >
> >  #endif /* __LINUX_SIZES_H__ */
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2021-12-09  9:10 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-06 10:46 [PATCH v3 00/13] Introduce sv48 support without relocatable kernel Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 01/13] riscv: Move KASAN mapping next to the kernel mapping Alexandre Ghiti
2021-12-06 16:18   ` Jisheng Zhang
2021-12-06 10:46 ` [PATCH v3 02/13] riscv: Split early kasan mapping to prepare sv48 introduction Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 03/13] riscv: Introduce functions to switch pt_ops Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 04/13] riscv: Allow to dynamically define VA_BITS Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 05/13] riscv: Get rid of MAXPHYSMEM configs Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 06/13] asm-generic: Prepare for riscv use of pud_alloc_one and pud_free Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 07/13] riscv: Implement sv48 support Alexandre Ghiti
2021-12-06 11:05   ` Alexandre ghiti
2021-12-09  4:32     ` 潘庆霖
2021-12-26  8:59   ` Jisheng Zhang
2022-01-04 12:44     ` Alexandre Ghiti
2021-12-29  3:42   ` Guo Ren
2022-01-04 12:42     ` Alexandre Ghiti
2022-04-26  5:57   ` Nick Kossifidis
2021-12-06 10:46 ` [PATCH v3 08/13] riscv: Use pgtable_l4_enabled to output mmu_type in cpuinfo Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 09/13] riscv: Explicit comment about user virtual address space size Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 10/13] riscv: Improve virtual kernel memory layout dump Alexandre Ghiti
2021-12-09  4:18   ` 潘庆霖
2021-12-09  9:09     ` Alexandre ghiti [this message]
2021-12-06 10:46 ` [PATCH v3 11/13] Documentation: riscv: Add sv48 description to VM layout Alexandre Ghiti
2021-12-06 10:46 ` [PATCH v3 12/13] riscv: Initialize thread pointer before calling C functions Alexandre Ghiti
2021-12-20  9:11   ` Guo Ren
2021-12-20  9:17     ` Ard Biesheuvel
2021-12-20 13:40       ` Guo Ren
2022-01-10  8:03   ` Alexandre ghiti
2021-12-06 10:46 ` [PATCH v3 13/13] riscv: Allow user to downgrade to sv39 when hw supports sv48 if !KASAN Alexandre Ghiti
2021-12-06 11:08 ` [PATCH v3 00/13] Introduce sv48 support without relocatable kernel Alexandre ghiti
2022-01-20  4:18 ` Palmer Dabbelt
2022-01-20  7:30   ` Alexandre Ghiti
2022-01-20 10:05     ` Alexandre Ghiti
2022-02-18 10:45       ` Alexandre Ghiti
2022-04-01 12:56         ` Alexandre Ghiti
2022-04-23  1:50           ` Palmer Dabbelt
2022-06-02  3:43             ` Palmer Dabbelt

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=c723da82-b39c-7625-0184-4dbd322bcedb@ghiti.fr \
    --to=alex@ghiti.fr \
    --cc=alexandre.ghiti@canonical.com \
    --cc=linux-riscv@lists.infradead.org \
    --cc=panqinglin2020@iscas.ac.cn \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).