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