All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Peter Xu <peterx@redhat.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Paul Mackerras" <paulus@ozlabs.org>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"Janosch Frank" <frankja@linux.ibm.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Vitaly Kuznetsov" <vkuznets@redhat.com>,
	"Wanpeng Li" <wanpengli@tencent.com>,
	"Jim Mattson" <jmattson@google.com>,
	"Joerg Roedel" <joro@8bytes.org>, "Marc Zyngier" <maz@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Julien Thierry" <julien.thierry.kdev@gmail.com>,
	"Suzuki K Poulose" <suzuki.poulose@arm.com>,
	linux-mips@vger.kernel.org, kvm@vger.kernel.org,
	kvm-ppc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org,
	"Christoffer Dall" <christoffer.dall@arm.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH v5 15/19] KVM: Provide common implementation for generic dirty log functions
Date: Thu, 06 Feb 2020 21:21:20 +0000	[thread overview]
Message-ID: <20200206212120.GF13067@linux.intel.com> (raw)
In-Reply-To: <20200206200200.GC700495@xz-x1>

On Thu, Feb 06, 2020 at 03:02:00PM -0500, Peter Xu wrote:
> On Tue, Jan 21, 2020 at 02:31:53PM -0800, Sean Christopherson wrote:
> 
> [...]
> 
> > -int kvm_vm_ioctl_clear_dirty_log(struct kvm *kvm, struct kvm_clear_dirty_log *log)
> > +void kvm_arch_dirty_log_tlb_flush(struct kvm *kvm,
> > +				  struct kvm_memory_slot *memslot)
> 
> If it's to flush TLB for a memslot, shall we remove the "dirty_log" in
> the name of the function, because it has nothing to do with dirty
> logging any more?  And...

I kept the "dirty_log" to allow arch code to implement logic specific to a
TLB flush during dirty logging, e.g. x86's lockdep assert on slots_lock.
And similar to the issue with MIPS below, to deter usage of the hook for
anything else, i.e. to nudge people to using kvm_flush_remote_tlbs()
directly.

> >  {
> > -	struct kvm_memslots *slots;
> > -	struct kvm_memory_slot *memslot;
> > -	bool flush = false;
> > -	int r;
> > -
> > -	mutex_lock(&kvm->slots_lock);
> > -
> > -	r = kvm_clear_dirty_log_protect(kvm, log, &flush);
> > -
> > -	if (flush) {
> > -		slots = kvm_memslots(kvm);
> > -		memslot = id_to_memslot(slots, log->slot);
> > -
> > -		/* Let implementation handle TLB/GVA invalidation */
> > -		kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> > -	}
> > -
> > -	mutex_unlock(&kvm->slots_lock);
> > -	return r;
> > +	/* Let implementation handle TLB/GVA invalidation */
> > +	kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> 
> ... This may not directly related to the current patch, but I'm
> confused on why MIPS cannot use kvm_flush_remote_tlbs() to flush TLBs.
> I know nothing about MIPS code, but IIUC here flush_shadow_memslot()
> is a heavier operation that will also invalidate the shadow pages.
> Seems to be an overkill here when we only changed write permission of
> the PTEs?  I tried to check the first occurance (2a31b9db15353) but I
> didn't find out any clue of it so far.
> 
> But that matters to this patch because if MIPS can use
> kvm_flush_remote_tlbs(), then we probably don't need this
> arch-specific hook any more and we can directly call
> kvm_flush_remote_tlbs() after sync dirty log when flush=true.

Ya, the asid_flush_mask in kvm_vz_flush_shadow_all() is the only thing
that prevents calling kvm_flush_remote_tlbs() directly, but I have no
clue as to the important of that code.

> >  }
> >  
> >  long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
> > diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
> > index 97ce6c4f7b48..0adaf4791a6d 100644
> > --- a/arch/powerpc/kvm/book3s.c
> > +++ b/arch/powerpc/kvm/book3s.c
> > @@ -799,6 +799,11 @@ int kvmppc_core_check_requests(struct kvm_vcpu *vcpu)
> >  	return vcpu->kvm->arch.kvm_ops->check_requests(vcpu);
> >  }
> >  
> > +void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot)
> 
> Since at it, maybe we can start to use __weak attribute for new hooks
> especially when it's empty for most archs?
> 
> E.g., define:
> 
> void __weak kvm_arch_sync_dirty_log(...) {}
> 
> In the common code, then only define it again in arch that has
> non-empty implementation of this method?

