{"id":2197307,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2197307/?format=json","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.0/projects/2/?format=json","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/"},"msgid":"<20260217163250.2326001-1-surenb@google.com>","date":"2026-02-17T16:32:47","name":"[v2,0/3] Use killable vma write locking in most places","submitter":{"id":74729,"url":"http://patchwork.ozlabs.org/api/1.0/people/74729/?format=json","name":"Suren Baghdasaryan","email":"surenb@google.com"},"series":[{"id":492454,"url":"http://patchwork.ozlabs.org/api/1.0/series/492454/?format=json","date":"2026-02-17T16:32:47","name":"Use killable vma write locking in most places","version":2,"mbox":"http://patchwork.ozlabs.org/series/492454/mbox/"}],"headers":{"Return-Path":"\n <linuxppc-dev+bounces-16906-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256\n header.s=20230601 header.b=ySW8VjNi;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-16906-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=none smtp.remote-ip=\"2607:f8b0:4864:20::124a\"","lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=google.com","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256\n header.s=20230601 header.b=ySW8VjNi;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=flex--surenb.bounces.google.com\n (client-ip=2607:f8b0:4864:20::124a; helo=mail-dl1-x124a.google.com;\n envelope-from=3nziuaqykdaw463qzns00sxq.o0yxuz6911o-pq7xu454.0bxmn4.03s@flex--surenb.bounces.google.com;\n receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFlYm3WRVz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 03:33:00 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fFlYl3Qcxz2yrn;\n\tWed, 18 Feb 2026 03:32:59 +1100 (AEDT)","from mail-dl1-x124a.google.com (mail-dl1-x124a.google.com\n [IPv6:2607:f8b0:4864:20::124a])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4fFlYj5XPjz2xjP\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 18 Feb 2026 03:32:57 +1100 (AEDT)","by mail-dl1-x124a.google.com with SMTP id\n a92af1059eb24-1273665df8fso7149286c88.1\n        for <linuxppc-dev@lists.ozlabs.org>;\n Tue, 17 Feb 2026 08:32:56 -0800 (PST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1771345979;\n\tcv=none;\n b=RKOOwUfN3BXtZNI9cGKVWwg5R/LdtBc/tHJngvXIbwDPRmRmSazbwo+PXO/EQEcjn2RqO6wXcDR1rFOYtmSGr6YREohsJ19q6CNQA3vGK4E+/F2QPkR+OIVvW0iwZ2lM2mfhKxTEgdu7gPnNv9z0Tx17sNxy01QTYkmFyipERxmttqfZlDrMqErxzeR++Bybw8EZBaMAvp51Ub/GuumXx0crrWSxo+p4lI15Tsa7r9VopnETr0Wu5248p501Xf3iZwExaYLd/aQccEyThj6CyyJDdJL4DtItTtPDjY7EvRqf3LB2yFcrfizyXJVX1XI+z5WMgv1KMcLGzRWuWC8JmA==","ARC-Message-Signature":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1771345979; c=relaxed/relaxed;\n\tbh=bJd/jsI1Ahr6ZvCTFiQFd3QULQDNn4kGH1XUoRnqvFw=;\n\th=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type;\n b=X925HlNGm+hupx7JkRWgNfFyXm2K1xIyteFtPwVEYwHwbgv8SRvGvzEFO804/Kapx3GOlhJarTgWZcygJABxGy/H/lypyXapJ5qZqexi7M/6Dkea134qmNM/JrthnnlIQFilQasEVGTyg2vWwHD7a5kIFAddiSUQsfuqQ3CWe+XpUnOAKQi+210dDoob+bXHxNx5Nq5/TZwaCJhKr+QYA6rXiIqjjonbBFU4mG/a/dgIOskfazWUypL6ZoK3yZo1UstzUtuq8Lmj5sO/hGtWVnC2EcPNqrXrSnMMsccH2I4xhlm+kB1IhHouQAqehQ4+dtns6muTUl4tn7Wnp8DJ4A==","ARC-Authentication-Results":"i=1; lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=google.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256\n header.s=20230601 header.b=ySW8VjNi; dkim-atps=neutral;\n spf=pass (client-ip=2607:f8b0:4864:20::124a; helo=mail-dl1-x124a.google.com;\n envelope-from=3nziuaqykdaw463qzns00sxq.o0yxuz6911o-pq7xu454.0bxmn4.03s@flex--surenb.bounces.google.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=flex--surenb.bounces.google.com","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=google.com; s=20230601; t=1771345974; x=1771950774;\n darn=lists.ozlabs.org;\n        h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject\n         :date:message-id:reply-to;\n        bh=bJd/jsI1Ahr6ZvCTFiQFd3QULQDNn4kGH1XUoRnqvFw=;\n        b=ySW8VjNipv5m2sl3sC8xv5eLgPYoHj/HE6AoNy2r+iiTnBTVv/dW5UBa6Xa3eSKN+T\n         JDbuNA95e7Gnb0qivpmSEm1zn67pSyn3RQK4HACM1tbHh7SuOYIbmu4o/AhiWrFyvHV0\n         6egDat/+LA7HadndXnrE79sqdWBKDDxg8r11zPY5kU205Uc09D0EjsJLpPbvZKp35EQo\n         x39x+tfXakRiKy81BOIty5U/q2fsXYrk1JZbzrbGwJRAiTQbsjKCV6BYWDOnUxxdOqTY\n         W70oy6wrBsaRF+QHSFUQMG/7bXC8zU7i6AzkLXjtIuXP7JW5be/jpe2zub82e7mT7Kj1\n         0q0A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20230601; t=1771345974; x=1771950774;\n        h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state\n         :from:to:cc:subject:date:message-id:reply-to;\n        bh=bJd/jsI1Ahr6ZvCTFiQFd3QULQDNn4kGH1XUoRnqvFw=;\n        b=L7kVh2kmj1yBEyH5DJ7VRnkW3rPhK16uE7OqneyHnfn6EGOZiOzt07feo9AVqNxcqK\n         N7JPzC4QL9ppbNWwTfoCJF8zfqlrNiyerGLScFKkkP0yQLtPVFeEt2XVEi+Ko2NJl9Ct\n         ZYnYdk+67eW7LCVf85/M1Z89NisEi8RZtjBpr9YKNn3k/vsIw8UxB52fiZ4DOyB99oxf\n         Oj1eIkseKEZAarBH2WKAGMOu6h+GdZ94Fjj7kljMSRv7eJeoJ/ymnKaQHw1d5LUup1TI\n         APodeaIJOhOzpnVopKoaBBAft/Wy+SDiQR4UVMCeVV+YSzV+hfOVfpshJZnZVs2WmGLN\n         2sWg==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXrGCXd0ZL246zmaCKv4pYXddszVVq6iHvSMD/6YHgNuJ3SXgboLwqAtrul++xI/ByGUzqXtjmji6ylKsI=@lists.ozlabs.org","X-Gm-Message-State":"AOJu0YwmIEho+x4e72WwgHfCkBnPGN+QzoXLHc/mNSeIdmew+F9rnx8G\n\tGxlG7KTouaixyhWEQbBYUn2OezF/Q0pEtxPLiQJ8AJDFCjuZt6imiFnhpwq3HDLLR0L5pA8gYDO\n\t7b5l2Pg==","X-Received":"from dlbur9.prod.google.com ([2002:a05:7022:ea49:b0:127:e77:9377])\n (user=surenb job=prod-delivery.src-stubby-dispatcher) by\n 2002:a05:7022:6b9f:b0:123:3488:899c\n with SMTP id a92af1059eb24-1273ae56e4dmr5617423c88.40.1771345973444; Tue, 17\n Feb 2026 08:32:53 -0800 (PST)","Date":"Tue, 17 Feb 2026 08:32:47 -0800","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","Mime-Version":"1.0","X-Mailer":"git-send-email 2.53.0.273.g2a3d683680-goog","Message-ID":"<20260217163250.2326001-1-surenb@google.com>","Subject":"[PATCH v2 0/3] Use killable vma write locking in most places","From":"Suren Baghdasaryan <surenb@google.com>","To":"akpm@linux-foundation.org","Cc":"willy@infradead.org, david@kernel.org, ziy@nvidia.com,\n\tmatthew.brost@intel.com, joshua.hahnjy@gmail.com, rakie.kim@sk.com,\n\tbyungchul@sk.com, gourry@gourry.net, ying.huang@linux.alibaba.com,\n\tapopple@nvidia.com, lorenzo.stoakes@oracle.com,\n baolin.wang@linux.alibaba.com,\n\tLiam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com,\n\tdev.jain@arm.com, baohua@kernel.org, lance.yang@linux.dev, vbabka@suse.cz,\n\tjannh@google.com, rppt@kernel.org, mhocko@suse.com, pfalcato@suse.de,\n\tkees@kernel.org, maddy@linux.ibm.com, npiggin@gmail.com, mpe@ellerman.id.au,\n\tchleroy@kernel.org, borntraeger@linux.ibm.com, frankja@linux.ibm.com,\n\timbrenda@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com,\n\tagordeev@linux.ibm.com, svens@linux.ibm.com, gerald.schaefer@linux.ibm.com,\n\tlinux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, surenb@google.com","Content-Type":"text/plain; charset=\"UTF-8\"","X-Spam-Status":"No, score=-7.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,\n\tUSER_IN_DEF_DKIM_WL autolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"},"content":"Now that we have vma_start_write_killable() we can replace most of the\nvma_start_write() calls with it, improving reaction time to the kill\nsignal.\n\nThere are several places which are left untouched by this patchset:\n\n1. free_pgtables() because function should free page tables even if a\nfatal signal is pending.\n\n2. userfaultd code, where some paths calling vma_start_write() can\nhandle EINTR and some can't without a deeper code refactoring.\n\n3. vm_flags_{set|mod|clear} require refactoring that involves moving\nvma_start_write() out of these functions and replacing it with\nvma_assert_write_locked(), then callers of these functions should\nlock the vma themselves using vma_start_write_killable() whenever\npossible.\n\nA cleanup patch is added in the beginning to make later changes more\nreadable. The second patch contains most of the changes and the last\npatch contains the changes associated with process_vma_walk_lock()\nerror handling.\n\nChanges since v1 [1]:\n- Moved vma_start_write_killable() inside set_mempolicy_home_node()\nto be done before mpol_dup(new), per Jann Horn\n- Added error propagation for the missing PGWALK_WRLOCK users and\nsplit it into a separate patch, per Jann Horn\n- Moved vma_start_write_killable() inside __split_vma() to be done\nbefore new->vm_ops->open(), per Jann Horn\n- Added a separate patch to change flow control in vma_expand(),\nper Jann Horn\n- Brought back signal_pending() in mm_take_all_locks, per Jann Horn\n- Moved vma_start_write_killable() inside __mmap_new_vma() to be done\nbefore __mmap_new_file_vma(), per Jann Horn\n- Added Reviewed-by for powerpc, per Ritesh Harjani\n- Added s390 reviewers and the list due to changes in the last patch\n\n[1] https://lore.kernel.org/all/20260209220849.2126486-1-surenb@google.com/\n\nSuren Baghdasaryan (3):\n  mm/vma: cleanup error handling path in vma_expand()\n  mm: replace vma_start_write() with vma_start_write_killable()\n  mm: use vma_start_write_killable() in process_vma_walk_lock()\n\n arch/powerpc/kvm/book3s_hv_uvmem.c |   5 +-\n arch/s390/kvm/kvm-s390.c           |   5 +-\n arch/s390/mm/gmap.c                |  13 +++-\n fs/proc/task_mmu.c                 |   7 +-\n include/linux/mempolicy.h          |   5 +-\n mm/khugepaged.c                    |   5 +-\n mm/madvise.c                       |   4 +-\n mm/memory.c                        |   2 +\n mm/mempolicy.c                     |  23 +++++--\n mm/mlock.c                         |  20 ++++--\n mm/mprotect.c                      |   4 +-\n mm/mremap.c                        |   4 +-\n mm/pagewalk.c                      |  20 ++++--\n mm/vma.c                           | 105 ++++++++++++++++++++---------\n mm/vma_exec.c                      |   6 +-\n 15 files changed, 164 insertions(+), 64 deletions(-)\n\n\nbase-commit: b08472d036a36893ecf68296d87beb58d21f4357"}