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
next prev parent 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).