Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965921AbcDLUr5 (ORCPT ); Tue, 12 Apr 2016 16:47:57 -0400 Received: from g1t5425.austin.hp.com ([15.216.225.55]:53372 "EHLO g1t5425.austin.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964798AbcDLUrz (ORCPT ); Tue, 12 Apr 2016 16:47:55 -0400 From: Toshi Kani To: akpm@linux-foundation.org, dan.j.williams@intel.com Cc: viro@zeniv.linux.org.uk, willy@linux.intel.com, ross.zwisler@linux.intel.com, kirill.shutemov@linux.intel.com, david@fromorbit.com, jack@suse.cz, tytso@mit.edu, adilger.kernel@dilger.ca, linux-nvdimm@ml01.01.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/5] Align mmap address for DAX pmd mappings Date: Tue, 12 Apr 2016 14:39:14 -0600 Message-Id: <1460493555-31611-1-git-send-email-toshi.kani@hpe.com> X-Mailer: git-send-email 2.5.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1580 Lines: 38 When CONFIG_FS_DAX_PMD is set, DAX supports mmap() using pmd page size. This feature relies on both mmap virtual address and FS block (i.e. physical address) to be aligned by the pmd page size. Users can use mkfs options to specify FS to align block allocations. However, aligning mmap address requires code changes to existing applications for providing a pmd-aligned address to mmap(). For instance, fio with "ioengine=mmap" performs I/Os with mmap() [1]. It calls mmap() with a NULL address, which needs to be changed to provide a pmd-aligned address for testing with DAX pmd mappings. Changing all applications that call mmap() with NULL is undesirable. This patch-set extends filesystems to align an mmap address for a DAX file so that unmodified applications can use DAX pmd mappings. [1]: https://github.com/axboe/fio/blob/master/engines/mmap.c v2: - Change filesystems to provide their get_unmapped_area(). (Matthew Wilcox) - Add more description about the benefit. (Matthew Wilcox) --- Toshi Kani (5): 1/5 dax: add dax_get_unmapped_area for pmd mappings 2/5 ext4: call dax_get_unmapped_area() for DAX pmd mappings 3/5 xfs: call dax_get_unmapped_area() for DAX pmd mappings 4/5 ext2: call dax_get_unmapped_area() for DAX pmd mappings 5/5 block: call dax_get_unmapped_area() for DAX pmd mappings --- fs/block_dev.c | 3 +++ fs/dax.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ fs/ext2/file.c | 3 +++ fs/ext4/file.c | 3 +++ fs/xfs/xfs_file.c | 3 +++ include/linux/dax.h | 2 ++ 6 files changed, 59 insertions(+)