I defer to Paolo, I'm indifferent at this stage.

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Peter Xu <peterx@redhat.com>
Cc: "Wanpeng Li" <wanpengli@tencent.com>,
	kvm@vger.kernel.org, "David Hildenbrand" <david@redhat.com>,
	linux-mips@vger.kernel.org, "Paul Mackerras" <paulus@ozlabs.org>,
	kvmarm@lists.cs.columbia.edu,
	"Janosch Frank" <frankja@linux.ibm.com>,
	"Marc Zyngier" <maz@kernel.org>, "Joerg Roedel" <joro@8bytes.org>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	kvm-ppc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	"Jim Mattson" <jmattson@google.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	linux-kernel@vger.kernel.org,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Vitaly Kuznetsov" <vkuznets@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH v5 15/19] KVM: Provide common implementation for generic dirty log functions
Date: Thu, 6 Feb 2020 13:21:20 -0800	[thread overview]
Message-ID: <20200206212120.GF13067@linux.intel.com> (raw)
In-Reply-To: <20200206200200.GC700495@xz-x1>

On Thu, Feb 06, 2020 at 03:02:00PM -0500, Peter Xu wrote:
> On Tue, Jan 21, 2020 at 02:31:53PM -0800, Sean Christopherson wrote:
> 
> [...]
> 
> > -int kvm_vm_ioctl_clear_dirty_log(struct kvm *kvm, struct kvm_clear_dirty_log *log)
> > +void kvm_arch_dirty_log_tlb_flush(struct kvm *kvm,
> > +				  struct kvm_memory_slot *memslot)
> 
> If it's to flush TLB for a memslot, shall we remove the "dirty_log" in
> the name of the function, because it has nothing to do with dirty
> logging any more?  And...

I kept the "dirty_log" to allow arch code to implement logic specific to a
TLB flush during dirty logging, e.g. x86's lockdep assert on slots_lock.
And similar to the issue with MIPS below, to deter usage of the hook for
anything else, i.e. to nudge people to using kvm_flush_remote_tlbs()
directly.

> >  {
> > -	struct kvm_memslots *slots;
> > -	struct kvm_memory_slot *memslot;
> > -	bool flush = false;
> > -	int r;
> > -
> > -	mutex_lock(&kvm->slots_lock);
> > -
> > -	r = kvm_clear_dirty_log_protect(kvm, log, &flush);
> > -
> > -	if (flush) {
> > -		slots = kvm_memslots(kvm);
> > -		memslot = id_to_memslot(slots, log->slot);
> > -
> > -		/* Let implementation handle TLB/GVA invalidation */
> > -		kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> > -	}
> > -
> > -	mutex_unlock(&kvm->slots_lock);
> > -	return r;
> > +	/* Let implementation handle TLB/GVA invalidation */
> > +	kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> 
> ... This may not directly related to the current patch, but I'm
> confused on why MIPS cannot use kvm_flush_remote_tlbs() to flush TLBs.
> I know nothing about MIPS code, but IIUC here flush_shadow_memslot()
> is a heavier operation that will also invalidate the shadow pages.
> Seems to be an overkill here when we only changed write permission of
> the PTEs?  I tried to check the first occurance (2a31b9db15353) but I
> didn't find out any clue of it so far.
> 
> But that matters to this patch because if MIPS can use
> kvm_flush_remote_tlbs(), then we probably don't need this
> arch-specific hook any more and we can directly call
> kvm_flush_remote_tlbs() after sync dirty log when flush==true.

Ya, the asid_flush_mask in kvm_vz_flush_shadow_all() is the only thing
that prevents calling kvm_flush_remote_tlbs() directly, but I have no
clue as to the important of that code.

> >  }
> >  
> >  long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
> > diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
> > index 97ce6c4f7b48..0adaf4791a6d 100644
> > --- a/arch/powerpc/kvm/book3s.c
> > +++ b/arch/powerpc/kvm/book3s.c
> > @@ -799,6 +799,11 @@ int kvmppc_core_check_requests(struct kvm_vcpu *vcpu)
> >  	return vcpu->kvm->arch.kvm_ops->check_requests(vcpu);
> >  }
> >  
> > +void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot)
> 
> Since at it, maybe we can start to use __weak attribute for new hooks
> especially when it's empty for most archs?
> 
> E.g., define:
> 
> void __weak kvm_arch_sync_dirty_log(...) {}
> 
> In the common code, then only define it again in arch that has
> non-empty implementation of this method?

