From mboxrd@z Thu Jan 1 00:00:00 1970 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 46B5CC77B7A for ; Tue, 30 May 2023 20:07:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 90653900002; Tue, 30 May 2023 16:07:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B6696B0074; Tue, 30 May 2023 16:07:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 77E01900002; Tue, 30 May 2023 16:07:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 688ED6B0072 for ; Tue, 30 May 2023 16:07:35 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3628EC0345 for ; Tue, 30 May 2023 20:07:35 +0000 (UTC) X-FDA: 80848006470.04.1F7B34E Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf07.hostedemail.com (Postfix) with ESMTP id 6C13340012 for ; Tue, 30 May 2023 20:07:33 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=DtfynU88; spf=pass (imf07.hostedemail.com: domain of yuzhao@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=yuzhao@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=1685477253; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=tnJw+gna055xgPY4k/D+ZQZ+/+poCudJDicda2AGR3k=; b=2Q9yTbscMyNxfHjbrZBsk7pGf5PfzZM92xJVXW7ny+6z7vEtF6IXPL4tfBc2qdGDg8xIJW 2N10+zIQmPERINsRKRCYKnfWUWTGOIS37f1ZCnESm0ZDV6Uvg+K7XauHYX9YFmejPbNk6z tAuaNxdIjrSKaZWtnLk2wx8OQ3qcSmk= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=DtfynU88; spf=pass (imf07.hostedemail.com: domain of yuzhao@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685477253; a=rsa-sha256; cv=none; b=ziyBt8Fq1GZGtM9vWjj5iGvSVzeafIJ/eMAk2UB8xdUL40g725TiYL8eJ06+Iu8NIzx20Q Du/98c2HHKC96JJYPVphE9HUylMECe251dY0EDumDGSM97LBhGevhcvO7LPe9A0kD6ERbf ePG1sGlzaeZB2acE36JBMJA1nkaIFtQ= Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-3f6c6320d4eso4971cf.1 for ; Tue, 30 May 2023 13:07:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685477252; x=1688069252; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=tnJw+gna055xgPY4k/D+ZQZ+/+poCudJDicda2AGR3k=; b=DtfynU88O3z0/4oFgDiYM7qy14b7RLg4yomBzxL0dog8TFdWbHyo2tpb/B1SOYXfmp NSRsIG+eVwPFOobh1xJCt8kwErPgylGUweOcutP0ywct+6P+S2IjeaikfhAUmhYPV+uH Mv+j09gZh5WjQDA3Z/2Gy9TgffLJonGspryTqmY7mSq0d2Id3AeV0HEZ5ulNgRW7LXMq 4JCJAWgEwKAWSjc16VpDrPx50NJw92bJUlL+d9zw+H+Lfu/l9dON3ftxIU/zENGgXs4K 1cHj3nLx36gvePguvMtotajaF04WFwISrYvt1J6cDwX3ikwzIPGkd33waRKuVJi8J5gu uXaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685477252; x=1688069252; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tnJw+gna055xgPY4k/D+ZQZ+/+poCudJDicda2AGR3k=; b=Ux0CHsHhm53SjeGceK1ZWLb4n5/sH0Rt0/CHnxLFZTPfFwgpfbqOvEvV/5iWZiJxta 6UsSA9DI9Y2qEZy/iTrdsXNtbfIjZUMx62+E+8Hq7RVISPIo32o6GipMu+1PsjrUJvFb umfZ8SEUtEAbjzQIS55o4sSCrHZEdE5Gi440cCjQMbzr1oBN+nEmSGIlvDO5gJDVCeK8 n0sqtEsWiuwLzrLol4t6mDPbSLjbRY4F4rxibd2H4yOp+w8vQVp907QVj6TmjIpqymh1 LqaVT8dnh6RYxyRBuBtSMqU1HRA0uLTiC9Q649G2PNXmNa7AZVO1nRzUwf3td1rGp84M FLpQ== X-Gm-Message-State: AC+VfDzegxFSNYyUqm+dx968VWGTrIuh05M87GLuvOqsOB2bJvfEhTZD +ephRxLr8nRXe5vLXqERujBqrWxICoKcTB1Ye/sJiA== X-Google-Smtp-Source: ACHHUZ6GXKZ8JX2tTyi2dAoKnrLtSo8EMFYdPNZnbJmbRABrmf7MX05SzfLq0yw9C6unlnFwzm3TaQimSQte4R7XEoY= X-Received: by 2002:a05:622a:1012:b0:3ef:2f55:2204 with SMTP id d18-20020a05622a101200b003ef2f552204mr6506qte.6.1685477252408; Tue, 30 May 2023 13:07:32 -0700 (PDT) MIME-Version: 1.0 References: <20230526234435.662652-1-yuzhao@google.com> <20230526234435.662652-5-yuzhao@google.com> In-Reply-To: From: Yu Zhao Date: Tue, 30 May 2023 14:06:55 -0600 Message-ID: Subject: Re: [PATCH mm-unstable v2 04/10] kvm/arm64: make stage2 page tables RCU safe To: Oliver Upton Cc: Andrew Morton , Paolo Bonzini , 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 , 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 6C13340012 X-Rspam-User: X-Stat-Signature: 3msiec6fr7randm4b3ujqjshnigz371y X-Rspamd-Server: rspam01 X-HE-Tag: 1685477253-105024 X-HE-Meta: U2FsdGVkX1+4JWTBvsM/cRCBY1MEvyJJIMkrHXmvxw/ywzcucIuSDJmgqdhcb7z/eZD0SXHZj+SBFKDd+540HGkGKZqJzoG25PVvHpdvNKRdC9OIpOh3wq507KdacFuQMFTelXh2dU5QtlhLeQhTVk1oKsY+tkaF0zpVsGvWlkmQa7MQLb0EabVnlhgDb9mTj68OJTm1D+sxjAKsSfBtWx2/a/OLJjRQRg+RanlMyTeh6TeJB00Yo1uvl+4Rl5Aa5WeBJzG4RG5ORpdhZsho1vaxQcpl8KU/u+uogxCttmJJsSjJV4UJWjR0t7EbeD+hEvGxb0fDCvGz4ZqVbZnRv7AiAvuMXeMsssKiPszl78p+1PPFU3pM1VLlgoKVLHWmsotNpVx2OBmsIuJGGtjUF0KWNLo3kIV22iE5cNCWxo7KJqNeG0oktNYG2YoTGmu8f+7YO8iCJ2+Yf/WE6CNAsogQNmg1F8+MltrbD1lAc3971MISz3I3815UFvpbwppD0wopedh6CmENP2HO6tMuDFPoMg4Rj8GuSH694el2iWdySsINit2ERuJA+WO0JY/eQ9pSbNBfy1ij3C51Sg2SVK0W1H1zXXVFhRPsdZ2o9PCmo2ismYXuxRMPqdjjhNGd6Y58Of5PmXlNByONebVQ3DEKAu6o6TqUdOaUl2+lykqFJcRH7I7v8G2xDKKMBSjVriDBBXYI8Jqf5CbBO15lW4hmCTYjb6EsNIwL90WjwV9+CP3ssES1K20Ypvaak0Edjv3pGFtWdyXNUKaeCsrBvc8b1ZdyABsDR7DEc5DJJFufA6JyEqec8HupTW+tYxqVYcM7neQNug9BjJivcnxtXQjce/1olxwvqszoAkDUMgA16mRIeXBoy2xYUQHLTAY5VWpgVKncBGWnPvR3WcpTXTSAZX/MXKhRtxQ2KdX5Q+1e37pUBj361z+SSJRHh7R+lkQa2kZLvSrRG1QAgUb qI5Qiris USUHRjJVVBPocXOf0YDNFg9AwO2zBY4Ety2adx9x8az4pY5hzmhETNdX+VGovyFJ6y33wq6v1AOyrvTybrs0WtCN0kVKo3xq9P7ZsV/N6Gb9lsrGjj8YfcFpI1Yf0zOryI5PMt74Cq4DTO2Kk4VVVssv0DN09Xvf6CQUvV8W+4NNjSLgwphBvi26iLWKap4fs0kZJGVsX8+WPUlkP8roZrWOtKPB3tQLWkTtnjn/NdVy3wBJeDyyJDq5XNX8c/XSAl5oWH1PC+28TW5uebhqGcDNHKIqNCl/j0i9e 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: On Tue, May 30, 2023 at 1:37=E2=80=AFPM Oliver Upton wrote: > > Hi Yu, > > On Sat, May 27, 2023 at 02:13:07PM -0600, Yu Zhao wrote: > > On Sat, May 27, 2023 at 12:08=E2=80=AFPM Oliver Upton wrote: > > > diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtabl= e.c > > > index 3d61bd3e591d..bfbebdcb4ef0 100644 > > > --- a/arch/arm64/kvm/hyp/pgtable.c > > > +++ b/arch/arm64/kvm/hyp/pgtable.c > > > @@ -1019,7 +1019,7 @@ static int stage2_unmap_walker(const struct kvm= _pgtable_visit_ctx *ctx, > > > kvm_granule_size(ctx->= level)); > > > > > > if (childp) > > > - mm_ops->put_page(childp); > > > + mm_ops->free_removed_table(childp, ctx->level); > > > > Thanks, Oliver. > > > > A couple of things I haven't had the chance to verify -- I'm hoping > > you could help clarify: > > 1. For unmapping, with free_removed_table(), wouldn't we have to look > > into the table we know it's empty unnecessarily? > > As it is currently implemented, yes. But, there's potential to fast-path > the implementation by checking page_count() before starting the walk. Do you mind posting another patch? I'd be happy to ack it, as well as the one you suggested above. > > 2. For remapping and unmapping, how does free_removed_table() put the > > final refcnt on the table passed in? (Previously we had > > put_page(childp) in stage2_map_walk_table_post(). So I'm assuming we'd > > have to do something equivalent with free_removed_table().) > > Heh, that's a bug, and an embarrassing one at that! > > Sent out a fix for that, since it would appear we leak memory on > table->block transitions. PTAL if you have a chance. > > https://lore.kernel.org/all/20230530193213.1663411-1-oliver.upton@linux.d= ev/ Awesome.