All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Ben Gardon <bgardon@google.com>
Cc: Marc Zyngier <maz@kernel.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>,
	Paul Mackerras <paulus@ozlabs.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	James Morse <james.morse@arm.com>,
	Julien Thierry <julien.thierry.kdev@gmail.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org,
	kvm <kvm@vger.kernel.org>,
	kvm-ppc@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 00/18] KVM: Consolidate and optimize MMU notifiers
Date: Tue, 30 Mar 2021 19:58:19 +0000	[thread overview]
Message-ID: <YGOC2wqn5k9WkY39@google.com> (raw)
In-Reply-To: <CANgfPd_gpWsa4F3VdcpoBYqPR4dSBWNYCW1YdeOnu1wQdUz+0A@mail.gmail.com>

On Tue, Mar 30, 2021, Ben Gardon wrote:
> On Thu, Mar 25, 2021 at 7:20 PM Sean Christopherson <seanjc@google.com> wrote:
> > Patch 10 moves x86's memslot walkers into common KVM.  I chose x86 purely
> > because I could actually test it.  All architectures use nearly identical
> > code, so I don't think it actually matters in the end.
> 
> I'm still reviewing 10 and 14-18. 10 is a huge change and the diff is
> pretty hard to parse.

Ya :-/  I don't see an easy way to break it up without creating a massive diff,
e.g. it could be staged in x86 and moved to common, but I don't think that would
fundamentally change the diff.  Although I admittedly didn't spend _that_ much
time thinking about how to break it up.

> > Patches 11-13 move arm64, MIPS, and PPC to the new APIs.
> >
> > Patch 14 yanks out the old APIs.
> >
> > Patch 15 adds the mmu_lock elision, but only for unpaired notifications.
> 
> Reading through all this code and considering the changes I'm
> preparing for the TDP MMU have me wondering if it might help to have a
> more general purpose MMU lock context struct which could be embedded
> in the structs added in this patch. I'm thinking something like:
> enum kvm_mmu_lock_mode {
>     KVM_MMU_LOCK_NONE,
>     KVM_MMU_LOCK_READ,
>     KVM_MMU_LOCK_WRITE,
> };
> 
> struct kvm_mmu_lock_context {
>     enum kvm_mmu_lock_mode lock_mode;
>     bool can_block;
>     bool can_yield;

Not that it matters right now, but can_block and can_yield are the same thing.
I considered s/can_yield/can_block to make it all consistent, but that felt like
unnecessary thrash.

>     bool flush;

Drat.  This made me realize that the 'struct kvm_gfn_range' passed to arch code
isn't tagged 'const'.  I thought I had done that, but obviously not.

Anyways, what I was going to say before that realization is that the downside to
putting flush into kvm_gfn_range is that it would have to lose its 'const'
qualifier.  That's all a moot point if it's not easily constified though.

Const aside, my gut reaction is that it will probably be cleaner to keep the
flush stuff in arch code, separate from the kvm_gfn_range passed in by common
KVM.  Looping 'flush' back into the helpers is x86 specific at this point, and
AFAICT that's not likely to change any time soon.

For rwlock support, if we get to the point where kvm_age_gfn() and/or
kvm_test_age_gfn() can take mmu_lock for read, then it definitely makes sense to
track locking in kvm_gfn_range, assuming it isn't the sole entity that prevents
consifying kvm_range_range.

> };
> 
> This could yield some grossly long lines, but it would also have
> potential to unify a bunch of ad-hoc handling.
> The above struct could also fit into a single byte, so it'd be pretty
> easy to pass it around.

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <seanjc@google.com>
To: Ben Gardon <bgardon@google.com>
Cc: Wanpeng Li <wanpengli@tencent.com>, kvm <kvm@vger.kernel.org>,
	Marc Zyngier <maz@kernel.org>, Joerg Roedel <joro@8bytes.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	linux-mips@vger.kernel.org, kvm-ppc@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>,
	Paul Mackerras <paulus@ozlabs.org>,
	Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>,
	linux-arm-kernel@lists.infradead.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	kvmarm@lists.cs.columbia.edu, Jim Mattson <jmattson@google.com>
Subject: Re: [PATCH 00/18] KVM: Consolidate and optimize MMU notifiers
Date: Tue, 30 Mar 2021 19:58:19 +0000	[thread overview]
Message-ID: <YGOC2wqn5k9WkY39@google.com> (raw)
In-Reply-To: <CANgfPd_gpWsa4F3VdcpoBYqPR4dSBWNYCW1YdeOnu1wQdUz+0A@mail.gmail.com>