I defer to Paolo, I'm indifferent at this stage.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Peter Xu <peterx@redhat.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Paul Mackerras" <paulus@ozlabs.org>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"Janosch Frank" <frankja@linux.ibm.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Vitaly Kuznetsov" <vkuznets@redhat.com>,
	"Wanpeng Li" <wanpengli@tencent.com>,
	"Jim Mattson" <jmattson@google.com>,
	"Joerg Roedel" <joro@8bytes.org>, "Marc Zyngier" <maz@kernel.org>,
	"James Morse" <james.morse@arm.com>,
	"Julien Thierry" <julien.thierry.kdev@gmail.com>,
	"Suzuki K Poulose" <suzuki.poulose@arm.com>,
	linux-mips@vger.kernel.org, kvm@vger.kernel.org,
	kvm-ppc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org,
	"Christoffer Dall" <christoffer.dall@arm.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH v5 15/19] KVM: Provide common implementation for generic dirty log functions
Date: Thu, 6 Feb 2020 13:21:20 -0800	[thread overview]
Message-ID: <20200206212120.GF13067@linux.intel.com> (raw)
In-Reply-To: <20200206200200.GC700495@xz-x1>

On Thu, Feb 06, 2020 at 03:02:00PM -0500, Peter Xu wrote:
> On Tue, Jan 21, 2020 at 02:31:53PM -0800, Sean Christopherson wrote:
> 
> [...]
> 
> > -int kvm_vm_ioctl_clear_dirty_log(struct kvm *kvm, struct kvm_clear_dirty_log *log)
> > +void kvm_arch_dirty_log_tlb_flush(struct kvm *kvm,
> > +				  struct kvm_memory_slot *memslot)
> 
> If it's to flush TLB for a memslot, shall we remove the "dirty_log" in
> the name of the function, because it has nothing to do with dirty
> logging any more?  And...

I kept the "dirty_log" to allow arch code to implement logic specific to a
TLB flush during dirty logging, e.g. x86's lockdep assert on slots_lock.
And similar to the issue with MIPS below, to deter usage of the hook for
anything else, i.e. to nudge people to using kvm_flush_remote_tlbs()
directly.

