Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp1822038rdb; Wed, 20 Sep 2023 23:47:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGYi0SaeTwLuGwbhDlFa+KncsVFt6AIdwoaoMIVH2OiU94U3Ymr8ct8WsZDbjg2wcwCe322 X-Received: by 2002:a17:90a:c908:b0:274:6cc9:ec69 with SMTP id v8-20020a17090ac90800b002746cc9ec69mr4053766pjt.49.1695278833700; Wed, 20 Sep 2023 23:47:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695278833; cv=none; d=google.com; s=arc-20160816; b=jirOYh4yjz/HTKEKtRxNUNLpd/8JPlgafhJreZxP2ZW0S/0TRxtzZAPsT3vNoxsopf iDPbnZETMH7zEk4ZISEc+hylXx0rTjxasGeb8lwgfLb1c34PnHf2/LrFvcbf7YiyZp7r qIBGUfPjL2CkzCEgPQc86IXmBj6jYf4EPSxmDE/KH5DUFnIs2TdSN+Jeur3Lrj6o17Zv Ds2JrNzeuYXNkcFziSUYoWywokRqLqCKIK/vWlGvv6f8RZrySTExYlRW8F4FAxpSm64y ouNWEa/AXCdnEZp0lgEt1Wrog9eRkZaYkl3m9zFsoTv4HZlQhxDYqyZAoWS5w8UIlFUY cXJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=JAdcL1Vb0V3we8/jfNbxEuG94mdJ/UbpoVgc1qOsTSg=; fh=cDzEDCEM5kJeKZ9etKjsUP2G+OZ2GX6c6kLZt1Oillw=; b=iJK2gx8TyQHcRP0B0VX2AX/qoXNQ26vzXN6rul4fJAEmSYRdGs2eKmpKGSh5hpziPF J3b+POwpZrTX49uTFbIKR3wYpxwT9L4GxPmhUiS1bcUi8vqoevcyKaF5eLEA3rvm9cA5 Y6/8/no9LnTvvasOYS+oLK9alD20lLvI7n6iCvaWkeZOD5wFtdQ8XVTBl5kyG4x1QeSd BhdHHHSd+sI0We/vNwh+YyqTPc+NN70Tm4aspt2SW5c7DPJAII3RWTm6FFVzF9ZjiGsi 78uqmhBVvO9J089hrle53AwtwBXvpFKInMbiNiJKBl9Fr9A+COcQ8jLUVSuTJgxiVPts CosA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QMxYLfRc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id n6-20020a17090ade8600b002631e44f48csi882467pjv.179.2023.09.20.23.47.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Sep 2023 23:47:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QMxYLfRc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 0CE848258CBA; Wed, 20 Sep 2023 19:40:06 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229646AbjIUCkD (ORCPT + 99 others); Wed, 20 Sep 2023 22:40:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229472AbjIUCkB (ORCPT ); Wed, 20 Sep 2023 22:40:01 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 796BDE4; Wed, 20 Sep 2023 19:39:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695263995; x=1726799995; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=iSkpE1N9Jcp84HPqnZ+sK/v5B9D3q8Q2ZGh6iASUxTU=; b=QMxYLfRcxVjlt2JELGOu9PCSyMNr1ixLCAbfbUpWOLVunrJeyQ80UA7s 8H12ILDLy45wWwrEjygDsrV8PeeBlEp6OIQaSq6E8/BhsiXRN28Yz2oPh /ksj9i6pXn6H3V97kDFf+VjAiBf7LyV3l+BBlWmtguiTAwba6i7o6S85o 01rxP/GrIT1aUy9f+/JcEXtpygpQ/yfFzX3bhe1yB7Z29/gj4Y7BLkD9b OYX0UKHHt9oNM5HndiEbdeM11Jzm4f9ePwaU3fPpHDEC9Xk0xuyJAVvbw tb9vqu5Kr48uJwsC+p4uz8ZML7jzrGxCgBfmddbQn9fOLHscV1OeiW2nH w==; X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="360653924" X-IronPort-AV: E=Sophos;i="6.03,164,1694761200"; d="scan'208";a="360653924" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Sep 2023 19:39:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10839"; a="1077731075" X-IronPort-AV: E=Sophos;i="6.03,164,1694761200"; d="scan'208";a="1077731075" Received: from yilunxu-optiplex-7050.sh.intel.com (HELO localhost) ([10.239.159.165]) by fmsmga005.fm.intel.com with ESMTP; 20 Sep 2023 19:39:45 -0700 Date: Thu, 21 Sep 2023 10:39:18 +0800 From: Xu Yilun To: Sean Christopherson Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , "Matthew Wilcox (Oracle)" , Andrew Morton , Paul Moore , James Morris , "Serge E. Hallyn" , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Chao Peng , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , Yu Zhang , Isaku Yamahata , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Subject: Re: [RFC PATCH v12 02/33] KVM: Use gfn instead of hva for mmu_notifier_retry Message-ID: References: <20230914015531.1419405-1-seanjc@google.com> <20230914015531.1419405-3-seanjc@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Wed, 20 Sep 2023 19:40:06 -0700 (PDT) On 2023-09-20 at 06:55:05 -0700, Sean Christopherson wrote: > On Wed, Sep 20, 2023, Xu Yilun wrote: > > On 2023-09-13 at 18:55:00 -0700, Sean Christopherson wrote: > > > +void kvm_mmu_invalidate_range_add(struct kvm *kvm, gfn_t start, gfn_t end) > > > +{ > > > + lockdep_assert_held_write(&kvm->mmu_lock); > > > + > > > + WARN_ON_ONCE(!kvm->mmu_invalidate_in_progress); > > > + > > > if (likely(kvm->mmu_invalidate_in_progress == 1)) { > > > kvm->mmu_invalidate_range_start = start; > > > kvm->mmu_invalidate_range_end = end; > > > > IIUC, Now we only add or override a part of the invalidate range in > > these fields, IOW only the range in last slot is stored when we unlock. > > Ouch. Good catch! > > > That may break mmu_invalidate_retry_gfn() cause it can never know the > > whole invalidate range. > > > > How about we extend the mmu_invalidate_range_start/end everytime so that > > it records the whole invalidate range: > > > > if (kvm->mmu_invalidate_range_start == INVALID_GPA) { > > kvm->mmu_invalidate_range_start = start; > > kvm->mmu_invalidate_range_end = end; > > } else { > > kvm->mmu_invalidate_range_start = > > min(kvm->mmu_invalidate_range_start, start); > > kvm->mmu_invalidate_range_end = > > max(kvm->mmu_invalidate_range_end, end); > > } > > Yeah, that does seem to be the easiest solution. > > I'll post a fixup patch, unless you want the honors. Please go ahead, cause at a second thought I'm wondering if this simple range extension is reasonable. When the invalidation acrosses multiple slots, I'm not sure if the contiguous HVA range must correspond to contiguous GFN range. If not, are we producing a larger range than required? And when the invalidation acrosses multiple address space, I'm almost sure it is wrong to merge GFN ranges from different address spaces. But I have no clear solution yet. Thanks, Yilun