Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756514AbbEUPtv (ORCPT ); Thu, 21 May 2015 11:49:51 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:22242 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756493AbbEUPts (ORCPT ); Thu, 21 May 2015 11:49:48 -0400 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Dave Hansen , Naoya Horiguchi , David Rientjes , Hugh Dickins , Davidlohr Bueso , Aneesh Kumar , Hillf Danton , Christoph Hellwig , Mike Kravetz Subject: [RFC v3 PATCH 00/10] hugetlbfs: add fallocate support Date: Thu, 21 May 2015 08:47:34 -0700 Message-Id: <1432223264-4414-1-git-send-email-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.1.0 X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2629 Lines: 57 There have been numerous changes to this patch set since the previous RFC. Most notably in the area of synchronization and race condition handling. The patch set now stands up to a series of functionality and stress testing. hugetlbfs is used today by applications that want a high degree of control over huge page usage. Often, large hugetlbfs files are used to map a large number huge pages into the application processes. The applications know when page ranges within these large files will no longer be used, and ideally would like to release them back to the subpool or global pools for other uses. The fallocate() system call provides an interface for preallocation and hole punching within files. This patch set adds fallocate functionality to hugetlbfs. RFC v3: Folded in patch for alloc_huge_page/hugetlb_reserve_pages race in current code fallocate allocation and hole punch is synchronized with page faults via existing mutex table hole punch uses existing hugetlb_vmtruncate_list instead of more generic unmap_mapping_range for unmapping Error handling for the case when region_del() fauils RFC v2: Addressed alignment and error handling issues noticed by Hillf Danton New region_del() routine for region tracking/resv_map of ranges Fixed several issues found during more extensive testing Error handling in region_del() when kmalloc() fails stills needs to be addressed madvise remove support remains Mike Kravetz (10): mm/hugetlb: compute/return the number of regions added by region_add() mm/hugetlb: handle races in alloc_huge_page and hugetlb_reserve_pages mm/hugetlb: add region_del() to delete a specific range of entries mm/hugetlb: expose hugetlb fault mutex for use by fallocate hugetlbfs: hugetlb_vmtruncate_list() needs to take a range to delete hugetlbfs: truncate_hugepages() takes a range of pages hugetlbfs: New huge_add_to_page_cache helper routine mm/hugetlb: vma_has_reserves() needs to handle fallocate hole punch hugetlbfs: add hugetlbfs_fallocate() mm: madvise allow remove operation for hugetlbfs fs/hugetlbfs/inode.c | 282 ++++++++++++++++++++++++++++++++++++++++++++---- include/linux/hugetlb.h | 12 ++- mm/hugetlb.c | 238 ++++++++++++++++++++++++++++++++-------- mm/madvise.c | 2 +- 4 files changed, 469 insertions(+), 65 deletions(-) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/