在 2023/2/21 下午3:41, Xi Ruoyao 写道:
On Tue, 2023-02-21 at 15:20 +0800, Lulu Cheng wrote:
Like la264 only has 40 effective bits of virtual address space.
I'm OK with the change.  But the VA length is configurable building the
kernel.  Is there any specific reason LA264 has to use the 40-bit
configuration, or should we reword the commit message like "for
supporting the configuration with less page table level or smaller page
size"?

I consulted with my colleagues who are working on the kernel,

it looks like this:

The la264 chip desgn is physically 40-bit virtual address.

User mode and kernel mode each account for half:

User mode :    0x0-0x7f ffff ffff

Kernel mode:  0xffff ff80 0000 0000 -0xffff ffff ffff ffff

The high bit is the sign extension of bit39.



When TRY_EMPTY_VM_SPACE is set to 0x8000000000, it just exceeds
the range of 40-bit virtual address, causing the mmap mapping
to fail, thus causing the pch function to fail. To be compatible
with this situation set the macro to 0x1000000000.

gcc/ChangeLog:

         * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value
of
         the macro to 0x1000000000.
---
  gcc/config/host-linux.cc | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/host-linux.cc b/gcc/config/host-linux.cc
index a891651a7b6..d1aa7ab28ca 100644
--- a/gcc/config/host-linux.cc
+++ b/gcc/config/host-linux.cc
@@ -99,7 +99,7 @@
  #elif defined(__riscv) && defined (__LP64__)
  # define TRY_EMPTY_VM_SPACE    0x1000000000
  #elif defined(__loongarch__) && defined(__LP64__)
-# define TRY_EMPTY_VM_SPACE    0x8000000000
+# define TRY_EMPTY_VM_SPACE    0x1000000000
  #else
  # define TRY_EMPTY_VM_SPACE    0
  #endif

Reply via email to