Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/811783/?format=api
{ "id": 811783, "url": "http://patchwork.ozlabs.org/api/patches/811783/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1504894024-2750-4-git-send-email-ldufour@linux.vnet.ibm.com/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api", "name": "Linux PPC development", "link_name": "linuxppc-dev", "list_id": "linuxppc-dev.lists.ozlabs.org", "list_email": "linuxppc-dev@lists.ozlabs.org", "web_url": "https://github.com/linuxppc/wiki/wiki", "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git", "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/", "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/", "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}" }, "msgid": "<1504894024-2750-4-git-send-email-ldufour@linux.vnet.ibm.com>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/1504894024-2750-4-git-send-email-ldufour@linux.vnet.ibm.com/", "date": "2017-09-08T18:06:47", "name": "[v3,03/20] mm: Introduce pte_spinlock for FAULT_FLAG_SPECULATIVE", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": false, "hash": "0af30447d2319f5c5280b1881712a5972fc04e85", "submitter": { "id": 40248, "url": "http://patchwork.ozlabs.org/api/people/40248/?format=api", "name": "Laurent Dufour", "email": "ldufour@linux.vnet.ibm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1504894024-2750-4-git-send-email-ldufour@linux.vnet.ibm.com/mbox/", "series": [ { "id": 2269, "url": "http://patchwork.ozlabs.org/api/series/2269/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=2269", "date": "2017-09-08T18:06:44", "name": "Speculative page faults", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/2269/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/811783/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/811783/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>", "X-Original-To": [ "patchwork-incoming@ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Delivered-To": [ "patchwork-incoming@ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xpltN5vkJz9s7C\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 9 Sep 2017 04:18:04 +1000 (AEST)", "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xpltN4pBvzDqGV\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 9 Sep 2017 04:18:04 +1000 (AEST)", "from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n\t[148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xplf81n5SzDrYm\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tSat, 9 Sep 2017 04:07:28 +1000 (AEST)", "from pps.filterd (m0098419.ppops.net [127.0.0.1])\n\tby mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv88I4RZs021350\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 8 Sep 2017 14:07:25 -0400", "from e06smtp14.uk.ibm.com (e06smtp14.uk.ibm.com [195.75.94.110])\n\tby mx0b-001b2d01.pphosted.com with ESMTP id 2cuuu8x6ug-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 08 Sep 2017 14:07:25 -0400", "from localhost\n\tby e06smtp14.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <linuxppc-dev@lists.ozlabs.org> from <ldufour@linux.vnet.ibm.com>;\n\tFri, 8 Sep 2017 19:07:23 +0100", "from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197)\n\tby e06smtp14.uk.ibm.com (192.168.101.144) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tFri, 8 Sep 2017 19:07:17 +0100", "from d06av24.portsmouth.uk.ibm.com (d06av24.portsmouth.uk.ibm.com\n\t[9.149.105.60])\n\tby b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v88I7G8R19464422; Fri, 8 Sep 2017 18:07:16 GMT", "from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id C06AB42042;\n\tFri, 8 Sep 2017 19:03:43 +0100 (BST)", "from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id F262B4203F;\n\tFri, 8 Sep 2017 19:03:41 +0100 (BST)", "from nimbus.lab.toulouse-stg.fr.ibm.com (unknown [9.145.31.125])\n\tby d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP;\n\tFri, 8 Sep 2017 19:03:41 +0100 (BST)" ], "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=linux.vnet.ibm.com\n\t(client-ip=148.163.158.5; helo=mx0a-001b2d01.pphosted.com;\n\tenvelope-from=ldufour@linux.vnet.ibm.com; receiver=<UNKNOWN>)", "From": "Laurent Dufour <ldufour@linux.vnet.ibm.com>", "To": "paulmck@linux.vnet.ibm.com, peterz@infradead.org,\n\takpm@linux-foundation.org, kirill@shutemov.name, ak@linux.intel.com, \n\tmhocko@kernel.org, dave@stgolabs.net, jack@suse.cz,\n\tMatthew Wilcox <willy@infradead.org>, benh@kernel.crashing.org,\n\tmpe@ellerman.id.au, paulus@samba.org,\n\tThomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, \n\thpa@zytor.com, Will Deacon <will.deacon@arm.com>,\n\tSergey Senozhatsky <sergey.senozhatsky@gmail.com>", "Subject": "[PATCH v3 03/20] mm: Introduce pte_spinlock for\n\tFAULT_FLAG_SPECULATIVE", "Date": "Fri, 8 Sep 2017 20:06:47 +0200", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1504894024-2750-1-git-send-email-ldufour@linux.vnet.ibm.com>", "References": "<1504894024-2750-1-git-send-email-ldufour@linux.vnet.ibm.com>", "X-TM-AS-GCONF": "00", "x-cbid": "17090818-0016-0000-0000-000004EB9F4E", "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused", "x-cbparentid": "17090818-0017-0000-0000-00002825A705", "Message-Id": "<1504894024-2750-4-git-send-email-ldufour@linux.vnet.ibm.com>", "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-08_12:, , signatures=0", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709080270", "X-BeenThere": "linuxppc-dev@lists.ozlabs.org", "X-Mailman-Version": "2.1.23", "Precedence": "list", "List-Id": "Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>", "List-Unsubscribe": "<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>", "List-Archive": "<http://lists.ozlabs.org/pipermail/linuxppc-dev/>", "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>", "List-Help": "<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>", "List-Subscribe": "<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>", "Cc": "linuxppc-dev@lists.ozlabs.org, x86@kernel.org,\n\tlinux-kernel@vger.kernel.org, npiggin@gmail.com, linux-mm@kvack.org,\n\tTim Chen <tim.c.chen@linux.intel.com>, \n\tharen@linux.vnet.ibm.com, khandual@linux.vnet.ibm.com", "Errors-To": "linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org", "Sender": "\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>" }, "content": "When handling page fault without holding the mmap_sem the fetch of the\npte lock pointer and the locking will have to be done while ensuring\nthat the VMA is not touched in our back.\n\nSo move the fetch and locking operations in a dedicated function.\n\nSigned-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>\n---\n mm/memory.c | 15 +++++++++++----\n 1 file changed, 11 insertions(+), 4 deletions(-)", "diff": "diff --git a/mm/memory.c b/mm/memory.c\nindex 13c8c3c8b5e4..530d887ca885 100644\n--- a/mm/memory.c\n+++ b/mm/memory.c\n@@ -2408,6 +2408,13 @@ static inline void wp_page_reuse(struct vm_fault *vmf)\n \tpte_unmap_unlock(vmf->pte, vmf->ptl);\n }\n \n+static bool pte_spinlock(struct vm_fault *vmf)\n+{\n+\tvmf->ptl = pte_lockptr(vmf->vma->vm_mm, vmf->pmd);\n+\tspin_lock(vmf->ptl);\n+\treturn true;\n+}\n+\n static bool pte_map_lock(struct vm_fault *vmf)\n {\n \tvmf->pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl);\n@@ -3717,8 +3724,8 @@ static int do_numa_page(struct vm_fault *vmf)\n \t * validation through pte_unmap_same(). It's of NUMA type but\n \t * the pfn may be screwed if the read is non atomic.\n \t */\n-\tvmf->ptl = pte_lockptr(vma->vm_mm, vmf->pmd);\n-\tspin_lock(vmf->ptl);\n+\tif (!pte_spinlock(vmf))\n+\t\treturn VM_FAULT_RETRY;\n \tif (unlikely(!pte_same(*vmf->pte, vmf->orig_pte))) {\n \t\tpte_unmap_unlock(vmf->pte, vmf->ptl);\n \t\tgoto out;\n@@ -3910,8 +3917,8 @@ static int handle_pte_fault(struct vm_fault *vmf)\n \tif (pte_protnone(vmf->orig_pte) && vma_is_accessible(vmf->vma))\n \t\treturn do_numa_page(vmf);\n \n-\tvmf->ptl = pte_lockptr(vmf->vma->vm_mm, vmf->pmd);\n-\tspin_lock(vmf->ptl);\n+\tif (!pte_spinlock(vmf))\n+\t\treturn VM_FAULT_RETRY;\n \tentry = vmf->orig_pte;\n \tif (unlikely(!pte_same(*vmf->pte, entry)))\n \t\tgoto unlock;\n", "prefixes": [ "v3", "03/20" ] }