mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
arm64: Add a VM_FREELIST_DMA32 freelist
When booting a KMSAN kernel on an Ampere Altra, I've seen some boot time hangs when the XHCI controller driver attempts to allocate memory for 32-bit DMA. The system boots fine with a GENERIC kernel; I believe that the additional memory requirements of KMSAN push it over the edge. The system has a bit less than 2GB of RAM below the 4GB boundary. Allocate a new freelist to segregate memory below 4GB, as we do on amd64, so that such memory allocation failures are less likely to occur. Reviewed by: alc MFC after: 1 month Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D43503 (cherry picked from commit 48d5dab7bace6bae938672784ca3aa8733d72eb9)
This commit is contained in:
parent
428e5165fe
commit
69c4a0ef86
1 changed files with 5 additions and 3 deletions
|
|
@ -85,11 +85,13 @@
|
|||
#define VM_FREEPOOL_DIRECT 1
|
||||
|
||||
/*
|
||||
* Create one free page lists: VM_FREELIST_DEFAULT is for all physical
|
||||
* pages.
|
||||
* Create two free page lists: VM_FREELIST_DMA32 is for physical pages that have
|
||||
* physical addresses below 4G, and VM_FREELIST_DEFAULT is for all other
|
||||
* physical pages.
|
||||
*/
|
||||
#define VM_NFREELIST 1
|
||||
#define VM_NFREELIST 2
|
||||
#define VM_FREELIST_DEFAULT 0
|
||||
#define VM_FREELIST_DMA32 1
|
||||
|
||||
/*
|
||||
* When PAGE_SIZE is 4KB, an allocation size of 16MB is supported in order
|
||||
|
|
|
|||
Loading…
Reference in a new issue