hw.physmem (loader.conf and sysctl)

Bernd Walter ticso at cicely7.cicely.de
Fri Mar 4 19:37:30 UTC 2011


On Fri, Mar 04, 2011 at 07:48:55PM +0200, Andriy Gapon wrote:
> on 04/03/2011 16:36 Dmitry Krivenok said the following:
> > Hello Hackers,
> > I've limited the amount of physical memory visible for my FreeBSD-8.2 by adding
> > the following in loader.conf:
> > 
> > $ cat /boot/loader.conf | grep hw.physmem
> > hw.physmem="500M"
> > $
> > 
> > However, according to sysctl, the system sees
> > 
> > $ sysctl hw.physmem
> > hw.physmem: 507445248
> > $
> > 
> > The difference is (500 * 2**20 - 507445248) / 2**20 == 16.0625 Mb.
> > How does the system use this "hidden" memory?
> 
> Some memory is taken by structures that describe usable pages.
> There is one vm_page_t structure per each 4KB page.
> I believe that that memory is excluded from physmem.

hw.physmen doesn't set the physucal memory - it sets the maximum
physical address.
But there are unuseable addresses used for IO - e.g. the 640k-1M range
and board depended PCI io-ranges.
I set hw.physmem="8704M" on my 8G system to reduce memory (last bytes
are declared uncacheable by broken BIOS).

-- 
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.


More information about the freebsd-hackers mailing list