kern/185727: Devices fail to probe on 128GB or larger memory machines
Alfred Perlstein
alfred at FreeBSD.org
Mon Jan 13 01:40:01 UTC 2014
>Number: 185727
>Category: kern
>Synopsis: Devices fail to probe on 128GB or larger memory machines
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jan 13 01:40:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator: Alfred Perlstein
>Release: -current / 10.x
>Organization:
FreeBSD
>Environment:
N/A
>Description:
FreeBSD machines with large memory, it seems 128GB or higher wind up without enough memory under 4GB for many devices to work.
This results in USB not working (keyboard/mouse doesn't attach), and some HBAs fail as well. I think other devices may fail as well, but I've not experienced that yet.
>How-To-Repeat:
Boot FreeBSD 10.x or FreeBSD-current with more than 128GB of memory and some hardware configs.
>Fix:
Alan Cox posted the attached patch (
hack2.patch) , however there needs to be some work done still on it according to him:
> The only issue with this patch is that it will pessimize the speed of
> physical memory allocation on amd64 machines with small amounts of
> memory. I need to augment the attached patch, which just changes some
> #define's, with some changes to vm_phys.c to avoid creating excess free
> page queues on small memory machines.
>
> Alan
Patch attached with submission follows:
Index: amd64/include/vmparam.h
===================================================================
--- amd64/include/vmparam.h (revision 243366)
+++ amd64/include/vmparam.h (working copy)
@@ -106,10 +106,13 @@
* accessible by ISA DMA and VM_FREELIST_ISADMA is for physical pages
* that are below that address.
*/
-#define VM_NFREELIST 2
-#define VM_FREELIST_DEFAULT 0
-#define VM_FREELIST_ISADMA 1
+#define VM_NFREELIST 3
+#define VM_FREELIST_HIGHMEM 0
+#define VM_FREELIST_DEFAULT 1
+#define VM_FREELIST_ISADMA 2
+#define VM_HIGHMEM_ADDRESS ((vm_paddr_t)1 << 32)
+
/*
* An allocation size of 16MB is supported in order to optimize the
* use of the direct map by UMA. Specifically, a cache line contains
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list