From patchwork Fri May 26 23:44:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yu Zhao X-Patchwork-Id: 13257443 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2FD3CC7EE32 for ; Fri, 26 May 2023 23:44:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F976280004; Fri, 26 May 2023 19:44:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0AD43280001; Fri, 26 May 2023 19:44:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E66BA280004; Fri, 26 May 2023 19:44:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D4C0B280001 for ; Fri, 26 May 2023 19:44:51 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B6EBA160FC5 for ; Fri, 26 May 2023 23:44:51 +0000 (UTC) X-FDA: 80834038782.24.BF7E2F0 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf23.hostedemail.com (Postfix) with ESMTP id EC15114000E for ; Fri, 26 May 2023 23:44:49 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Y62V38pt; spf=pass (imf23.hostedemail.com: domain of 3cURxZAYKCOgiejRKYQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--yuzhao.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3cURxZAYKCOgiejRKYQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--yuzhao.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685144690; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Bguo3hUZaLYxse9v+ik+MX3ufqUdHR10jXNpIhPD3cE=; b=Rk/x/EQnCQgW77M+9mgqLGtllhQrakp5WuXpwAbk2weufeJ9nZN+Tpgx+GNs4E9lgxq1JR aCJrprgQcqF085Y8bbnlPgauSvZjcWuabnUsQZ3wUYM8mC1N7WirCTPJNsDbZ/eRo2Kpv4 6+U6NHXa5hbIQk6DVtHe+/meVjA2Ik0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685144690; a=rsa-sha256; cv=none; b=fUHl8GqxtNvFRx1T1JgXcN8spQsnM8Y8kCdD3+wSTIYYGYVcW0pPyIqFDDN6RUmKsvQXkz sz6G7HIGYv1GbSplg5c4whG6EPm3qX1obiYyhfxWLMJydSgpKc2V8KJJws86rTBOKY0ecD 3tw159IqLi7mTyjJqmn4JUPputmtaiw= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Y62V38pt; spf=pass (imf23.hostedemail.com: domain of 3cURxZAYKCOgiejRKYQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--yuzhao.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3cURxZAYKCOgiejRKYQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--yuzhao.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-ba2b9ecfadaso2800723276.2 for ; Fri, 26 May 2023 16:44:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685144689; x=1687736689; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Bguo3hUZaLYxse9v+ik+MX3ufqUdHR10jXNpIhPD3cE=; b=Y62V38pt3Kf7P9M2YivEC5661SUHDQjGPJeLNpi65nB4y+p3TsqoRR0z/9AOIr1Kjf gl3yg0EBv9UJcyGGhkoV+eP5nxHHEckaVjNM+WV0ph8y6N8NKNrOoxejQzf6xVLF0GNF CMPzW7iyFKrk0I+YLOBH1dB2cwpR8z8XT9p+1tlyni+H85cDXJGB/ZGkaiDpbVC82/o/ GKwW1qcFloQI+vCY/C+X0I8xbKAWwMlWN0KpQsh6osmLARaX2g1tNlgMEbkEwKadQaPu 8s3poXNR7qoLyRgjp4108zRCziAP6oNak8GIUn6lV7gRCswVoQjlt0PKr+oTkaiyWyY0 Ciug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685144689; x=1687736689; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Bguo3hUZaLYxse9v+ik+MX3ufqUdHR10jXNpIhPD3cE=; b=H31dRLORFYTONfmSI10zKEamFgZ/Hg1vtAnWIiIJZG2YXgL8hwUUvPw+Ocm2RoGrTy b3K5s4m+tNlrumCkisygv1WzvU7WmO5bCFJRxPaakzm01AePPLKxeX9CLMy6fppROlCb o6wc2zuoa7NqqQytnuGfjMgDTaVv7YCHUmqFehSjd45CWuUkwo6PcA/oI5QoBKft/HGt ekVRco3bmkuTUIKrXiwfVDtnmgjtwrsJm6nN5uKqT1XWWO4cuvUd4qNMNLUC+n4/jW8C /UUig1txtUKlIxHBSSZHyW2ME74DTZ3IQVVm7zQN7Jd1bilUGTAoppwwVHKXIKLQkUxS WpQw== X-Gm-Message-State: AC+VfDyl+aGxp6cpsYwLPfFDImb2KbYqxfKw51WTM9Lfek2dO9rEqJJM ou8xtQ/xL3uwbiZ0S0dUZ8VuuSGKHvE= X-Google-Smtp-Source: ACHHUZ72Yke0umLVJsAYBjLDCmB2C1ZbHNslgBIJrMfaEGzX80HaCkEwKhsoBR2khvT0ady9wDj4p4x/v3M= X-Received: from yuzhao.bld.corp.google.com ([2620:15c:183:200:910f:8a15:592b:2087]) (user=yuzhao job=sendgmr) by 2002:a25:3cb:0:b0:ba8:337a:d8a3 with SMTP id 194-20020a2503cb000000b00ba8337ad8a3mr1807757ybd.11.1685144689141; Fri, 26 May 2023 16:44:49 -0700 (PDT) Date: Fri, 26 May 2023 17:44:31 -0600 In-Reply-To: <20230526234435.662652-1-yuzhao@google.com> Message-Id: <20230526234435.662652-7-yuzhao@google.com> Mime-Version: 1.0 References: <20230526234435.662652-1-yuzhao@google.com> X-Mailer: git-send-email 2.41.0.rc0.172.g3f132b7071-goog Subject: [PATCH mm-unstable v2 06/10] kvm/powerpc: make radix page tables RCU safe From: Yu Zhao To: Andrew Morton , Paolo Bonzini Cc: Alistair Popple , Anup Patel , Ben Gardon , Borislav Petkov , Catalin Marinas , Chao Peng , Christophe Leroy , Dave Hansen , Fabiano Rosas , Gaosheng Cui , Gavin Shan , "H. Peter Anvin" , Ingo Molnar , James Morse , "Jason A. Donenfeld" , Jason Gunthorpe , Jonathan Corbet , Marc Zyngier , Masami Hiramatsu , Michael Ellerman , Michael Larabel , Mike Rapoport , Nicholas Piggin , Oliver Upton , Paul Mackerras , Peter Xu , Sean Christopherson , Steven Rostedt , Suzuki K Poulose , Thomas Gleixner , Thomas Huth , Will Deacon , Zenghui Yu , kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org, x86@kernel.org, linux-mm@google.com, Yu Zhao X-Rspamd-Queue-Id: EC15114000E X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 7ap9hm7mp34j5bcq5cjqyxg38rcy69eq X-HE-Tag: 1685144689-120046 X-HE-Meta: U2FsdGVkX1+iYDX2St+BYOtGdcoEA+99VXlwRt7rOd3rFW7thVBKgdspwmdjUDUNYqVEkyM+paOJYmHTsf+zEjap5i2K5BUn9nqgMwVvUQwqXHsECrYqnUiZlAxbbranDsC+YCopujd/mu5oWksv5DwbiQeTXYI+BWaXWEWryKObXD6Q8EJ1ube6BD4dcwyMWBx/wdO/PCb1yN0T5acDtw4OR3KsK29ITzTaHt2CoV8bqgiqnPR2+6LbMIr7VGZQ48KRF0+nCdGPoAH/en2kFYBggME5TlzWJUcrKG3TM8X/bjPoRAff2lfmWzKbbusPfg0dcMjgUkw/yBRHx7rwQdsZ4qwaZrrH2mRD1AC3Xgor+pQFg7entVZw401JzZGMf0E0sTINkoqlD8h7nOOlnTx14GvYfEfxuJlTYets2uPlCSz2TGLLhUsIq919wkT/+w6fA51+QRXlwiOZgTh4gQySxfsheKUwJZh+tGNTMd3xEce7boPJaeVvKDlql0m/jODNXaDcqv10beQUfhcfuJGYYYgWvykQoEWkOU5J4lhvL7gSYBVq74YdwKKmW6cF4AoHRXdCXnHLwCdxEzqXZFGXSaiS3ZvT7lonVb05yzd/hkH6a4gvV8AuwxXaOWToXPOBhZp4kwduwvodGQXRIHDW0aCBjPs2JtjuRQZZ1R+xB1utZV1yBLQqeB+9dwcb1N+kqprYngUDASV5JrVhOGFTRxSbKEmKSbzZiHiIwaDlJFk5SOFl7lBlm37Nz0JJvq1Nry/9KE4vRizQzVqEUwW/Q+YS5NVzXKvhUppkwH7Rhg6xzXrKFyWjgmP3ehUdoXD/vbFDxlueCH8Wd3So3FZPspJYAi+uhICpj7KjKHzNHt38Q8qJz8CGgTG9i9DyUO6tTPpE/Ve4YsQnWpNsho+wVkkcroi6UHnXHnuvgH7fyhNmTiqN8LZsy8hoF0FhgzymyG5zMy1X1OCyt9T GA+m/Yem z/iQqFXb/khHSyE98n/WI+18QmfpPo/uYT+D/RwFyyN+OscGrWCiy3kcEg577vgQlohGruLkljYM+c+IGhao4/XxHlgSmgTsOcwFpYFnZRZkuB3UyB1h6hT0u7hmhhs6Y4OmpasKyy6Abo16GgP5/aiXWjOmH2KvCqWoYILmld2hKEoRgpeldZs8xBdP6Rxwxm9QKdPaX6qXhBEP5EgQ/u66lPNraAoQUZ4vaAhgkCsL2BrcN7u1TfqZiEdhGWxvtvEqepi375scRt/wb549T12HBQB9YCMpPH5RRNJsRTz5nb1j0qhawoUMikyrTxO0fmsxYT2CA8XWa9l+zPA+aUgTOQQ0HvgfY34k5DCeJBpReyy4J/Irj5qTNFvGg9MewMFNObqbNdTy2NN+xEewSTGjbl+/Z6L7kwyDTXhA22z+jS0Q6Bu4iSLSKKgi3IN2UU35rKr1uTWOcHRVjfVFZt5R99v1XJOfxhNLdyzwkjFsBEkpbOP6hmSI7nnGpEHld5KxyfHtzTJb6RwiREGcWOJ9Z6gaqnA/5VlPu1ga8xbyRjpL3aAySB5D6x0IrQxgCMaUqTgJhZkLFymI5lBnDMpTR8sJYTyLGtQJZ7bst7FVfY/I= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: KVM page tables are currently not RCU safe against remapping, i.e., kvmppc_unmap_free_pmd_entry_table() et al. The previous mmu_notifier_ops members rely on kvm->mmu_lock to synchronize with that operation. However, the new mmu_notifier_ops member test_clear_young() provides a fast path that does not take kvm->mmu_lock. To implement kvm_arch_test_clear_young() for that path, orphan page tables need to be freed by RCU. Unmapping, specifically kvm_unmap_radix(), does not free page tables, hence not a concern. Signed-off-by: Yu Zhao --- arch/powerpc/kvm/book3s_64_mmu_radix.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c index 461307b89c3a..3b65b3b11041 100644 --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c @@ -1469,13 +1469,15 @@ int kvmppc_radix_init(void) { unsigned long size = sizeof(void *) << RADIX_PTE_INDEX_SIZE; - kvm_pte_cache = kmem_cache_create("kvm-pte", size, size, 0, pte_ctor); + kvm_pte_cache = kmem_cache_create("kvm-pte", size, size, + SLAB_TYPESAFE_BY_RCU, pte_ctor); if (!kvm_pte_cache) return -ENOMEM; size = sizeof(void *) << RADIX_PMD_INDEX_SIZE; - kvm_pmd_cache = kmem_cache_create("kvm-pmd", size, size, 0, pmd_ctor); + kvm_pmd_cache = kmem_cache_create("kvm-pmd", size, size, + SLAB_TYPESAFE_BY_RCU, pmd_ctor); if (!kvm_pmd_cache) { kmem_cache_destroy(kvm_pte_cache); return -ENOMEM;