Date: Mon, 26 Jul 2010 10:04:58 -0700 From: Matthew Fleming <mdf356@gmail.com> To: Andriy Gapon <avg@freebsd.org> Cc: freebsd-arch@freebsd.org Subject: Re: amd64: change VM_KMEM_SIZE_SCALE to 1? Message-ID: <AANLkTikY%2BnPTgBtDWcphNkOrW-Aif5TRSCuCn8BsK3p7@mail.gmail.com> In-Reply-To: <4C4DB2B8.9080404@freebsd.org> References: <4C4DB2B8.9080404@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 26, 2010 at 9:07 AM, Andriy Gapon <avg@freebsd.org> wrote: > > Anyone knows any reason why VM_KMEM_SIZE_SCALE on amd64 should not be set to 1? > I mean things potentially breaking, or some unpleasant surprise for an > administrator/user... As I understand it, it's merely a resource usage issue. amd64 needs page table entries for the expected virtual address space, so allowing more than e.g. 1/3 of physical memory means needing more PTEs. But the memory overhead isn't all that large IIRC: each 4k physical memory devoted to PTEs maps 512 4k virtual addresses, or 2MB, so e.g. it takes about 4MB reserved as PTE pages to map 2GB of kernel virtual address space. Having cut my OS teeth on AIX/PowerPC where virutal address space is free and has no relation to the size of the hardware page table, the FreeBSD architecture limiting the size of the kernel virtual space seemed weird to me. However, since FreeBSD also does not page kernel data to disk, there's a good reason to limit the size of the kernel's virtual space, since that also limits the kernel's physical space. In other words, setting it to 1 could lead to the system being out of memory but not trying to fail kernel malloc requests. I'm not entirely sure this is a new problem since one could also chew through physical memory with sub-page uma allocations as well on amd64. Corrections to the above gratefully accepted. This is just my current understanding of it. Thanks, matthew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikY%2BnPTgBtDWcphNkOrW-Aif5TRSCuCn8BsK3p7>