Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/include/vmparam.h
Show First 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | |||||
#define SGROWSIZ (128UL*1024) /* amount to grow stack */ | #define SGROWSIZ (128UL*1024) /* amount to grow stack */ | ||||
#endif | #endif | ||||
/* | /* | ||||
* We provide a machine specific single page allocator through the use | * We provide a machine specific single page allocator through the use | ||||
* of the direct mapped segment. This uses 2MB pages for reduced | * of the direct mapped segment. This uses 2MB pages for reduced | ||||
* TLB pressure. | * TLB pressure. | ||||
*/ | */ | ||||
#ifndef KASAN | |||||
#define UMA_MD_SMALL_ALLOC | #define UMA_MD_SMALL_ALLOC | ||||
#endif | |||||
kib: There is one use of defined(UMA_MD_SMALL_ALLOC) in openzfs arc_os.c, which probably should not… | |||||
markjAuthorUnsubmitted Done Inline ActionsI think that should really be #if VM_KMEM_SIZE_SCALE != 1. The idea is to limit the size of the ARC based on the maximum kernel heap size. On platforms where that limit is only bounded by the amount of physical memory (i.e. VM_KMEM_SIZE_SCALE == 1), there is no need to consult uma_avail(). markj: I think that should really be `#if VM_KMEM_SIZE_SCALE != 1`. The idea is to limit the size of… | |||||
/* | /* | ||||
* The physical address space is densely populated. | * The physical address space is densely populated. | ||||
*/ | */ | ||||
#define VM_PHYSSEG_DENSE | #define VM_PHYSSEG_DENSE | ||||
/* | /* | ||||
* The number of PHYSSEG entries must be one greater than the number | * The number of PHYSSEG entries must be one greater than the number | ||||
▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | |||||
* Virtual addresses of things. Derived from the page directory and | * Virtual addresses of things. Derived from the page directory and | ||||
* page table indexes from pmap.h for precision. | * page table indexes from pmap.h for precision. | ||||
* | * | ||||
* 0x0000000000000000 - 0x00007fffffffffff user map | * 0x0000000000000000 - 0x00007fffffffffff user map | ||||
* 0x0000800000000000 - 0xffff7fffffffffff does not exist (hole) | * 0x0000800000000000 - 0xffff7fffffffffff does not exist (hole) | ||||
* 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) | * 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) | ||||
* 0xffff804020100fff - 0xffff807fffffffff unused | * 0xffff804020100fff - 0xffff807fffffffff unused | ||||
* 0xffff808000000000 - 0xffff847fffffffff large map (can be tuned up) | * 0xffff808000000000 - 0xffff847fffffffff large map (can be tuned up) | ||||
* 0xffff848000000000 - 0xfffff7ffffffffff unused (large map extends there) | * 0xffff848000000000 - 0xfffff77fffffffff unused (large map extends there) | ||||
* 0xfffff78000000000 - 0xfffff7ffffffffff 512GB KASAN shadow map | |||||
* 0xfffff80000000000 - 0xfffffbffffffffff 4TB direct map | * 0xfffff80000000000 - 0xfffffbffffffffff 4TB direct map | ||||
* 0xfffffc0000000000 - 0xfffffdffffffffff unused | * 0xfffffc0000000000 - 0xfffffdffffffffff unused | ||||
* 0xfffffe0000000000 - 0xffffffffffffffff 2TB kernel map | * 0xfffffe0000000000 - 0xffffffffffffffff 2TB kernel map | ||||
* | * | ||||
* Within the kernel map: | * Within the kernel map: | ||||
* | * | ||||
* 0xfffffe0000000000 vm_page_array | * 0xfffffe0000000000 vm_page_array | ||||
* 0xffffffff80000000 KERNBASE | * 0xffffffff80000000 KERNBASE | ||||
*/ | */ | ||||
#define VM_MIN_KERNEL_ADDRESS KV4ADDR(KPML4BASE, 0, 0, 0) | #define VM_MIN_KERNEL_ADDRESS KV4ADDR(KPML4BASE, 0, 0, 0) | ||||
#define VM_MAX_KERNEL_ADDRESS KV4ADDR(KPML4BASE + NKPML4E - 1, \ | #define VM_MAX_KERNEL_ADDRESS KV4ADDR(KPML4BASE + NKPML4E - 1, \ | ||||
NPDPEPG-1, NPDEPG-1, NPTEPG-1) | NPDPEPG-1, NPDEPG-1, NPTEPG-1) | ||||
#define DMAP_MIN_ADDRESS KV4ADDR(DMPML4I, 0, 0, 0) | #define DMAP_MIN_ADDRESS KV4ADDR(DMPML4I, 0, 0, 0) | ||||
#define DMAP_MAX_ADDRESS KV4ADDR(DMPML4I + NDMPML4E, 0, 0, 0) | #define DMAP_MAX_ADDRESS KV4ADDR(DMPML4I + NDMPML4E, 0, 0, 0) | ||||
#define KASAN_MIN_ADDRESS KV4ADDR(KASANPML4I, 0, 0, 0) | |||||
#define KASAN_MAX_ADDRESS KV4ADDR(KASANPML4I + NKASANPML4E, 0, 0, 0) | |||||
#define LARGEMAP_MIN_ADDRESS KV4ADDR(LMSPML4I, 0, 0, 0) | #define LARGEMAP_MIN_ADDRESS KV4ADDR(LMSPML4I, 0, 0, 0) | ||||
#define LARGEMAP_MAX_ADDRESS KV4ADDR(LMEPML4I + 1, 0, 0, 0) | #define LARGEMAP_MAX_ADDRESS KV4ADDR(LMEPML4I + 1, 0, 0, 0) | ||||
#define KERNBASE KV4ADDR(KPML4I, KPDPI, 0, 0) | #define KERNBASE KV4ADDR(KPML4I, KPDPI, 0, 0) | ||||
#define UPT_MAX_ADDRESS KV4ADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) | #define UPT_MAX_ADDRESS KV4ADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) | ||||
#define UPT_MIN_ADDRESS KV4ADDR(PML4PML4I, 0, 0, 0) | #define UPT_MIN_ADDRESS KV4ADDR(PML4PML4I, 0, 0, 0) | ||||
▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines |
There is one use of defined(UMA_MD_SMALL_ALLOC) in openzfs arc_os.c, which probably should not depend on it.