bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/9 gnumach] move kernel vm map to high addresses on x86_64


From: Luca Dariz
Subject: [PATCH 0/9 gnumach] move kernel vm map to high addresses on x86_64
Date: Sun, 12 Feb 2023 18:28:09 +0100

The kernel vm region is moved to the last 2GB of the 64-bit address
space. According to the -mcmodel=kernel, the code must be placed in
this range, but probably other addresses can be used for other data
structures, direct memory mapping and so on (as in Linux).

This is just the first step towards being able to use more memory, as
now also user-space has the same 3GB as on a 32-bit kernel, but the
memory structure has not changed much otherwise. The kernel map is not
immediatly following the user map anymore, so the main changes are on
the pmap module.

Luca Dariz (9):
  prepare pmap helpers for full 64 bit memory map
  fix x86_64 asm for higher kernel addresses
  factor out xen-specific bootstrap
  factor out PAE-specific bootstrap
  use L4 page table directly on x86_64 instead of short-circuiting to
    pdpbase
  add more explicit names for user space virtual space limits
  extend data types to hold a 64-bit address
  separate initialization of kernel and user PTP tables
  move kernel virtual address space to upper addresses

 i386/i386/db_interface.c          |   4 +-
 i386/i386/ldt.c                   |   8 +-
 i386/i386/pcb.c                   |   6 +-
 i386/i386/trap.c                  |  12 +-
 i386/i386/vm_param.h              |  26 ++-
 i386/i386at/biosmem.c             |   2 -
 i386/include/mach/i386/vm_param.h |   2 +-
 i386/intel/pmap.c                 | 328 ++++++++++++++++++++----------
 i386/intel/pmap.h                 |  27 ++-
 kern/task.c                       |   4 +-
 x86_64/Makefrag.am                |  12 +-
 x86_64/interrupt.S                |   4 +-
 x86_64/locore.S                   |  10 +-
 13 files changed, 290 insertions(+), 155 deletions(-)

-- 
2.30.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]