> >  {
> > -	struct kvm_memslots *slots;
> > -	struct kvm_memory_slot *memslot;
> > -	bool flush = false;
> > -	int r;
> > -
> > -	mutex_lock(&kvm->slots_lock);
> > -
> > -	r = kvm_clear_dirty_log_protect(kvm, log, &flush);
> > -
> > -	if (flush) {
> > -		slots = kvm_memslots(kvm);
> > -		memslot = id_to_memslot(slots, log->slot);
> > -
> > -		/* Let implementation handle TLB/GVA invalidation */
> > -		kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> > -	}
> > -
> > -	mutex_unlock(&kvm->slots_lock);
> > -	return r;
> > +	/* Let implementation handle TLB/GVA invalidation */
> > +	kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> 
> ... This may not directly related to the current patch, but I'm
> confused on why MIPS cannot use kvm_flush_remote_tlbs() to flush TLBs.
> I know nothing about MIPS code, but IIUC here flush_shadow_memslot()
> is a heavier operation that will also invalidate the shadow pages.
> Seems to be an overkill here when we only changed write permission of
> the PTEs?  I tried to check the first occurance (2a31b9db15353) but I
> didn't find out any clue of it so far.
> 
> But that matters to this patch because if MIPS can use
> kvm_flush_remote_tlbs(), then we probably don't need this
> arch-specific hook any more and we can directly call
> kvm_flush_remote_tlbs() after sync dirty log when flush==true.

Ya, the asid_flush_mask in kvm_vz_flush_shadow_all() is the only thing
that prevents calling kvm_flush_remote_tlbs() directly, but I have no
clue as to the important of that code.

> >  }
> >  
> >  long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
> > diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
> > index 97ce6c4f7b48..0adaf4791a6d 100644
> > --- a/arch/powerpc/kvm/book3s.c
> > +++ b/arch/powerpc/kvm/book3s.c
> > @@ -799,6 +799,11 @@ int kvmppc_core_check_requests(struct kvm_vcpu *vcpu)
> >  	return vcpu->kvm->arch.kvm_ops->check_requests(vcpu);
> >  }
> >  
> > +void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot)
> 
> Since at it, maybe we can start to use __weak attribute for new hooks
> especially when it's empty for most archs?
> 
> E.g., define:
> 
> void __weak kvm_arch_sync_dirty_log(...) {}
> 
> In the common code, then only define it again in arch that has
> non-empty implementation of this method?

I defer to Paolo, I'm indifferent at this stage.

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Peter Xu <peterx@redhat.com>
Cc: "Wanpeng Li" <wanpengli@tencent.com>,
	kvm@vger.kernel.org, "David Hildenbrand" <david@redhat.com>,
	linux-mips@vger.kernel.org, "Paul Mackerras" <paulus@ozlabs.org>,
	kvmarm@lists.cs.columbia.edu,
	"Janosch Frank" <frankja@linux.ibm.com>,
	"Marc Zyngier" <maz@kernel.org>, "Joerg Roedel" <joro@8bytes.org>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"Julien Thierry" <julien.thierry.kdev@gmail.com>,
	"Suzuki K Poulose" <suzuki.poulose@arm.com>,
	kvm-ppc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	"Jim Mattson" <jmattson@google.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Christoffer Dall" <christoffer.dall@arm.com>,
	linux-kernel@vger.kernel.org, "James Morse" <james.morse@arm.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Vitaly Kuznetsov" <vkuznets@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH v5 15/19] KVM: Provide common implementation for generic dirty log functions
Date: Thu, 6 Feb 2020 13:21:20 -0800	[thread overview]
Message-ID: <20200206212120.GF13067@linux.intel.com> (raw)
In-Reply-To: <20200206200200.GC700495@xz-x1>

On Thu, Feb 06, 2020 at 03:02:00PM -0500, Peter Xu wrote:
> On Tue, Jan 21, 2020 at 02:31:53PM -0800, Sean Christopherson wrote:
> 
> [...]
> 
> > -int kvm_vm_ioctl_clear_dirty_log(struct kvm *kvm, struct kvm_clear_dirty_log *log)
> > +void kvm_arch_dirty_log_tlb_flush(struct kvm *kvm,
> > +				  struct kvm_memory_slot *memslot)
> 
> If it's to flush TLB for a memslot, shall we remove the "dirty_log" in
> the name of the function, because it has nothing to do with dirty
> logging any more?  And...

