From: Mike Kravetz <mike.kravetz@oracle.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-api@vger.kernel.org,
Marek Szyprowski <m.szyprowski@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
"Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Guy Shattah <sguy@mellanox.com>, Christoph Lameter <cl@linux.com>,
Anshuman Khandual <khandual@linux.vnet.ibm.com>,
Laura Abbott <labbott@redhat.com>,
Vlastimil Babka <vbabka@suse.cz>
Subject: Re: [RFC PATCH 3/3] mm/map_contig: Add mmap(MAP_CONTIG) support
Date: Thu, 12 Oct 2017 10:19:16 -0700 [thread overview]
Message-ID: <f4a46a19-5f71-ebcc-3098-a35728fbfd03@oracle.com> (raw)
In-Reply-To: <20171012143756.p5bv4zx476qkmqhh@dhcp22.suse.cz>
On 10/12/2017 07:37 AM, Michal Hocko wrote:
> On Wed 11-10-17 18:46:11, Mike Kravetz wrote:
>> Add new MAP_CONTIG flag to mmap system call. Check for flag in normal
>> mmap flag processing. If present, pre-allocate a contiguous set of
>> pages to back the mapping. These pages will be used a fault time, and
>> the MAP_CONTIG flag implies populating the mapping at the mmap time.
>
> I have only briefly read through the previous discussion and it is still
> not clear to me _why_ we want such a interface. I didn't give it much
> time yet but I do not think this is a good idea at all.
Thanks for looking Michal. The primary use case comes from devices that can
realize performance benefits if operating on physically contiguous memory.
What sparked this effort was Christoph and Guy's plumbers presentation
where they showed RDMA performance benefits that could be realized with
contiguous memory. I also remember sitting in a presentation about
Intel's QuackAssist technology at Vault last year. The presenter mentioned
that their compression engine needed to be passed a physically contiguous
buffer. I asked how a user could obtain such a buffer. They said they
had a special driver/ioctl for that. Yuck! I'm guessing there are other
specific use cases. That is why I wanted to start the discussion as to
whether there should be an interface to provide this functionality.
> Why? Do we want
> any user to simply consume larger order memory blocks? What would
> prevent from that?
We certainly would want to put restrictions in place for contiguous
memory allocations. Since it makes sense to pre-populate and lock
contiguous allocations, using the same restrictions as mlock is a start.
However, I can see the possible need for more restrictions.
> Also why should even userspace care about larger
> memory blocks? We have huge pages (be it preallocated or transparent)
> for that purpose already. Why should we add yet another another type
The 'sweet spot' for the Mellanox RDMA example is 2GB. We can not
achieve that with huge pages (on x86) today.
> What is the guaratee of such a mapping.
There is no guarantee. My suggestion is that mmap(MAP_CONTIG) would fail
with ENOMEM if a sufficiently sized contiguous area could not be found.
The caller would need to deal with failure.
> Does the memory always stays contiguous? How much contiguous it will be?
Yes, it remains contiguous. It is locked in memory.
> Who is going to use such an interface? And probably many other
> questions...
Thanks for asking. I am just throwing out the idea of providing an interface
for doing contiguous memory allocations from user space. There are at least
two (and possibly more) devices that could benefit from such an interface.
--
Mike Kravetz
--
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:[~2017-10-12 17:19 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-03 23:56 [RFC] mmap(MAP_CONTIG) Mike Kravetz
2017-10-04 11:54 ` Michal Nazarewicz
2017-10-04 17:08 ` Mike Kravetz
2017-10-04 21:29 ` Laura Abbott
2017-10-04 13:49 ` Anshuman Khandual
2017-10-04 16:05 ` Christopher Lameter
2017-10-04 17:38 ` Mike Kravetz
2017-10-04 17:35 ` Mike Kravetz
2017-10-05 7:06 ` Vlastimil Babka
2017-10-05 8:58 ` Guy Shattah
2017-10-05 12:36 ` Guy Shattah
2017-10-05 14:30 ` Christopher Lameter
2017-10-12 1:46 ` [RFC PATCH 0/3] Add mmap(MAP_CONTIG) support Mike Kravetz
2017-10-12 1:46 ` [RFC PATCH 1/3] mm/map_contig: Add VM_CONTIG flag to vma struct Mike Kravetz
2017-10-12 1:46 ` [RFC PATCH 2/3] mm/map_contig: Use pre-allocated pages for VM_CONTIG mappings Mike Kravetz
2017-10-12 11:04 ` Anshuman Khandual
2017-10-12 1:46 ` [RFC PATCH 3/3] mm/map_contig: Add mmap(MAP_CONTIG) support Mike Kravetz
2017-10-12 11:22 ` Anshuman Khandual
2017-10-13 15:14 ` Christopher Lameter
2017-10-12 14:37 ` Michal Hocko
2017-10-12 17:19 ` Mike Kravetz [this message]
2017-10-13 8:40 ` Michal Hocko
2017-10-13 15:20 ` Christopher Lameter
2017-10-13 15:28 ` Michal Hocko
2017-10-13 15:42 ` Christopher Lameter
2017-10-13 15:47 ` Michal Hocko
[not found] ` <20171013154747.2jv7rtfqyyagiodn-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2017-10-13 15:56 ` Christopher Lameter
2017-10-13 16:17 ` Michal Hocko
2017-10-15 7:50 ` Guy Shattah
2017-10-16 8:24 ` Michal Hocko
[not found] ` <20171016082456.no6ux63uy2rmj4fe-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2017-10-16 9:11 ` Guy Shattah
2017-10-16 12:32 ` Michal Hocko
[not found] ` <20171016123248.csntl6luxgafst6q-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2017-10-16 16:00 ` Christopher Lameter
2017-10-16 17:42 ` Michal Hocko
[not found] ` <20171016174229.pz3o4uhzz3qbrp6n-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2017-10-16 17:56 ` Christopher Lameter
2017-10-16 18:17 ` Michal Hocko
2017-10-23 15:25 ` David Nellans
2017-10-17 10:50 ` Guy Shattah
[not found] ` <AM6PR0502MB378375AF8B569DBCCFE20D7DBD4C0-md96bDB8+JV1k1TWM4Wt8cDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-10-17 10:59 ` Michal Hocko
2017-10-17 13:22 ` Michal Nazarewicz
2017-10-17 14:20 ` Guy Shattah
2017-10-17 17:44 ` Vlastimil Babka
2017-10-17 18:23 ` Mike Kravetz
2017-10-17 19:56 ` Vlastimil Babka
[not found] ` <752b49eb-55c6-5a34-ab41-6e91dd93ea70-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2017-10-16 10:33 ` Michal Nazarewicz
[not found] ` <xa1t60bfxtzw.fsf-deATy8a+UHjQT0dZR+AlfA@public.gmane.org>
2017-10-16 11:09 ` Guy Shattah
2017-10-16 17:43 ` Mike Kravetz
[not found] ` <aff6b405-6a06-f84d-c9b1-c6fb166dff81-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-10-16 18:07 ` Michal Hocko
2017-10-16 20:32 ` Mike Kravetz
2017-10-16 20:58 ` Michal Hocko
2017-10-16 21:03 ` Laura Abbott
2017-10-16 21:18 ` Mike Kravetz
[not found] ` <e8cf6227-003d-8a82-8b4d-07176b43810c-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-10-17 6:59 ` Vlastimil Babka
2017-10-15 6:58 ` Pavel Machek
2017-10-16 8:18 ` Michal Hocko
2017-10-16 9:54 ` Pavel Machek
2017-10-16 12:18 ` Michal Hocko
[not found] ` <20171016121808.m4sq3g5nxeyxoymc-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2017-10-16 16:02 ` Christopher Lameter
2017-10-16 17:33 ` Michal Hocko
2017-10-16 17:53 ` Christopher Lameter
2017-10-15 8:07 ` Guy Shattah
2017-10-12 10:36 ` [RFC PATCH 0/3] " Anshuman Khandual
2017-10-12 14:25 ` Anshuman Khandual
2017-10-23 22:10 ` [RFC] mmap(MAP_CONTIG) Dave Hansen
2017-10-24 22:49 ` Mike Kravetz
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=f4a46a19-5f71-ebcc-3098-a35728fbfd03@oracle.com \
--to=mike.kravetz@oracle.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=khandual@linux.vnet.ibm.com \
--cc=labbott@redhat.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=m.szyprowski@samsung.com \
--cc=mhocko@kernel.org \
--cc=mina86@mina86.com \
--cc=sguy@mellanox.com \
--cc=vbabka@suse.cz \
/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;
as well as URLs for NNTP newsgroup(s).