On Tue, Mar 30, 2021, Ben Gardon wrote:
> On Thu, Mar 25, 2021 at 7:20 PM Sean Christopherson <seanjc@google.com> wrote:
> > Patch 10 moves x86's memslot walkers into common KVM.  I chose x86 purely
> > because I could actually test it.  All architectures use nearly identical
> > code, so I don't think it actually matters in the end.
> 
> I'm still reviewing 10 and 14-18. 10 is a huge change and the diff is
> pretty hard to parse.

Ya :-/  I don't see an easy way to break it up without creating a massive diff,
e.g. it could be staged in x86 and moved to common, but I don't think that would
fundamentally change the diff.  Although I admittedly didn't spend _that_ much
time thinking about how to break it up.

> > Patches 11-13 move arm64, MIPS, and PPC to the new APIs.
> >
> > Patch 14 yanks out the old APIs.
> >
> > Patch 15 adds the mmu_lock elision, but only for unpaired notifications.
> 
> Reading through all this code and considering the changes I'm
> preparing for the TDP MMU have me wondering if it might help to have a
> more general purpose MMU lock context struct which could be embedded
> in the structs added in this patch. I'm thinking something like:
> enum kvm_mmu_lock_mode {
>     KVM_MMU_LOCK_NONE,
>     KVM_MMU_LOCK_READ,
>     KVM_MMU_LOCK_WRITE,
> };
> 
> struct kvm_mmu_lock_context {
>     enum kvm_mmu_lock_mode lock_mode;
>     bool can_block;
>     bool can_yield;

Not that it matters right now, but can_block and can_yield are the same thing.
I considered s/can_yield/can_block to make it all consistent, but that felt like
unnecessary thrash.

>     bool flush;

Drat.  This made me realize that the 'struct kvm_gfn_range' passed to arch code
isn't tagged 'const'.  I thought I had done that, but obviously not.

Anyways, what I was going to say before that realization is that the downside to
putting flush into kvm_gfn_range is that it would have to lose its 'const'
qualifier.  That's all a moot point if it's not easily constified though.

Const aside, my gut reaction is that it will probably be cleaner to keep the
flush stuff in arch code, separate from the kvm_gfn_range passed in by common
KVM.  Looping 'flush' back into the helpers is x86 specific at this point, and
AFAICT that's not likely to change any time soon.

For rwlock support, if we get to the point where kvm_age_gfn() and/or
kvm_test_age_gfn() can take mmu_lock for read, then it definitely makes sense to
track locking in kvm_gfn_range, assuming it isn't the sole entity that prevents
consifying kvm_range_range.

> };
> 
> This could yield some grossly long lines, but it would also have
> potential to unify a bunch of ad-hoc handling.
> The above struct could also fit into a single byte, so it'd be pretty
> easy to pass it around.
_______________________________________________
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 <seanjc@google.com>
To: Ben Gardon <bgardon@google.com>
Cc: Marc Zyngier <maz@kernel.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>,
	Paul Mackerras <paulus@ozlabs.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	James Morse <james.morse@arm.com>,
	Julien Thierry <julien.thierry.kdev@gmail.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, linux-mips@vger.kernel.org,
	kvm <kvm@vger.kernel.org>,
	kvm-ppc@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 00/18] KVM: Consolidate and optimize MMU notifiers
Date: Tue, 30 Mar 2021 19:58:19 +0000	[thread overview]
Message-ID: <YGOC2wqn5k9WkY39@google.com> (raw)
In-Reply-To: <CANgfPd_gpWsa4F3VdcpoBYqPR4dSBWNYCW1YdeOnu1wQdUz+0A@mail.gmail.com>

On Tue, Mar 30, 2021, Ben Gardon wrote:
> On Thu, Mar 25, 2021 at 7:20 PM Sean Christopherson <seanjc@google.com> wrote:
> > Patch 10 moves x86's memslot walkers into common KVM.  I chose x86 purely
> > because I could actually test it.  All architectures use nearly identical
> > code, so I don't think it actually matters in the end.
> 
> I'm still reviewing 10 and 14-18. 10 is a huge change and the diff is
> pretty hard to parse.

Ya :-/  I don't see an easy way to break it up without creating a massive diff,
e.g. it could be staged in x86 and moved to common, but I don't think that would
fundamentally change the diff.  Although I admittedly didn't spend _that_ much
time thinking about how to break it up.

