Date: Tue, 21 Jan 2003 13:32:25 -0500 (EST) From: Robert Watson <rwatson@freebsd.org> To: phk@freebsd.org Cc: Matthew Dillon <dillon@apollo.backplane.com>, "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: <Pine.NEB.3.96L.1030121132828.11405D-100000@fledge.watson.org> In-Reply-To: <16711.1043173573@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 21 Jan 2003 phk@freebsd.org wrote: > In message <Pine.NEB.3.96L.1030121125651.11405B-100000@fledge.watson.org>, Robe > rt Watson writes: > > > >Ok, so lemme revise my thinking. Could we take this patch, rename the API > >from getsysfd(various things) to memfd(size), and simply provide anonymous > >swap-backed memory only? > > The traditional design would be: > > fd = open("/dev/shmem", ...); > ptr = mmap(..., fd, ...) Well, it struck me the three implementations that came to mind would be: (1) shmfs. mount -t shmfs foo /shmfs Handle the implementation using vnodes and DTYPE_VNODE (2) /dev/shm Handle the implementation using cloning devices and device pager magic. (3) DTYPE_MEMFD Handle the implementation using a special file descriptor type creating using a special creation primitive (similar to kqueue, pipe, etc). Of the three, (3) appears to be simplist to implement, (1) the most complicated. I'm probably not qualified to comment on (2), but have to say that (3) would be the easiest to stick in MAC magic for :-). But only if (3) completely avoids the kitchensinkfd() approach. From the API perspective, you could easily hide any of these behind a memfd() library call. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories 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?Pine.NEB.3.96L.1030121132828.11405D-100000>