Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 2008 09:21:06 -0400
From:      "Bob Johnson" <fbsdlists@gmail.com>
To:        "Mark Tinguely" <tinguely@casselton.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: kernel: Approaching the limit on PV entries...
Message-ID:  <54db43990810130621s63ea1ec9nc085d79b0c230ad6@mail.gmail.com>
In-Reply-To: <200810110221.m9B2LNsK047864@casselton.net>
References:  <48EFE927.6000404@datapipe.com> <200810110221.m9B2LNsK047864@casselton.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/10/08, Mark Tinguely <tinguely@casselton.net> wrote:
>>  > vm.pmap.pv_entry_count: 583006
>>  > vm.pmap.shpgperproc: 200
>>  > vm.pmap.pv_entry_max: 2243305
>>  >
>>  > The system:
>>  > FreeBSD .... 7.0-RELEASE-p5 FreeBSD 7.0-RELEASE-p5 #0: Wed Oct  1
>>  > 07:51:58 UTC 2008
>>  > root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
>>  >
>>  > Can someone briefly explain what this is telling me and how to decide
>>  > which sysctl to increase? I have found some old postings that predate
>>  > the sysctls that suggested increasing shpgperproc in the kernel
>>  > configuration, about 50 at a time until the problem goes away, but I
>>  > still have no clue what that is accomplishing.
>
> what (simplified):
> the pv_entry helps the virtual memory system track physical pages, so a
> physical page can be shared with another process or another virtual address.
>
> In the i386/amd64 the pv_entry entries are allocated in page size "chunks"
> on a per process memory map basis. This helps reduce redundant pointers
> and overall saves memory.
>
> "shpgperproc" can be read as "the number of shared pages per proceess".
> pv_entry_max is calculated from shpgperproc (and on the amd64, shpgperproc
> can be derived from setting the vm.pmap.pv_entry_max).
>
> On the amd64, the values can be adjusted by sysctl, but on the i386
> the values must be compiled into the kernel.
>
> There are some automatic adjustments in the calculation of the number
> of pv_entry, but the warnings are given early enough to help aid in the
> tweaking of the value. The advice of slowly increasing vm.pmap.shpgperproc
> is probably the best solution. I would adjust up slower than 50 (25%
> increase seems to be pretty high).
>
> --Mark Tinguely.
>

Thanks. I'll see what happens.

In amd64/7.0 is there any chance running out of pv_entrys would show
up as failures in interprocess communication rather than a panic? The
original symptom was that certain web pages (or jailed servers, I'm
not sure) were unreachable, as if the firewall were misconfigured,
until the system was rebooted. I didn't get to look at the system
before it was rebooted, and I find very little in the logs to explain
what was going on.

Thanks again,

- Bob
  fbsdlists@gmail.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54db43990810130621s63ea1ec9nc085d79b0c230ad6>