I kept the "dirty_log" to allow arch code to implement logic specific to a
TLB flush during dirty logging, e.g. x86's lockdep assert on slots_lock.
And similar to the issue with MIPS below, to deter usage of the hook for
anything else, i.e. to nudge people to using kvm_flush_remote_tlbs()
directly.

> >  {
> > -	struct kvm_memslots *slots;
> > -	struct kvm_memory_slot *memslot;
> > -	bool flush = false;
> > -	int r;
> > -
> > -	mutex_lock(&kvm->slots_lock);
> > -
> > -	r = kvm_clear_dirty_log_protect(kvm, log, &flush);
> > -
> > -	if (flush) {
> > -		slots = kvm_memslots(kvm);
> > -		memslot = id_to_memslot(slots, log->slot);
> > -
> > -		/* Let implementation handle TLB/GVA invalidation */
> > -		kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> > -	}
> > -
> > -	mutex_unlock(&kvm->slots_lock);
> > -	return r;
> > +	/* Let implementation handle TLB/GVA invalidation */
> > +	kvm_mips_callbacks->flush_shadow_memslot(kvm, memslot);
> 
> ... This may not directly related to the current patch, but I'm
> confused on why MIPS cannot use kvm_flush_remote_tlbs() to flush TLBs.
> I know nothing about MIPS code, but IIUC here flush_shadow_memslot()
> is a heavier operation that will also invalidate the shadow pages.
> Seems to be an overkill here when we only changed write permission of
> the PTEs?  I tried to check the first occurance (2a31b9db15353) but I
> didn't find out any clue of it so far.
> 
> But that matters to this patch because if MIPS can use
> kvm_flush_remote_tlbs(), then we probably don't need this
> arch-specific hook any more and we can directly call
> kvm_flush_remote_tlbs() after sync dirty log when flush==true.

Ya, the asid_flush_mask in kvm_vz_flush_shadow_all() is the only thing
that prevents calling kvm_flush_remote_tlbs() directly, but I have no
clue as to the important of that code.

> >  }
> >  
> >  long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
> > diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
> > index 97ce6c4f7b48..0adaf4791a6d 100644
> > --- a/arch/powerpc/kvm/book3s.c
> > +++ b/arch/powerpc/kvm/book3s.c
> > @@ -799,6 +799,11 @@ int kvmppc_core_check_requests(struct kvm_vcpu *vcpu)
> >  	return vcpu->kvm->arch.kvm_ops->check_requests(vcpu);
> >  }
> >  
> > +void kvm_arch_sync_dirty_log(struct kvm *kvm, struct kvm_memory_slot *memslot)
> 
> Since at it, maybe we can start to use __weak attribute for new hooks
> especially when it's empty for most archs?
> 
> E.g., define:
> 
> void __weak kvm_arch_sync_dirty_log(...) {}
> 
> In the common code, then only define it again in arch that has
> non-empty implementation of this method?

I defer to Paolo, I'm indifferent at this stage.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-02-06 21:21 UTC|newest]

