| From: |
| Mike Kravetz <mike.kravetz-AT-oracle.com> |
| To: |
| linux-mm-AT-kvack.org, linux-kernel-AT-vger.kernel.org, linux-api-AT-vger.kernel.org |
| Subject: |
| [RFC PATCH 0/3] Add mmap(MAP_CONTIG) support |
| Date: |
| Wed, 11 Oct 2017 18:46:08 -0700 |
| Message-ID: |
| <20171012014611.18725-1-mike.kravetz@oracle.com> |
| Cc: |
| Marek Szyprowski <m.szyprowski-AT-samsung.com>, Michal Nazarewicz <mina86-AT-mina86.com>, "Aneesh Kumar K . V" <aneesh.kumar-AT-linux.vnet.ibm.com>, Joonsoo Kim <iamjoonsoo.kim-AT-lge.com>, Guy Shattah <sguy-AT-mellanox.com>, Christoph Lameter <cl-AT-linux.com>, Anshuman Khandual <khandual-AT-linux.vnet.ibm.com>, Laura Abbott <labbott-AT-redhat.com>, Vlastimil Babka <vbabka-AT-suse.cz>, Mike Kravetz <mike.kravetz-AT-oracle.com> |
The following is a 'possible' way to add such functionality. I just
did what was easy and pre-allocated contiguous pages which are used
to populate the mapping. I did not use any of the higher order
allocators such as alloc_contig_range. Therefore, it is limited to
allocations of MAX_ORDER size. Also, the allocations should probably
be done outside mmap_sem but that was the easiest place to do it in
this quick and easy POC.
I just wanted to throw out some code to get further ideas. It is far
from complete.
Mike Kravetz (3):
mm/map_contig: Add VM_CONTIG flag to vma struct
mm/map_contig: Use pre-allocated pages for VM_CONTIG mappings
mm/map_contig: Add mmap(MAP_CONTIG) support
include/linux/mm.h | 1 +
include/uapi/asm-generic/mman.h | 1 +
kernel/fork.c | 2 +-
mm/memory.c | 13 +++++-
mm/mmap.c | 94 +++++++++++++++++++++++++++++++++++++++++
5 files changed, 109 insertions(+), 2 deletions(-)
--
2.13.6