Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/829951/?format=api
{ "id": 829951, "url": "http://patchwork.ozlabs.org/api/1.2/patches/829951/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20171024152415.22864-9-jack@suse.cz/", "project": { "id": 8, "url": "http://patchwork.ozlabs.org/api/1.2/projects/8/?format=api", "name": "Linux ext4 filesystem development", "link_name": "linux-ext4", "list_id": "linux-ext4.vger.kernel.org", "list_email": "linux-ext4@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20171024152415.22864-9-jack@suse.cz>", "list_archive_url": null, "date": "2017-10-24T15:24:05", "name": "[08/17] dax: Inline dax_pmd_insert_mapping() into the callsite", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "c579ac626a349aa388cb38fba2b6b71888afbfd3", "submitter": { "id": 363, "url": "http://patchwork.ozlabs.org/api/1.2/people/363/?format=api", "name": "Jan Kara", "email": "jack@suse.cz" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20171024152415.22864-9-jack@suse.cz/mbox/", "series": [ { "id": 10008, "url": "http://patchwork.ozlabs.org/api/1.2/series/10008/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=10008", "date": "2017-10-24T15:23:57", "name": "dax, ext4, xfs: Synchronous page faults", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/10008/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/829951/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/829951/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linux-ext4-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-ext4-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yLxvN0szNz9t2c\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 25 Oct 2017 02:26:40 +1100 (AEDT)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S932175AbdJXP01 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 24 Oct 2017 11:26:27 -0400", "from mx2.suse.de ([195.135.220.15]:36114 \"EHLO mx2.suse.de\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S932322AbdJXPZc (ORCPT <rfc822;linux-ext4@vger.kernel.org>);\n\tTue, 24 Oct 2017 11:25:32 -0400", "from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id 2088BAD1F;\n\tTue, 24 Oct 2017 15:25:28 +0000 (UTC)", "by quack2.suse.cz (Postfix, from userid 1000)\n\tid 6193A1E35D0; Tue, 24 Oct 2017 17:25:27 +0200 (CEST)" ], "X-Virus-Scanned": "by amavisd-new at test-mx.suse.de", "From": "Jan Kara <jack@suse.cz>", "To": "Dan Williams <dan.j.williams@intel.com>", "Cc": "Ross Zwisler <ross.zwisler@linux.intel.com>,\n\tChristoph Hellwig <hch@infradead.org>,\n\t<linux-ext4@vger.kernel.org>, linux-nvdimm@lists.01.org,\n\t<linux-fsdevel@vger.kernel.org>, <linux-xfs@vger.kernel.org>,\n\tlinux-api@vger.kernel.org, <linux-mm@kvack.org>, Jan Kara <jack@suse.cz>", "Subject": "[PATCH 08/17] dax: Inline dax_pmd_insert_mapping() into the callsite", "Date": "Tue, 24 Oct 2017 17:24:05 +0200", "Message-Id": "<20171024152415.22864-9-jack@suse.cz>", "X-Mailer": "git-send-email 2.12.3", "In-Reply-To": "<20171024152415.22864-1-jack@suse.cz>", "References": "<20171024152415.22864-1-jack@suse.cz>", "Sender": "linux-ext4-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<linux-ext4.vger.kernel.org>", "X-Mailing-List": "linux-ext4@vger.kernel.org" }, "content": "dax_pmd_insert_mapping() has only one callsite and we will need to\nfurther fine tune what it does for synchronous faults. Just inline it\ninto the callsite so that we don't have to pass awkward bools around.\n\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nSigned-off-by: Jan Kara <jack@suse.cz>\n---\n fs/dax.c | 47 +++++++++++++++++--------------------------\n include/trace/events/fs_dax.h | 1 -\n 2 files changed, 19 insertions(+), 29 deletions(-)", "diff": "diff --git a/fs/dax.c b/fs/dax.c\nindex 5b20c6456926..675fab8ec41f 100644\n--- a/fs/dax.c\n+++ b/fs/dax.c\n@@ -1235,33 +1235,11 @@ static int dax_iomap_pte_fault(struct vm_fault *vmf,\n }\n \n #ifdef CONFIG_FS_DAX_PMD\n-static int dax_pmd_insert_mapping(struct vm_fault *vmf, struct iomap *iomap,\n-\t\tloff_t pos, void *entry)\n-{\n-\tstruct address_space *mapping = vmf->vma->vm_file->f_mapping;\n-\tconst sector_t sector = dax_iomap_sector(iomap, pos);\n-\tstruct inode *inode = mapping->host;\n-\tvoid *ret = NULL;\n-\tpfn_t pfn = {};\n-\tint rc;\n-\n-\trc = dax_iomap_pfn(iomap, pos, PMD_SIZE, &pfn);\n-\tif (rc < 0)\n-\t\tgoto fallback;\n-\n-\tret = dax_insert_mapping_entry(mapping, vmf, entry, sector,\n-\t\t\tRADIX_DAX_PMD);\n-\tif (IS_ERR(ret))\n-\t\tgoto fallback;\n-\n-\ttrace_dax_pmd_insert_mapping(inode, vmf, PMD_SIZE, pfn, ret);\n-\treturn vmf_insert_pfn_pmd(vmf->vma, vmf->address, vmf->pmd,\n-\t\t\tpfn, vmf->flags & FAULT_FLAG_WRITE);\n-\n-fallback:\n-\ttrace_dax_pmd_insert_mapping_fallback(inode, vmf, PMD_SIZE, pfn, ret);\n-\treturn VM_FAULT_FALLBACK;\n-}\n+/*\n+ * The 'colour' (ie low bits) within a PMD of a page offset. This comes up\n+ * more often than one might expect in the below functions.\n+ */\n+#define PG_PMD_COLOUR\t((PMD_SIZE >> PAGE_SHIFT) - 1)\n \n static int dax_pmd_load_hole(struct vm_fault *vmf, struct iomap *iomap,\n \t\tvoid *entry)\n@@ -1317,6 +1295,7 @@ static int dax_iomap_pmd_fault(struct vm_fault *vmf,\n \tvoid *entry;\n \tloff_t pos;\n \tint error;\n+\tpfn_t pfn;\n \n \t/*\n \t * Check whether offset isn't beyond end of file now. Caller is\n@@ -1394,7 +1373,19 @@ static int dax_iomap_pmd_fault(struct vm_fault *vmf,\n \n \tswitch (iomap.type) {\n \tcase IOMAP_MAPPED:\n-\t\tresult = dax_pmd_insert_mapping(vmf, &iomap, pos, entry);\n+\t\terror = dax_iomap_pfn(&iomap, pos, PMD_SIZE, &pfn);\n+\t\tif (error < 0)\n+\t\t\tgoto finish_iomap;\n+\n+\t\tentry = dax_insert_mapping_entry(mapping, vmf, entry,\n+\t\t\t\t\t\tdax_iomap_sector(&iomap, pos),\n+\t\t\t\t\t\tRADIX_DAX_PMD);\n+\t\tif (IS_ERR(entry))\n+\t\t\tgoto finish_iomap;\n+\n+\t\ttrace_dax_pmd_insert_mapping(inode, vmf, PMD_SIZE, pfn, entry);\n+\t\tresult = vmf_insert_pfn_pmd(vma, vmf->address, vmf->pmd, pfn,\n+\t\t\t\t\t write);\n \t\tbreak;\n \tcase IOMAP_UNWRITTEN:\n \tcase IOMAP_HOLE:\ndiff --git a/include/trace/events/fs_dax.h b/include/trace/events/fs_dax.h\nindex fbc4a06f7310..88a9d19b8ff8 100644\n--- a/include/trace/events/fs_dax.h\n+++ b/include/trace/events/fs_dax.h\n@@ -148,7 +148,6 @@ DEFINE_EVENT(dax_pmd_insert_mapping_class, name, \\\n \tTP_ARGS(inode, vmf, length, pfn, radix_entry))\n \n DEFINE_PMD_INSERT_MAPPING_EVENT(dax_pmd_insert_mapping);\n-DEFINE_PMD_INSERT_MAPPING_EVENT(dax_pmd_insert_mapping_fallback);\n \n DECLARE_EVENT_CLASS(dax_pte_fault_class,\n \tTP_PROTO(struct inode *inode, struct vm_fault *vmf, int result),\n", "prefixes": [ "08/17" ] }