Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jan 2003 00:51:07 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        "Alan L. Cox" <alc@imimic.com>, Peter Wemm <peter@wemm.org>, arch@FreeBSD.ORG
Subject:   Re: getsysfd() patch #1 (Re: Virtual memory question)
Message-ID:  <200301140851.h0E8p78U078882@apollo.backplane.com>
References:  <20030114002831.1C8C12A89E@canning.wemm.org> <3E2381F8.85BB90A0@imimic.com> <200301140411.h0E4BgpN078032@apollo.backplane.com> <3E23A086.FC511354@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help

:
:Matthew Dillon wrote:
:> 
:>     This is a first-attempt workup of getsysfd().  See?  I told ya it was
:>     trivial!
:
:[ ... ]
:
:What does this uniquely do, which can be done no other way, again?
:
:-- Terry

    What Peter asked for (and what this does) is give you a descriptor
    that is associated with just a VM Object.  You can then mmap() the
    descriptor, pass it to other processes and they can mmap() it too.

    It's a way of doing swap-backed shared memory without having to deal
    with the filesystem.  The only other solutions are:

    * SysV shared memory, which is not fun to manage and may have weird
      size limitations, and has a race condition where a process dying 
      at just the wrong time may leave a shmem segment lying around in
      the kernel.

    * A file, which uses the filesystem as backing store.  Even with
      MAP_NOSYNC a shared file still uses the filesystem as backing store.
      This is typically not what is desired.


    Another thing I would like to do is descriptor-based timers.  So instead
    of being limited to just the stupid itimers, or interfering with other
    threads/libraries use of [i]timers, you can simply allocate your own by
    getting a timer descriptor and then doing cool things with it, like
    having it generate a custom signal or selecting on it or kqueue'ing on
    it etc...  it's something UNIX has needed for a long time actually.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

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




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