Thread overview: 281+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21 22:31 [PATCH v5 00/19] KVM: Dynamically size memslot arrays Sean Christopherson
2020-01-21 22:31 ` Sean Christopherson
2020-01-21 22:31 ` Sean Christopherson
2020-01-21 22:31 ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 01/19] KVM: x86: Allocate new rmap and large page tracking when moving memslot Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-05 21:49   ` Peter Xu
2020-02-05 21:49     ` Peter Xu
2020-02-05 21:49     ` Peter Xu
2020-02-05 21:49     ` Peter Xu
2020-02-05 23:55     ` Sean Christopherson
2020-02-05 23:55       ` Sean Christopherson
2020-02-05 23:55       ` Sean Christopherson
2020-02-05 23:55       ` Sean Christopherson
2020-02-06  2:00       ` Peter Xu
2020-02-06  2:00         ` Peter Xu
2020-02-06  2:00         ` Peter Xu
2020-02-06  2:00         ` Peter Xu
2020-02-06  2:17         ` Sean Christopherson
2020-02-06  2:17           ` Sean Christopherson
2020-02-06  2:17           ` Sean Christopherson
2020-02-06  2:17           ` Sean Christopherson
2020-02-06  2:58           ` Peter Xu
2020-02-06  2:58             ` Peter Xu
2020-02-06  2:58             ` Peter Xu
2020-02-06  2:58             ` Peter Xu
2020-02-06  5:05             ` Sean Christopherson
2020-02-06  5:05               ` Sean Christopherson
2020-02-06  5:05               ` Sean Christopherson
2020-02-06  5:05               ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 02/19] KVM: Reinstall old memslots if arch preparation fails Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-05 22:08   ` Peter Xu
2020-02-05 22:08     ` Peter Xu
2020-02-05 22:08     ` Peter Xu
2020-02-05 22:08     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 03/19] KVM: Don't free new memslot if allocation of said memslot fails Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-05 22:28   ` Peter Xu
2020-02-05 22:28     ` Peter Xu
2020-02-05 22:28     ` Peter Xu
2020-02-05 22:28     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 04/19] KVM: PPC: Move memslot memory allocation into prepare_memory_region() Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-05 22:41   ` Peter Xu
2020-02-05 22:41     ` Peter Xu
2020-02-05 22:41     ` Peter Xu
2020-02-05 22:41     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 05/19] KVM: x86: Allocate memslot resources during prepare_memory_region() Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 06/19] KVM: Drop kvm_arch_create_memslot() Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-05 22:45   ` Peter Xu
2020-02-05 22:45     ` Peter Xu
2020-02-05 22:45     ` Peter Xu
2020-02-05 22:45     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 07/19] KVM: Explicitly free allocated-but-unused dirty bitmap Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 08/19] KVM: Refactor error handling for setting memory region Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-05 22:48   ` Peter Xu
2020-02-05 22:48     ` Peter Xu
2020-02-05 22:48     ` Peter Xu
2020-02-05 22:48     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 09/19] KVM: Move setting of memslot into helper routine Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 16:26   ` Peter Xu
2020-02-06 16:26     ` Peter Xu
2020-02-06 16:26     ` Peter Xu
2020-02-06 16:26     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 10/19] KVM: Drop "const" attribute from old memslot in commit_memory_region() Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 16:26   ` Peter Xu
2020-02-06 16:26     ` Peter Xu
2020-02-06 16:26     ` Peter Xu
2020-02-06 16:26     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 11/19] KVM: x86: Free arrays for old memslot when moving memslot's base gfn Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 12/19] KVM: Move memslot deletion to helper function Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 16:14   ` Peter Xu
2020-02-06 16:14     ` Peter Xu
2020-02-06 16:14     ` Peter Xu
2020-02-06 16:14     ` Peter Xu
2020-02-06 16:28     ` Sean Christopherson
2020-02-06 16:28       ` Sean Christopherson
2020-02-06 16:28       ` Sean Christopherson
2020-02-06 16:28       ` Sean Christopherson
2020-02-06 16:51       ` Peter Xu
2020-02-06 16:51         ` Peter Xu
2020-02-06 16:51         ` Peter Xu
2020-02-06 16:51         ` Peter Xu
2020-02-07 17:59         ` Sean Christopherson
2020-02-07 17:59           ` Sean Christopherson
2020-02-07 17:59           ` Sean Christopherson
2020-02-07 17:59           ` Sean Christopherson
2020-02-07 18:07           ` Sean Christopherson
2020-02-07 18:07             ` Sean Christopherson
2020-02-07 18:07             ` Sean Christopherson
2020-02-07 18:07             ` Sean Christopherson
2020-02-07 18:17           ` Peter Xu
2020-02-07 18:17             ` Peter Xu
2020-02-07 18:17             ` Peter Xu
2020-02-07 18:17             ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 13/19] KVM: Simplify kvm_free_memslot() and all its descendents Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 16:29   ` Peter Xu
2020-02-06 16:29     ` Peter Xu
2020-02-06 16:29     ` Peter Xu
2020-02-06 16:29     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 14/19] KVM: Clean up local variable usage in __kvm_set_memory_region() Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 19:06   ` Peter Xu
2020-02-06 19:06     ` Peter Xu
2020-02-06 19:06     ` Peter Xu
2020-02-06 19:06     ` Peter Xu
2020-02-06 19:22     ` Sean Christopherson
2020-02-06 19:22       ` Sean Christopherson
2020-02-06 19:22       ` Sean Christopherson
2020-02-06 19:22       ` Sean Christopherson
2020-02-06 19:36       ` Peter Xu
2020-02-06 19:36         ` Peter Xu
2020-02-06 19:36         ` Peter Xu
2020-02-06 19:36         ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 15/19] KVM: Provide common implementation for generic dirty log functions Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 20:02   ` Peter Xu
2020-02-06 20:02     ` Peter Xu
2020-02-06 20:02     ` Peter Xu
2020-02-06 20:02     ` Peter Xu
2020-02-06 21:21     ` Sean Christopherson [this message]
2020-02-06 21:21       ` Sean Christopherson
2020-02-06 21:21       ` Sean Christopherson
2020-02-06 21:21       ` Sean Christopherson
2020-02-06 21:41       ` Peter Xu
2020-02-06 21:41         ` Peter Xu
2020-02-06 21:41         ` Peter Xu
2020-02-06 21:41         ` Peter Xu
2020-02-07 19:45         ` Sean Christopherson
2020-02-07 19:45           ` Sean Christopherson
2020-02-07 19:45           ` Sean Christopherson
2020-02-07 19:45           ` Sean Christopherson
2020-02-08  0:18           ` Peter Xu
2020-02-08  0:18             ` Peter Xu
2020-02-08  0:18             ` Peter Xu
2020-02-08  0:18             ` Peter Xu
2020-02-08  0:42             ` Sean Christopherson
2020-02-08  0:42               ` Sean Christopherson
2020-02-08  0:42               ` Sean Christopherson
2020-02-08  0:42               ` Sean Christopherson
2020-02-08  0:53               ` Peter Xu
2020-02-08  0:53                 ` Peter Xu
2020-02-08  0:53                 ` Peter Xu
2020-02-08  0:53                 ` Peter Xu
2020-02-08  1:29                 ` Sean Christopherson
2020-02-08  1:29                   ` Sean Christopherson
2020-02-08  1:29                   ` Sean Christopherson
2020-02-08  1:29                   ` Sean Christopherson
2020-02-17 15:39                   ` Vitaly Kuznetsov
2020-02-17 15:39                     ` Vitaly Kuznetsov
2020-02-17 15:39                     ` Vitaly Kuznetsov
2020-02-17 15:39                     ` Vitaly Kuznetsov
2020-02-18 17:10                     ` Sean Christopherson
2020-02-18 17:10                       ` Sean Christopherson
2020-02-18 17:10                       ` Sean Christopherson
2020-02-18 17:10                       ` Sean Christopherson
2020-02-17 15:35           ` Vitaly Kuznetsov
2020-02-17 15:35             ` Vitaly Kuznetsov
2020-02-17 15:35             ` Vitaly Kuznetsov
2020-02-17 15:35             ` Vitaly Kuznetsov
2020-02-06 21:24   ` Peter Xu
2020-02-06 21:24     ` Peter Xu
2020-02-06 21:24     ` Peter Xu
2020-02-06 21:24     ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 16/19] KVM: Ensure validity of memslot with respect to kvm_get_dirty_log() Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 17/19] KVM: Terminate memslot walks via used_slots Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 21:09   ` Peter Xu
2020-02-06 21:09     ` Peter Xu
2020-02-06 21:09     ` Peter Xu
2020-02-06 21:09     ` Peter Xu
2020-02-07 18:33     ` Sean Christopherson
2020-02-07 18:33       ` Sean Christopherson
2020-02-07 18:33       ` Sean Christopherson
2020-02-07 18:33       ` Sean Christopherson
2020-02-07 20:39       ` Peter Xu
2020-02-07 20:39         ` Peter Xu
2020-02-07 20:39         ` Peter Xu
2020-02-07 20:39         ` Peter Xu
2020-02-07 21:10         ` Sean Christopherson
2020-02-07 21:10           ` Sean Christopherson
2020-02-07 21:10           ` Sean Christopherson
2020-02-07 21:10           ` Sean Christopherson
2020-02-07 21:46           ` Peter Xu
2020-02-07 21:46             ` Peter Xu
2020-02-07 21:46             ` Peter Xu
2020-02-07 21:46             ` Peter Xu
2020-02-07 22:03             ` Sean Christopherson
2020-02-07 22:03               ` Sean Christopherson
2020-02-07 22:03               ` Sean Christopherson
2020-02-07 22:03               ` Sean Christopherson
2020-02-07 22:24               ` Peter Xu
2020-02-07 22:24                 ` Peter Xu
2020-02-07 22:24                 ` Peter Xu
2020-02-07 22:24                 ` Peter Xu
2020-01-21 22:31 ` [PATCH v5 18/19] KVM: Dynamically size memslot array based on number of used slots Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 22:12   ` Peter Xu
2020-02-06 22:12     ` Peter Xu
2020-02-06 22:12     ` Peter Xu
2020-02-06 22:12     ` Peter Xu
2020-02-07 15:38     ` Sean Christopherson
2020-02-07 15:38       ` Sean Christopherson
2020-02-07 15:38       ` Sean Christopherson
2020-02-07 15:38       ` Sean Christopherson
2020-02-07 16:05       ` Peter Xu
2020-02-07 16:05         ` Peter Xu
2020-02-07 16:05         ` Peter Xu
2020-02-07 16:05         ` Peter Xu
2020-02-07 16:09         ` Peter Xu
2020-02-07 16:15         ` Sean Christopherson
2020-02-07 16:15           ` Sean Christopherson
2020-02-07 16:15           ` Sean Christopherson
2020-02-07 16:15           ` Sean Christopherson
2020-02-07 16:37           ` Peter Xu
2020-02-07 16:37             ` Peter Xu
2020-02-07 16:37             ` Peter Xu
2020-02-07 16:37             ` Peter Xu
2020-02-07 16:47             ` Sean Christopherson
2020-02-07 16:47               ` Sean Christopherson
2020-02-07 16:47               ` Sean Christopherson
2020-02-07 16:47               ` Sean Christopherson
2020-01-21 22:31 ` [PATCH v5 19/19] KVM: selftests: Add test for KVM_SET_USER_MEMORY_REGION Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-01-21 22:31   ` Sean Christopherson
2020-02-06 22:30   ` Peter Xu
2020-02-06 22:30     ` Peter Xu
2020-02-06 22:30     ` Peter Xu
2020-02-06 22:30     ` Peter Xu
2020-02-06 23:11     ` Sean Christopherson
2020-02-06 23:11       ` Sean Christopherson
2020-02-06 23:11       ` Sean Christopherson
2020-02-06 23:11       ` Sean Christopherson

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=20200206212120.GF13067@linux.intel.com \
    --to=sean.j.christopherson@intel.com \
    --cc=borntraeger@de.ibm.com \
    --cc=christoffer.dall@arm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=frankja@linux.ibm.com \
    --cc=james.morse@arm.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=julien.thierry.kdev@gmail.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=paulus@ozlabs.org \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=suzuki.poulose@arm.com \
    --cc=vkuznets@redhat.com \
    --cc=wanpengli@tencent.com \
    /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: link
Be 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.