> > Patches 11-13 move arm64, MIPS, and PPC to the new APIs.
> >
> > Patch 14 yanks out the old APIs.
> >
> > Patch 15 adds the mmu_lock elision, but only for unpaired notifications.
> 
> Reading through all this code and considering the changes I'm
> preparing for the TDP MMU have me wondering if it might help to have a
> more general purpose MMU lock context struct which could be embedded
> in the structs added in this patch. I'm thinking something like:
> enum kvm_mmu_lock_mode {
>     KVM_MMU_LOCK_NONE,
>     KVM_MMU_LOCK_READ,
>     KVM_MMU_LOCK_WRITE,
> };
> 
> struct kvm_mmu_lock_context {
>     enum kvm_mmu_lock_mode lock_mode;
>     bool can_block;
>     bool can_yield;

Not that it matters right now, but can_block and can_yield are the same thing.
I considered s/can_yield/can_block to make it all consistent, but that felt like
unnecessary thrash.

>     bool flush;

Drat.  This made me realize that the 'struct kvm_gfn_range' passed to arch code
isn't tagged 'const'.  I thought I had done that, but obviously not.

Anyways, what I was going to say before that realization is that the downside to
putting flush into kvm_gfn_range is that it would have to lose its 'const'
qualifier.  That's all a moot point if it's not easily constified though.

Const aside, my gut reaction is that it will probably be cleaner to keep the
flush stuff in arch code, separate from the kvm_gfn_range passed in by common
KVM.  Looping 'flush' back into the helpers is x86 specific at this point, and
AFAICT that's not likely to change any time soon.

For rwlock support, if we get to the point where kvm_age_gfn() and/or
kvm_test_age_gfn() can take mmu_lock for read, then it definitely makes sense to
track locking in kvm_gfn_range, assuming it isn't the sole entity that prevents
consifying kvm_range_range.

> };
> 
> This could yield some grossly long lines, but it would also have
> potential to unify a bunch of ad-hoc handling.
> The above struct could also fit into a single byte, so it'd be pretty
> easy to pass it around.

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

  parent reply	other threads:[~2021-03-30 19:59 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-26  2:19 [PATCH 00/18] KVM: Consolidate and optimize MMU notifiers Sean Christopherson
2021-03-26  2:19 ` Sean Christopherson
2021-03-26  2:19 ` Sean Christopherson
2021-03-26  2:19 ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 01/18] KVM: x86/mmu: Coalesce TDP MMU TLB flushes when zapping collapsible SPTEs Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 02/18] KVM: x86/mmu: Move flushing for "slot" handlers to caller for legacy MMU Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 03/18] KVM: x86/mmu: Coalesce TLB flushes when zapping collapsible SPTEs Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 04/18] KVM: x86/mmu: Coalesce TLB flushes across address spaces for gfn range zap Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 05/18] KVM: x86/mmu: Pass address space ID to __kvm_tdp_mmu_zap_gfn_range() Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 06/18] KVM: x86/mmu: Pass address space ID to TDP MMU root walkers Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 07/18] KVM: x86/mmu: Use leaf-only loop for walking TDP SPTEs when changing SPTE Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 08/18] KVM: Move prototypes for MMU notifier callbacks to generic code Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 09/18] KVM: Move arm64's MMU notifier trace events " Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 10/18] KVM: Move x86's MMU notifier memslot walkers " Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-31  7:52   ` Paolo Bonzini
2021-03-31  7:52     ` Paolo Bonzini
2021-03-31  7:52     ` Paolo Bonzini
2021-03-31  7:52     ` Paolo Bonzini
2021-03-31 16:20     ` Sean Christopherson
2021-03-31 16:20       ` Sean Christopherson
2021-03-31 16:20       ` Sean Christopherson
2021-03-31 16:36       ` Paolo Bonzini
2021-03-31 16:36         ` Paolo Bonzini
2021-03-31 16:36         ` Paolo Bonzini
2021-03-31 16:36         ` Paolo Bonzini
2021-03-26  2:19 ` [PATCH 11/18] KVM: arm64: Convert to the gfn-based MMU notifier callbacks Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 12/18] KVM: MIPS/MMU: " Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-31  7:41   ` Paolo Bonzini
2021-03-31  7:41     ` Paolo Bonzini
2021-03-31  7:41     ` Paolo Bonzini
2021-03-31  7:41     ` Paolo Bonzini
2021-03-26  2:19 ` [PATCH 13/18] KVM: PPC: " Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 14/18] KVM: Kill off the old hva-based " Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 15/18] KVM: Take mmu_lock when handling MMU notifier iff the hva hits a memslot Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 16/18] KVM: Don't take mmu_lock for range invalidation unless necessary Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-31  7:52   ` Paolo Bonzini
2021-03-31  7:52     ` Paolo Bonzini
2021-03-31  7:52     ` Paolo Bonzini
2021-03-31  7:52     ` Paolo Bonzini
2021-03-31  8:35   ` Paolo Bonzini
2021-03-31  8:35     ` Paolo Bonzini
2021-03-31  8:35     ` Paolo Bonzini
2021-03-31  8:35     ` Paolo Bonzini
2021-03-31 16:41     ` Sean Christopherson
2021-03-31 16:41       ` Sean Christopherson
2021-03-31 16:41       ` Sean Christopherson
2021-03-31 16:47       ` Paolo Bonzini
2021-03-31 16:47         ` Paolo Bonzini
2021-03-31 16:47         ` Paolo Bonzini
2021-03-31 16:47         ` Paolo Bonzini
2021-03-31 19:47         ` Sean Christopherson
2021-03-31 19:47           ` Sean Christopherson
2021-03-31 19:47           ` Sean Christopherson
2021-03-31 20:42           ` Paolo Bonzini
2021-03-31 20:42             ` Paolo Bonzini
2021-03-31 20:42             ` Paolo Bonzini
2021-03-31 20:42             ` Paolo Bonzini
2021-03-31 21:05             ` Sean Christopherson
2021-03-31 21:05               ` Sean Christopherson
2021-03-31 21:05               ` Sean Christopherson
2021-03-31 21:22               ` Sean Christopherson
2021-03-31 21:22                 ` Sean Christopherson
2021-03-31 21:22                 ` Sean Christopherson
2021-03-31 21:36                 ` Paolo Bonzini
2021-03-31 21:36                   ` Paolo Bonzini
2021-03-31 21:36                   ` Paolo Bonzini
2021-03-31 21:36                   ` Paolo Bonzini
2021-03-31 21:35               ` Paolo Bonzini
2021-03-31 21:35                 ` Paolo Bonzini
2021-03-31 21:35                 ` Paolo Bonzini
2021-03-31 21:35                 ` Paolo Bonzini
2021-03-31 21:47                 ` Sean Christopherson
2021-03-31 21:47                   ` Sean Christopherson
2021-03-31 21:47                   ` Sean Christopherson
2021-03-31 20:15     ` Sean Christopherson
2021-03-31 20:15       ` Sean Christopherson
2021-03-31 20:15       ` Sean Christopherson
2021-03-31 20:15       ` Sean Christopherson
2021-03-31 20:30       ` Paolo Bonzini
2021-03-31 20:30         ` Paolo Bonzini
2021-03-31 20:30         ` Paolo Bonzini
2021-03-31 20:30         ` Paolo Bonzini
2021-03-31 20:52     ` Sean Christopherson
2021-03-31 20:52       ` Sean Christopherson
2021-03-31 20:52       ` Sean Christopherson
2021-03-31 21:00       ` Paolo Bonzini
2021-03-31 21:00         ` Paolo Bonzini
2021-03-31 21:00         ` Paolo Bonzini
2021-03-31 21:00         ` Paolo Bonzini
2021-03-26  2:19 ` [PATCH 17/18] KVM: x86/mmu: Allow yielding during MMU notifier unmap/zap, if possible Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19 ` [PATCH 18/18] KVM: x86/mmu: Drop trace_kvm_age_page() tracepoint Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-26  2:19   ` Sean Christopherson
2021-03-30 18:32 ` [PATCH 00/18] KVM: Consolidate and optimize MMU notifiers Ben Gardon
2021-03-30 18:32   ` Ben Gardon
2021-03-30 18:32   ` Ben Gardon
2021-03-30 18:32   ` Ben Gardon
2021-03-30 19:48   ` Paolo Bonzini
2021-03-30 19:48     ` Paolo Bonzini
2021-03-30 19:48     ` Paolo Bonzini
2021-03-30 19:48     ` Paolo Bonzini
2021-03-30 19:58   ` Sean Christopherson [this message]
2021-03-30 19:58     ` Sean Christopherson
2021-03-30 19:58     ` Sean Christopherson
2021-03-31  7:57 ` Paolo Bonzini
2021-03-31  7:57   ` Paolo Bonzini
2021-03-31  7:57   ` Paolo Bonzini
2021-03-31  7:57   ` Paolo Bonzini
2021-03-31  9:34   ` Marc Zyngier
2021-03-31  9:34     ` Marc Zyngier
2021-03-31  9:34     ` Marc Zyngier
2021-03-31  9:34     ` Marc Zyngier
2021-03-31  9:41     ` Paolo Bonzini
2021-03-31  9:41       ` Paolo Bonzini
2021-03-31  9:41       ` Paolo Bonzini
2021-03-31  9:41       ` 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=YGOC2wqn5k9WkY39@google.com \
    --to=seanjc@google.com \
    --cc=aleksandar.qemu.devel@gmail.com \
    --cc=bgardon@google.com \
    --cc=chenhuacai@kernel.org \
    --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=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.