From owner-freebsd-hackers Tue Jun 30 16:31:51 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id QAA00292 for freebsd-hackers-outgoing; Tue, 30 Jun 1998 16:31:51 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from iglou.com (sendmail@iglou2.iglou.com [192.107.41.17]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA00277 for ; Tue, 30 Jun 1998 16:31:43 -0700 (PDT) (envelope-from dbj@iglou.com) Received: from lou-ts3-15.iglou.com ([204.255.239.130] helo=localhost) by iglou.com with smtp (8.7.3/8.6.12) id 0yr9s9-00030x-00; Tue, 30 Jun 1998 19:31:38 -0400 Date: Tue, 30 Jun 1998 19:32:00 -0400 (EDT) From: "David E. Brooks Jr" X-Sender: dbj@localhost To: Terry Lambert cc: hackers@FreeBSD.ORG Subject: mlock()/mclear (was Re: Unsupport calls) In-Reply-To: <199806302142.OAA21104@usr02.primenet.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, 30 Jun 1998, Terry Lambert wrote: > It is trivial to implement p/v semaphores using __asm__ to generate > single instruction spinlocks; since the VM/buffer cache is unified, > this will work on shared memory/mmap'ed files without needing a > special system call to guaranteee lock coherency. > > > Terry Lambert > terry@lambert.org Funny you should mention this. I was poking around the man page to mmap() the other day looking for any hints on a "standard" way to perform inter-process synchronization when sharing memory. This led me to read the 'newvm' paper, specifically about mlock()/mclear(). Well, to make a short story even shorter, I ended up having a brief e-mail exchange with David Greenman where he said in my mail batch this morning "...a bright beginner could tackle it." So, I figured I'd try and find out how bright I really am . I haven't gotten very far (I'm re-reading relevant portions of _The Design and Implementation of 4.4 BSD Operating System_ and lots of stuff in section 9 right now), but I do have one question right off the bat. Both mmap(2) and the newvm paper make mention of the MAP_HASSEMAPHORE flag; Why is (or was) this necessary? All that comes to mind is multi-processor systems and keeping any copies of that page of memory synchronized. Thanks! -- Dave -- David E. Brooks Jr dbj@iglou.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message