All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@amacapital.net>
To: Andy Lutomirski <luto@amacapital.net>,
	Andy Lutomirski <luto@kernel.org>,
	Till Smejkal <till.smejkal@googlemail.com>,
	Richard Henderson <rth@twiddle.net>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Matt Turner <mattst88@gmail.com>,
	Vineet Gupta <vgupta@synopsys.com>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Steven Miao <realmz6@gmail.com>,
	Richard Kuo <rkuo@codeaurora.org>,
	Tony Luck <tony.luck@intel.com>,
	Fenghua Yu <fenghua.yu@intel.com>,
	James Hogan <james.hogan@imgtec.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	"James E.J. Bottomley" <jejb@parisc-linux.org>,
	Helge Deller <deller@gmx.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Heiko Carstens <heiko.carstens@de>
Subject: Re: [RFC PATCH 00/13] Introduce first class virtual address spaces
Date: Wed, 15 Mar 2017 13:06:50 -0700	[thread overview]
Message-ID: <CALCETrXfGgxaLivhci0VL=wUaWAnBiUXC47P7TUaEuOYV_-X_g__29923.052507411$1489608441$gmane$org@mail.gmail.com> (raw)
In-Reply-To: <20170315194447.scsf3fiwvf7z5gzc@arch-dev>

On Wed, Mar 15, 2017 at 12:44 PM, Till Smejkal
<till.smejkal@googlemail.com> wrote:
> On Wed, 15 Mar 2017, Andy Lutomirski wrote:
>> > One advantage of VAS segments is that they can be globally queried by user programs
>> > which means that VAS segments can be shared by applications that not necessarily have
>> > to be related. If I am not mistaken, MAP_SHARED of pure in memory data will only work
>> > if the tasks that share the memory region are related (aka. have a common parent that
>> > initialized the shared mapping). Otherwise, the shared mapping have to be backed by a
>> > file.
>>
>> What's wrong with memfd_create()?
>>
>> > VAS segments on the other side allow sharing of pure in memory data by
>> > arbitrary related tasks without the need of a file. This becomes especially
>> > interesting if one combines VAS segments with non-volatile memory since one can keep
>> > data structures in the NVM and still be able to share them between multiple tasks.
>>
>> What's wrong with regular mmap?
>
> I never wanted to say that there is something wrong with regular mmap. We just
> figured that with VAS segments you could remove the need to mmap your shared data but
> instead can keep everything purely in memory.

memfd does that.

>
> Unfortunately, I am not at full speed with memfds. Is my understanding correct that
> if the last user of such a file descriptor closes it, the corresponding memory is
> freed? Accordingly, memfd cannot be used to keep data in memory while no program is
> currently using it, can it?

No, stop right here.  If you want to have a bunch of memory that
outlives the program that allocates it, use a filesystem (tmpfs,
hugetlbfs, ext4, whatever).  Don't create new persistent kernel
things.

> VAS segments on the other side would provide a functionality to
> achieve the same without the need of any mounted filesystem. However, I agree, that
> this is just a small advantage compared to what can already be achieved with the
> existing functionality provided by the Linux kernel.

I see this "small advantage" as "resource leak and security problem".

>> This sounds complicated and fragile.  What happens if a heuristically
>> shared region coincides with a region in the "first class address
>> space" being selected?
>
> If such a conflict happens, the task cannot use the first class address space and the
> corresponding system call will return an error. However, with the current available
> virtual address space size that programs can use, such conflicts are probably rare.

A bug that hits 1% of the time is often worse than one that hits 100%
of the time because debugging it is miserable.

--Andy

--
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>

  parent reply	other threads:[~2017-03-15 20:07 UTC|newest]

