From: Alex Elsayed <eternaleye@gmail.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: RFC: named anonymous vmas
Date: Wed, 26 Jun 2013 11:53:32 -0700 [thread overview]
Message-ID: <kqfdb6$haq$2@ger.gmane.org> (raw)
In-Reply-To: <CAMbhsRTdMaVR1LZRigumDqz_e5FgeyfJLrSHCDs8t7ywrmumTQ@mail.gmail.com>
Colin Cross wrote:
> On Mon, Jun 24, 2013 at 4:48 AM, Christoph Hellwig <hch@infradead.org>
> wrote:
>> On Sat, Jun 22, 2013 at 12:47:29PM -0700, Alex Elsayed wrote:
>>> Couldn't this be done by having a root-only tmpfs, and having a
>>> userspace component that creates per-app directories with restrictive
>>> permissions on startup/app install? Then each app creates files in its
>>> own directory, and can pass the fds around.
>
> If each app gets its own writable directory that's not really
> different than a world writable tmpfs. It requires something that
> watches for apps to exit for any reason and cleans up their
> directories, and it requires each app to come up with an unused name
> when it wants to create a file, and the kernel can give you both very
> cleanly.
Not so far as I can tell. I'm thinking specifically in the Android model of
'one user per app', and as I see it the issues with a world writable tmpfs
would be:
1.) Race conditions and all the sticky bit bugs of history - app A tries to
create file foo, but app C is doing the same. This is resolved with per-app
directories and restrictive permissions.
2.) Resource exhaustion - implementing this for a mmap'ed device node as
described in HCH's mail would amount to implementing some sort of quota
support. A world-writable tmpfs would require user quotas. A dir-per-app
tmpfs could mount a separate, limited tmpfs on each even in the absence of
user quotas, and mount -o remount,size=$foo works to change those limits
(within certain bounds of behavior).
3.) Cleanup - doing this with a device makes it simple, yes; once the FDs
are closed the mapping goes away. But if the only way the mapping gets
shared is via FD passing, and your users are all via a platform library,
unlink() after open(O_CREAT) would get you the same behavior as I understand
it. At that point, the only thing to clean up is the per-app directory
itself, which can be done on app uninstall IIUC.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2013-06-26 18:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-21 23:42 Colin Cross
2013-06-22 5:12 ` Kyungmin Park
2013-06-22 5:20 ` Colin Cross
2013-06-22 10:31 ` Christoph Hellwig
2013-06-22 17:30 ` Colin Cross
2013-06-22 19:47 ` Alex Elsayed
2013-06-24 11:48 ` Christoph Hellwig
2013-06-24 17:26 ` Colin Cross
2013-06-24 23:45 ` John Stultz
2013-06-26 18:53 ` Alex Elsayed [this message]
2013-07-14 0:57 ` Sam Ben
2013-08-01 8:29 ` Christoph Hellwig
2013-08-01 8:36 ` Rich Felker
2013-08-02 15:11 ` Christoph Hellwig
2013-08-03 23:54 ` KOSAKI Motohiro
2013-07-14 0:27 ` Sam Ben
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='kqfdb6$haq$2@ger.gmane.org' \
--to=eternaleye@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox