From owner-freebsd-questions Tue Nov 7 14:56:19 2000 Delivered-To: freebsd-questions@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 4B8E337B479 for ; Tue, 7 Nov 2000 14:56:16 -0800 (PST) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id eA7Mu0d12468; Tue, 7 Nov 2000 14:56:00 -0800 (PST) Date: Tue, 7 Nov 2000 14:56:00 -0800 From: Alfred Perlstein To: jadream Cc: freebsd-questions@FreeBSD.ORG Subject: Re: getsem()fails with "No space left on device" Message-ID: <20001107145559.F5112@fw.wintelcom.net> References: <3A08726E.20463FCE@chat.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.4i In-Reply-To: <3A08726E.20463FCE@chat.ru>; from jadream@chat.ru on Wed, Nov 08, 2000 at 12:21:50AM +0300 Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * jadream [001107 13:22] wrote: > Hi! > > Maybe I'm just unliky with FreeBSD but I still cannot solve my problems > :0) > > As I ran into problems while using SysV IPCs in threded apps I changed > to forked child processes. > But after only 10 processes inited I failed to get semaphore cluster (2 > sems in size) with such an amazing error "No space left on device". > What device? > What does it mean no space left - is 10 sem clusters some IPC limit??? > Tis nonsense. No it's not, it's a system limit so people don't exhaust kernel memory by allocating hundreds of semaphores. > Or I'm just walking around something obvious? Not veryu obvious since they are undocumented but in the LINT kernel config file there are several tunables: I've just dug through the sources to document them, here's what I plan to add to LINT: # These three options provide support for System V Interface # Definition-style interprocess communication, in the form of shared # memory, semaphores, and message queues, respectively. # # System V shared memory and tunable parameters options SYSVSHM # include support for shared memory options SHMMAXPGS=1025 # max amount of shared memory pages (4k on i386) options SHMALL=1025 # max amount of shared memory (bytes) options SHMMAX="(SHMMAXPGS*PAGE_SIZE+1)" # max shared memory segment size (bytes) options SHMMIN=2 # min shared memory segment size (bytes) options SHMMNI=33 # max number of shared memory identifiers options SHMSEG=9 # max shared memory segments per process # System V semaphores and tunable parameters options SYSVSEM # include support for semaphores options SEMMAP=31 # amount of entries in semaphore map options SEMMNI=11 # number of semaphore identifiers in the system options SEMMNS=61 # number of semaphores in the system options SEMMNU=31 # number of undo structures in the system options SEMMSL=61 # max number of semaphores per id options SEMOPM=101 # max number of operations per semop call options SEMUME=11 # max number of undo entries per process # System V message queues and tunable parameters options SYSVMSG # include support for message queues options MSGMNB=2049 # max characters per message options MSGMNI=41 # max number of message queue identifiers options MSGSEG=2049 # max number of message segments in the system options MSGSSZ=16 # size of a message segment MUST be power of 2 options MSGTQL=41 # max amount of messages in the system > Sorry if I bother all of you too much,ppl, but I'm really in trouble > with all that IPC stuff. > Hanging around for a second week with no progress and even any idea how > to get out. Just use the above tunables to increase the amount of sysv ipc primatives available to you. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message