kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Jones <drjones@redhat.com>
To: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org
Cc: marc.zyngier@arm.com, cdall@linaro.org, pbonzini@redhat.com
Subject: [PATCH v4 00/11] KVM: arm/arm64: race fixes and vcpu requests
Date: Tue, 16 May 2017 04:20:24 +0200	[thread overview]
Message-ID: <20170516022035.7674-1-drjones@redhat.com> (raw)

This series fixes some hard to produce races by introducing the use of
vcpu requests. I've tested the series on a Mustang and compile-tested
the ARM bits.

Patch 3/11 adds documentation, as, at least for me, understanding vcpu
request interplay with vcpu kicks and vcpu mode and the memory barriers
that interplay implies, is exhausting.

v4:
  - Rebase on latest kvmarm/queue. No more kvm_arm_halt/resume_vcpu
  - Documentation additions/clarifications [Paolo]
  - go back to sleep after getting a signal [Christoffer]
  - timer doesn't need a vcpu request, just a wake up [Christoffer]
  - patch dropping/adding/reshuffling for above changes

v3:
  - The easier to reproduce PSCI races previously fixed with this
    series were fixed independently with a different approach suggested
    by Christoffer[1].
  - Based on Radim's latest vcpu request rework series[2]
  - Rewrote the documentation adding much more information and
    incorporating Christoffer's comments from v2.
  - Reworked the approach to controlling pause and power_off by
    requests.
  - Clear request for pending irq injection in the correct place, as
    pointed out by Christoffer.
  - Rebase required some simple changes to the PMU code patch.

v2:
  - No longer based on Radim's vcpu request API rework[3], except for
    including "add kvm_request_pending" as patch 1/10 [drew]
  - Added vcpu request documentation [drew]
  - Dropped the introduction of user settable MPIDRs [Christoffer]
  - Added vcpu requests to all request-less vcpu kicks [Christoffer]

[1] https://www.spinics.net/lists/arm-kernel/msg577630.html
[2] http://www.spinics.net/lists/kvm/msg148890.html
[3] https://www.spinics.net/lists/kvm/msg145588.html


Andrew Jones (10):
  KVM: improve arch vcpu request defining
  KVM: Add documentation for VCPU requests
  KVM: arm/arm64: properly use vcpu requests
  KVM: arm/arm64: replace pause checks with vcpu request checks
  KVM: arm/arm64: use vcpu requests for power_off
  KVM: arm/arm64: optimize VCPU RUN
  KVM: arm/arm64: change exit request to sleep request
  KVM: arm/arm64: use vcpu requests for irq injection
  KVM: arm/arm64: PMU: remove request-less vcpu kick
  KVM: arm/arm64: timer: remove request-less vcpu kick

Radim Krčmář (1):
  KVM: add kvm_request_pending

 Documentation/virtual/kvm/vcpu-requests.rst | 299 ++++++++++++++++++++++++++++
 arch/arm/include/asm/kvm_host.h             |   4 +-
 arch/arm/kvm/handle_exit.c                  |   1 +
 arch/arm64/include/asm/kvm_host.h           |   4 +-
 arch/arm64/kvm/handle_exit.c                |   1 +
 arch/mips/kvm/trap_emul.c                   |   2 +-
 arch/mips/kvm/vz.c                          |   2 +-
 arch/powerpc/include/asm/kvm_host.h         |   4 +-
 arch/powerpc/kvm/booke.c                    |   2 +-
 arch/powerpc/kvm/powerpc.c                  |   5 +-
 arch/s390/include/asm/kvm_host.h            |   6 +-
 arch/s390/kvm/kvm-s390.c                    |   2 +-
 arch/x86/include/asm/kvm_host.h             |  47 +++--
 arch/x86/kvm/x86.c                          |   4 +-
 include/linux/kvm_host.h                    |  12 ++
 virt/kvm/arm/arch_timer.c                   |   2 +-
 virt/kvm/arm/arm.c                          |  55 ++++-
 virt/kvm/arm/pmu.c                          |  40 ++--
 virt/kvm/arm/psci.c                         |   8 +-
 virt/kvm/arm/vgic/vgic.c                    |   9 +-
 20 files changed, 436 insertions(+), 73 deletions(-)
 create mode 100644 Documentation/virtual/kvm/vcpu-requests.rst

-- 
2.9.3

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

             reply	other threads:[~2017-05-16  2:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-16  2:20 Andrew Jones [this message]
2017-05-16  2:20 ` [PATCH v4 01/11] KVM: improve arch vcpu request defining Andrew Jones
2017-06-01 10:34   ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 02/11] KVM: add kvm_request_pending Andrew Jones
2017-06-01 10:35   ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 03/11] KVM: Add documentation for VCPU requests Andrew Jones
2017-05-26  7:31   ` Christoffer Dall
2017-05-26  9:43     ` Andrew Jones
2017-05-16  2:20 ` [PATCH v4 04/11] KVM: arm/arm64: properly use vcpu requests Andrew Jones
2017-05-16  2:20 ` [PATCH v4 05/11] KVM: arm/arm64: replace pause checks with vcpu request checks Andrew Jones
2017-06-01 10:35   ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 06/11] KVM: arm/arm64: use vcpu requests for power_off Andrew Jones
2017-06-01 10:35   ` Christoffer Dall
2017-06-01 10:35   ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 07/11] KVM: arm/arm64: optimize VCPU RUN Andrew Jones
2017-06-01 10:35   ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 08/11] KVM: arm/arm64: change exit request to sleep request Andrew Jones
2017-06-01 10:35   ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 09/11] KVM: arm/arm64: use vcpu requests for irq injection Andrew Jones
2017-06-01 10:35   ` Christoffer Dall
2017-06-01 10:59     ` Andrew Jones
2017-06-01 13:27       ` Christoffer Dall
2017-06-01 13:38         ` Andrew Jones
2017-06-01 13:53           ` Christoffer Dall
2017-05-16  2:20 ` [PATCH v4 10/11] KVM: arm/arm64: PMU: remove request-less vcpu kick Andrew Jones
2017-05-16  2:20 ` [PATCH v4 11/11] KVM: arm/arm64: timer: " Andrew Jones
2017-06-01 10:34   ` Christoffer Dall
2017-06-01 11:09     ` Andrew Jones
2017-06-01 12:37       ` Paolo Bonzini
2017-06-01 13:23         ` Christoffer Dall

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=20170516022035.7674-1-drjones@redhat.com \
    --to=drjones@redhat.com \
    --cc=cdall@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=marc.zyngier@arm.com \
    --cc=pbonzini@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).