From: Paolo Bonzini <pbonzini@redhat.com> To: lantianyu1986@gmail.com Cc: Lan Tianyu <Tianyu.Lan@microsoft.com>, kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, rkrcmar@redhat.com, devel@linuxdriverproject.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, michael.h.kelley@microsoft.com, vkuznets@redhat.com Subject: Re: [PATCH V4 9/15] KVM: Add flush_link and parent_pte in the struct kvm_mmu_page Date: Mon, 15 Oct 2018 12:12:07 +0200 [thread overview] Message-ID: <638de1c3-0efd-9319-4dcb-86c3ac88ebf3@redhat.com> (raw) In-Reply-To: <20181013145406.4911-10-Tianyu.Lan@microsoft.com> On 13/10/2018 16:54, lantianyu1986@gmail.com wrote: > From: Lan Tianyu <Tianyu.Lan@microsoft.com> > > PV EPT tlb flush function will accept a list of flush ranges and > use struct kvm_mmu_page as the list entry. > > Signed-off-by: Lan Tianyu <Tianyu.Lan@microsoft.com> > --- > arch/x86/include/asm/kvm_host.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 19985c602ed6..8279235285f8 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -316,6 +316,7 @@ struct kvm_rmap_head { > > struct kvm_mmu_page { > struct list_head link; > + struct list_head flush_link; This can be an hlist. However, you are not documenting what's the locking here. There are many places in which KVM does a "cond_resched_lock(&vcpu->kvm->mmu_lock);" and you need to explain how flush_link is not live across that. I would start from a simpler patch that just uses the list-based flush in kvm_mmu_commit_zap_page, where you already have the list of things to flush as invalid_list. > struct hlist_node hash_link; > bool unsync; > > Also this is not adding parent_pte, so the subject is incorrect. Paolo
WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com> To: lantianyu1986@gmail.com Cc: sthemmin@microsoft.com, kvm@vger.kernel.org, rkrcmar@redhat.com, haiyangz@microsoft.com, x86@kernel.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, michael.h.kelley@microsoft.com, mingo@redhat.com, hpa@zytor.com, Lan Tianyu <Tianyu.Lan@microsoft.com>, tglx@linutronix.de, vkuznets@redhat.com Subject: Re: [PATCH V4 9/15] KVM: Add flush_link and parent_pte in the struct kvm_mmu_page Date: Mon, 15 Oct 2018 12:12:07 +0200 [thread overview] Message-ID: <638de1c3-0efd-9319-4dcb-86c3ac88ebf3@redhat.com> (raw) In-Reply-To: <20181013145406.4911-10-Tianyu.Lan@microsoft.com> On 13/10/2018 16:54, lantianyu1986@gmail.com wrote: > From: Lan Tianyu <Tianyu.Lan@microsoft.com> > > PV EPT tlb flush function will accept a list of flush ranges and > use struct kvm_mmu_page as the list entry. > > Signed-off-by: Lan Tianyu <Tianyu.Lan@microsoft.com> > --- > arch/x86/include/asm/kvm_host.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 19985c602ed6..8279235285f8 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -316,6 +316,7 @@ struct kvm_rmap_head { > > struct kvm_mmu_page { > struct list_head link; > + struct list_head flush_link; This can be an hlist. However, you are not documenting what's the locking here. There are many places in which KVM does a "cond_resched_lock(&vcpu->kvm->mmu_lock);" and you need to explain how flush_link is not live across that. I would start from a simpler patch that just uses the list-based flush in kvm_mmu_commit_zap_page, where you already have the list of things to flush as invalid_list. > struct hlist_node hash_link; > bool unsync; > > Also this is not adding parent_pte, so the subject is incorrect. Paolo
next prev parent reply other threads:[~2018-10-15 10:12 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-10-13 14:53 [PATCH V4 00/15] x86/KVM/Hyper-v: Add HV ept tlb range flush hypercall support in KVM lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 at gmail.com 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` [PATCH V4 1/15] KVM: Add tlb_remote_flush_with_range callback in kvm_x86_ops lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 at gmail.com 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` [PATCH V4 2/15] KVM/MMU: Add tlb flush with range helper function lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 at gmail.com 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-14 7:26 ` Liran Alon 2018-10-14 7:26 ` Liran Alon 2018-10-14 7:26 ` Liran Alon 2018-10-14 7:26 ` Liran Alon 2018-10-14 7:26 ` Liran Alon 2018-10-14 8:16 ` Thomas Gleixner 2018-10-14 8:16 ` Thomas Gleixner 2018-10-14 8:16 ` Thomas Gleixner 2018-10-14 8:16 ` Thomas Gleixner 2018-10-14 8:16 ` Thomas Gleixner 2018-10-14 9:20 ` Liran Alon 2018-10-14 9:20 ` Liran Alon 2018-10-14 9:20 ` Liran Alon 2018-10-14 9:20 ` Liran Alon 2018-10-14 9:20 ` Liran Alon 2018-10-14 12:57 ` Tianyu Lan 2018-10-14 12:57 ` Tianyu Lan 2018-10-14 12:57 ` Tianyu Lan 2018-10-14 12:57 ` Tianyu Lan 2018-10-14 12:57 ` Tianyu Lan 2018-10-14 9:27 ` Russell King - ARM Linux 2018-10-14 9:27 ` Russell King - ARM Linux 2018-10-14 9:27 ` Russell King - ARM Linux 2018-10-14 9:27 ` Russell King - ARM Linux 2018-10-14 9:27 ` Russell King - ARM Linux 2018-10-14 9:27 ` Russell King - ARM Linux 2018-10-14 9:35 ` Russell King - ARM Linux 2018-10-14 9:35 ` Russell King - ARM Linux 2018-10-14 9:35 ` Russell King - ARM Linux 2018-10-14 9:35 ` Russell King - ARM Linux 2018-10-14 13:21 ` Tianyu Lan 2018-10-14 13:21 ` Tianyu Lan 2018-10-14 13:21 ` Tianyu Lan 2018-10-14 13:21 ` Tianyu Lan 2018-10-14 13:21 ` Tianyu Lan 2018-10-14 13:21 ` Tianyu Lan 2018-10-14 13:33 ` Russell King - ARM Linux 2018-10-14 13:33 ` Russell King - ARM Linux 2018-10-14 13:33 ` Russell King - ARM Linux 2018-10-14 13:33 ` Russell King - ARM Linux 2018-10-14 13:33 ` Russell King - ARM Linux 2018-10-15 12:02 ` Paolo Bonzini 2018-10-15 12:02 ` Paolo Bonzini 2018-10-15 12:02 ` Paolo Bonzini 2018-10-15 12:02 ` Paolo Bonzini 2018-10-13 14:53 ` [PATCH V4 3/15] KVM: Replace old tlb flush function with new one to flush a specified range lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 at gmail.com 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` [PATCH V4 4/15] KVM: Make kvm_set_spte_hva() return int lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 at gmail.com 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:53 ` [PATCH V4 5/15] KVM/MMU: Move tlb flush in kvm_set_pte_rmapp() to kvm_mmu_notifier_change_pte() lantianyu1986 2018-10-13 14:53 ` [PATCH V4 6/15] KVM/MMU: Flush tlb directly in the kvm_set_pte_rmapp() lantianyu1986 2018-10-15 11:52 ` Paolo Bonzini 2018-10-13 14:53 ` [PATCH V4 7/15] KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range() lantianyu1986 2018-10-15 10:04 ` Paolo Bonzini 2018-10-15 13:08 ` Tianyu Lan 2018-10-13 14:53 ` [PATCH V4 8/15] KVM/MMU: Flush tlb directly in kvm_mmu_zap_collapsible_spte() lantianyu1986 2018-10-13 14:53 ` lantianyu1986 2018-10-13 14:54 ` [PATCH V4 9/15] KVM: Add flush_link and parent_pte in the struct kvm_mmu_page lantianyu1986 2018-10-15 10:12 ` Paolo Bonzini [this message] 2018-10-15 10:12 ` Paolo Bonzini 2018-10-13 14:54 ` [PATCH V4 10/15] KVM: Add spte's point " lantianyu1986 2018-10-13 14:54 ` [PATCH V4 11/15] KVM/MMU: Replace tlb flush function with range list flush function lantianyu1986 2018-10-15 11:51 ` Paolo Bonzini 2018-10-13 14:54 ` [PATCH V4 12/15] x86/hyper-v: Add HvFlushGuestAddressList hypercall support lantianyu1986 2018-10-15 10:30 ` Paolo Bonzini 2018-10-15 10:30 ` Paolo Bonzini 2018-10-13 14:54 ` [PATCH V4 13/15] x86/Hyper-v: Add trace in the hyperv_nested_flush_guest_mapping_range() lantianyu1986 2018-10-13 14:54 ` [PATCH V4 14/15] KVM/VMX: Change hv flush logic when ept tables are mismatched lantianyu1986 2018-10-15 11:15 ` Paolo Bonzini 2018-10-13 14:54 ` [PATCH V4 15/15] KVM/VMX: Add hv tlb range flush support lantianyu1986 2018-10-15 12:04 ` [PATCH V4 00/15] x86/KVM/Hyper-v: Add HV ept tlb range flush hypercall support in KVM Paolo Bonzini 2018-10-15 12:04 ` Paolo Bonzini 2018-10-15 12:04 ` Paolo Bonzini 2018-10-15 12:04 ` Paolo Bonzini
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=638de1c3-0efd-9319-4dcb-86c3ac88ebf3@redhat.com \ --to=pbonzini@redhat.com \ --cc=Tianyu.Lan@microsoft.com \ --cc=devel@linuxdriverproject.org \ --cc=haiyangz@microsoft.com \ --cc=hpa@zytor.com \ --cc=kvm@vger.kernel.org \ --cc=kys@microsoft.com \ --cc=lantianyu1986@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=michael.h.kelley@microsoft.com \ --cc=mingo@redhat.com \ --cc=rkrcmar@redhat.com \ --cc=sthemmin@microsoft.com \ --cc=tglx@linutronix.de \ --cc=vkuznets@redhat.com \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.