Thread overview: 260+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-13 22:14 [RFC PATCH 00/13] Introduce first class virtual address spaces Till Smejkal
2017-03-13 22:14 ` Till Smejkal
2017-03-13 22:14 ` Till Smejkal
2017-03-13 22:14 ` Till Smejkal
2017-03-13 22:14 ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 01/13] mm: Add mm_struct argument to 'mmap_region' Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 02/13] mm: Add mm_struct argument to 'do_mmap' and 'do_mmap_pgoff' Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 03/13] mm: Rename 'unmap_region' and add mm_struct argument Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 04/13] mm: Add mm_struct argument to 'get_unmapped_area' and 'vm_unmapped_area' Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 05/13] mm: Add mm_struct argument to 'mm_populate' and '__mm_populate' Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 06/13] mm/mmap: Export 'vma_link' and 'find_vma_links' to mm subsystem Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 07/13] kernel/fork: Split and export 'mm_alloc' and 'mm_init' Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-14 10:18   ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 10:18     ` David Laight
2017-03-14 16:18     ` Till Smejkal
2017-03-14 16:18       ` Till Smejkal
2017-03-14 16:18       ` Till Smejkal
2017-03-14 16:18       ` Till Smejkal
2017-03-14 16:18       ` Till Smejkal
2017-03-14 16:18       ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 08/13] kernel/fork: Define explicitly which mm_struct to duplicate during fork Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 09/13] mm/memory: Add function to one-to-one duplicate page ranges Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 10/13] mm: Introduce first class virtual address spaces Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 23:52   ` Greg Kroah-Hartman
2017-03-13 23:52     ` Greg Kroah-Hartman
2017-03-13 23:52     ` Greg Kroah-Hartman
2017-03-13 23:52     ` Greg Kroah-Hartman
2017-03-13 23:52     ` Greg Kroah-Hartman
2017-03-14  0:24     ` Till Smejkal
2017-03-14  0:24       ` Till Smejkal
2017-03-14  0:24       ` Till Smejkal
2017-03-14  0:24       ` Till Smejkal
2017-03-14  0:24       ` Till Smejkal
2017-03-14  1:35   ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  1:35     ` Vineet Gupta
2017-03-14  2:34     ` Till Smejkal
2017-03-14  2:34       ` Till Smejkal
2017-03-14  2:34       ` Till Smejkal
2017-03-14  2:34       ` Till Smejkal
2017-03-14  2:34       ` Till Smejkal
2017-03-14  2:34       ` Till Smejkal
2017-03-14  2:34       ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 11/13] mm/vas: Introduce VAS segments - shareable address space regions Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:27   ` Matthew Wilcox
2017-03-13 22:27     ` Matthew Wilcox
2017-03-13 22:27     ` Matthew Wilcox
2017-03-13 22:27     ` Matthew Wilcox
2017-03-13 22:27     ` Matthew Wilcox
2017-03-13 22:27     ` Matthew Wilcox
2017-03-13 22:27     ` Matthew Wilcox
2017-03-13 22:45     ` Till Smejkal
2017-03-13 22:45       ` Till Smejkal
2017-03-13 22:45       ` Till Smejkal
2017-03-13 22:45       ` Till Smejkal
2017-03-13 22:45       ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 12/13] mm/vas: Add lazy-attach support for first class virtual address spaces Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14 ` [RFC PATCH 13/13] fs/proc: Add procfs " Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-13 22:14   ` Till Smejkal
2017-03-14  0:18 ` [RFC PATCH 00/13] Introduce " Richard Henderson
2017-03-14  0:18   ` Richard Henderson
2017-03-14  0:18   ` Richard Henderson
2017-03-14  0:18   ` Richard Henderson
2017-03-14  0:18   ` Richard Henderson
2017-03-14  0:39   ` Till Smejkal
2017-03-14  0:39     ` Till Smejkal
2017-03-14  0:39     ` Till Smejkal
2017-03-14  0:39     ` Till Smejkal
2017-03-14  0:39     ` Till Smejkal
2017-03-14  1:02     ` Richard Henderson
2017-03-14  1:02       ` Richard Henderson
2017-03-14  1:02       ` Richard Henderson
2017-03-14  1:31       ` Till Smejkal
2017-03-14  1:31         ` Till Smejkal
2017-03-14  1:31         ` Till Smejkal
2017-03-14  1:31         ` Till Smejkal
2017-03-14  1:31         ` Till Smejkal
2017-03-14  0:58 ` Andy Lutomirski
2017-03-14  0:58   ` Andy Lutomirski
2017-03-14  0:58   ` Andy Lutomirski
2017-03-14  0:58   ` Andy Lutomirski
2017-03-14  0:58   ` Andy Lutomirski
2017-03-14  0:58   ` Andy Lutomirski
2017-03-14  2:07   ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  2:07     ` Till Smejkal
2017-03-14  5:37     ` Andy Lutomirski
2017-03-14  5:37       ` Andy Lutomirski
2017-03-14  5:37       ` Andy Lutomirski
2017-03-14  5:37       ` Andy Lutomirski
2017-03-14  5:37       ` Andy Lutomirski
2017-03-14 16:12       ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 16:12         ` Till Smejkal
2017-03-14 19:53         ` Chris Metcalf
2017-03-14 19:53           ` Chris Metcalf
2017-03-14 19:53           ` Chris Metcalf
2017-03-14 19:53           ` Chris Metcalf
2017-03-14 19:53           ` Chris Metcalf
2017-03-14 19:53           ` Chris Metcalf
2017-03-14 21:14           ` Till Smejkal
2017-03-14 21:14             ` Till Smejkal
2017-03-14 21:14             ` Till Smejkal
2017-03-14 21:14             ` Till Smejkal
2017-03-14 21:14             ` Till Smejkal
2017-03-14 21:14             ` Till Smejkal
2017-03-15 16:51         ` Andy Lutomirski
2017-03-15 16:51           ` Andy Lutomirski
2017-03-15 16:51           ` Andy Lutomirski
2017-03-15 16:51           ` Andy Lutomirski
2017-03-15 16:51           ` Andy Lutomirski
2017-03-15 16:57           ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 16:57             ` Matthew Wilcox
2017-03-15 19:44           ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:44             ` Till Smejkal
2017-03-15 19:47             ` Rich Felker
2017-03-15 19:47             ` Rich Felker
2017-03-15 19:47               ` Rich Felker
2017-03-15 19:47               ` Rich Felker
2017-03-15 19:47               ` Rich Felker
2017-03-15 21:30               ` Till Smejkal
2017-03-15 21:30                 ` Till Smejkal
2017-03-15 21:30                 ` Till Smejkal
2017-03-15 21:30                 ` Till Smejkal
2017-03-15 21:30                 ` Till Smejkal
2017-03-15 21:30                 ` Till Smejkal
2017-03-15 20:06             ` Andy Lutomirski [this message]
2017-03-15 20:06             ` Andy Lutomirski
2017-03-15 20:06               ` Andy Lutomirski
2017-03-15 20:06               ` Andy Lutomirski
2017-03-15 20:06               ` Andy Lutomirski
2017-03-15 22:02               ` Till Smejkal
2017-03-15 22:02                 ` Till Smejkal
2017-03-15 22:02                 ` Till Smejkal
2017-03-15 22:02                 ` Till Smejkal
2017-03-15 22:02                 ` Till Smejkal
2017-03-15 22:02                 ` Till Smejkal
2017-03-15 22:09                 ` Luck, Tony
2017-03-15 22:09                   ` Luck, Tony
2017-03-15 22:09                   ` Luck, Tony
2017-03-15 22:09                   ` Luck, Tony
2017-03-15 23:18                   ` Till Smejkal
2017-03-15 23:18                     ` Till Smejkal
2017-03-15 23:18                     ` Till Smejkal
2017-03-15 23:18                     ` Till Smejkal
2017-03-15 23:18                     ` Till Smejkal
2017-03-15 23:18                     ` Till Smejkal
2017-03-16  8:21                 ` Thomas Gleixner
2017-03-16  8:21                   ` Thomas Gleixner
2017-03-16  8:21                   ` Thomas Gleixner
2017-03-16  8:21                   ` Thomas Gleixner
2017-03-16  8:21                   ` Thomas Gleixner
2017-03-16  8:21                   ` Thomas Gleixner
2017-03-16 17:29                   ` Till Smejkal
2017-03-16 17:29                     ` Till Smejkal
2017-03-16 17:29                     ` Till Smejkal
2017-03-16 17:29                     ` Till Smejkal
2017-03-16 17:29                     ` Till Smejkal
2017-03-16 17:29                     ` Till Smejkal
2017-03-16 17:42                     ` Thomas Gleixner
2017-03-16 17:42                       ` Thomas Gleixner
2017-03-16 17:42                       ` Thomas Gleixner
2017-03-16 17:42                       ` Thomas Gleixner
2017-03-16 17:42                       ` Thomas Gleixner
2017-03-16 17:42                       ` Thomas Gleixner
2017-03-16 17:50                       ` Till Smejkal
2017-03-16 17:50                         ` Till Smejkal
2017-03-16 17:50                         ` Till Smejkal
2017-03-16 17:50                         ` Till Smejkal
2017-03-16 17:50                         ` Till Smejkal
2017-03-16 17:50                         ` Till Smejkal
2017-03-15 16:51         ` Andy Lutomirski

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='CALCETrXfGgxaLivhci0VL=wUaWAnBiUXC47P7TUaEuOYV_-X_g__29923.052507411$1489608441$gmane$org@mail.gmail.com' \
    --to=luto@amacapital.net \
    --cc=benh@kernel.crashing.org \
    --cc=catalin.marinas@arm.com \
    --cc=deller@gmx.de \
    --cc=fenghua.yu@intel.com \
    --cc=heiko.carstens@de \
    --cc=ink@jurassic.park.msu.ru \
    --cc=james.hogan@imgtec.com \
    --cc=jejb@parisc-linux.org \
    --cc=linux@armlinux.org.uk \
    --cc=luto@kernel.org \
    --cc=mattst88@gmail.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=ralf@linux-mips.org \
    --cc=realmz6@gmail.com \
    --cc=rkuo@codeaurora.org \
    --cc=rth@twiddle.net \
    --cc=schwidefsky@de.ibm.com \
    --cc=till.smejkal@googlemail.com \
    --cc=tony.luck@intel.com \
    --cc=vgupta@synopsys.com \
    --cc=will.deacon@arm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.