Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Nov 1998 06:40:14 -0800
From:      David Greenman <dg@root.com>
To:        David Beck <DBECK@ludens.elte.hu>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: SYSV Semaphores & mmap problems 
Message-ID:  <199811191440.GAA26690@root.com>
In-Reply-To: Your message of "Thu, 19 Nov 1998 12:32:31 GMT." <Pine.VMS.3.91-vms-b4.981119121100.2524B-100000@ludens.elte.hu> 

next in thread | previous in thread | raw e-mail | index | archive | help
>2., My freebsd box rebooted after I managed to run a multi-process
>    server program which serves a readonly memory database mmaped by all
>    the running 'memory server' instnaces. The size of the db is about
>    20 Megs. It is an ordered array of key/value pairs and the program
>    actually using a binary search on it. After some investigation
>    I found that this came from these lines in i386/i386/pmap.c:
>
>   1461   if (!TAILQ_FIRST(&pv_freelist))
>   1462     panic("get_pv_entry: cannot get a pv_entry_t");
>
>   This really makes me wondering at first why does the kernel 
>   reboot the whole system instead of signaling the process ?
>   Next, I'm wondering if there are any strategies to change this pv
>   interface in the future or it is the time to start hacking :) ?

   The panic is caused by running out of "pv entries", which are used in
physical-to-virtual translations by the kernel. This is happening because
you are running a large number of very large processes that all share the
same address space and the default number of pv entries is inadequate for
that. You can increase this with the "PMAP_SHPGPERPROC=<n>" kernel option,
but be careful about how you set <n>. The default is 200; I'd try doubling
it and at the same time decrease the maximum number of processes (via
maxusers - maxproc is 16*maxusers). The problem you are want to avoid is
consuming too much kernel virtual memory with all of the pv entries which
will cause other problems if you run out of KVM.

-DG

David Greenman
Co-founder/Principal Architect, The FreeBSD Project

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



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