mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Suthikulpanit, Suravee" <Suravee.Suthikulpanit@amd.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Cc: "joro@8bytes.org" <joro@8bytes.org>,
	"rkrcmar@redhat.com" <rkrcmar@redhat.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"bp@alien8.de" <bp@alien8.de>, "hpa@zytor.com" <hpa@zytor.com>,
	"jsteckli@amazon.de" <jsteckli@amazon.de>,
	"sironi@amazon.de" <sironi@amazon.de>,
	"wawei@amazon.de" <wawei@amazon.de>,
	"Suthikulpanit, Suravee" <Suravee.Suthikulpanit@amd.com>
Subject: [RFC PATCH 0/8] KVM: x86: svm: Enabling AVIC with in kernel irqchip
Date: Mon, 4 Feb 2019 14:41:53 +0000	[thread overview]
Message-ID: <20190204144128.9489-1-suravee.suthikulpanit@amd.com> (raw)

Currently, AMD AVIC can only be enabled when creating VM in irqchip
split mode, which is due to the following issues:

   * AMD AVIC does not support ExtINT, which is required during booting
     phase of Windows and FreeBSD VMs. This results in hanging in the
     boot loaders.

   * Untrap APIC EOI write for edge-trigger interrpt.
     Please see 67034bb9dd5e ('KVM: SVM: Add irqchip_split() checks
     before enabling AVIC') for more information.

This restriction makes AVIC difficult to enable since it depends on
the non-default QEMU's kernel_irqchip=split option. Therefore, this RFC
series tries to provide workaround for the issues above, and allow AVIC to
work with the option kernel_irqchip=on (QEMU default).

Patch 1 fixes AVIC deactivation.
Patch 2-6 introduces run-time AVIC acticate/deactivate support.
Patch 7 provide workaround for untrap APIC EOI.
Patch 8 removes the kernel irqchip split restriction.

This series has been tested booting Linux, Windows, and FreeBSD VMs
with kernel_irqchip=off/split/on.

Thanks,
Suravee

Julian Stecklina (1):
  KVM: i8254: Remove need for irq ack notifier

Suravee Suthikulpanit (7):
  svm: Fix improper check when deactivate AVIC
  KVM: x86: Add interface for run-time activate/de-activate APIC
    virtualization
  KVM: x86: Add callback functions for handling APIC ID, DFR and LDR
    update
  svm: Add AMD AVIC handlers for APIC ID, DFR and LDR update
  svm: Add support for APIC_ACCESS_PAGE_PRIVATE_MEMSLOT setup/destroy
  svm: Temporary deactivate AVIC during ExtINT handling
  svm: Allow AVIC with in-kernel irqchip mode

 arch/x86/include/asm/kvm_host.h |  11 +++
 arch/x86/kvm/i8254.c            |  22 +-----
 arch/x86/kvm/i8254.h            |   2 -
 arch/x86/kvm/lapic.c            |  11 ++-
 arch/x86/kvm/svm.c              | 118 +++++++++++++++++++++++++++++---
 arch/x86/kvm/x86.c              |  36 ++++++++++
 6 files changed, 164 insertions(+), 36 deletions(-)

-- 
2.17.1


             reply	other threads:[~2019-02-04 14:41 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-04 14:41 Suthikulpanit, Suravee [this message]
2019-02-04 14:41 ` [RFC PATCH 1/8] svm: Fix improper check when deactivate AVIC Suthikulpanit, Suravee
2019-02-04 14:42 ` [RFC PATCH 2/8] KVM: x86: Add interface for run-time activate/de-activate APIC virtualization Suthikulpanit, Suravee
2019-02-04 14:42 ` [RFC PATCH 3/8] KVM: x86: Add callback functions for handling APIC ID, DFR and LDR update Suthikulpanit, Suravee
2019-02-04 14:42 ` [RFC PATCH 4/8] svm: Add AMD AVIC handlers for " Suthikulpanit, Suravee
2019-02-04 14:42 ` [RFC PATCH 5/8] svm: Add support for APIC_ACCESS_PAGE_PRIVATE_MEMSLOT setup/destroy Suthikulpanit, Suravee
2019-02-04 14:42 ` [RFC PATCH 6/8] svm: Temporary deactivate AVIC during ExtINT handling Suthikulpanit, Suravee
2019-02-04 14:42 ` [RFC PATCH 7/8] KVM: i8254: Remove need for irq ack notifier Suthikulpanit, Suravee
2019-02-06 10:29   ` Paolo Bonzini
2019-02-06 12:53     ` Julian Stecklina
2019-02-04 14:42 ` [RFC PATCH 8/8] svm: Allow AVIC with in-kernel irqchip mode Suthikulpanit, Suravee
2019-02-05 18:34   ` Alex Williamson
2019-02-06 11:20     ` Suthikulpanit, Suravee
2019-06-15 14:28       ` Maxim Levitsky
2019-06-18 14:34         ` Suthikulpanit, Suravee

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=20190204144128.9489-1-suravee.suthikulpanit@amd.com \
    --to=suravee.suthikulpanit@amd.com \
    --cc=bp@alien8.de \
    --cc=hpa@zytor.com \
    --cc=joro@8bytes.org \
    --cc=jsteckli@amazon.de \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=sironi@amazon.de \
    --cc=tglx@linutronix.de \
    --cc=wawei@amazon.de \
    --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: 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

all inboxes | Powered by JetHome®