Date: Mon, 13 Jan 2014 01:33:18 GMT From: Alfred Perlstein <alfred@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/185727: Devices fail to probe on 128GB or larger memory machines Message-ID: <201401130133.s0D1XI7G094428@oldred.freebsd.org> Resent-Message-ID: <201401130140.s0D1e0fG054624@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401130133.s0D1XI7G094428>