All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roman Kagan <rkagan@virtuozzo.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Suthikulpanit, Suravee" <Suravee.Suthikulpanit@amd.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"rkrcmar@redhat.com" <rkrcmar@redhat.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>,
	"graf@amazon.com" <graf@amazon.com>,
	"jschoenh@amazon.de" <jschoenh@amazon.de>,
	"karahmed@amazon.de" <karahmed@amazon.de>,
	"rimasluk@amazon.com" <rimasluk@amazon.com>,
	"Grimm, Jon" <Jon.Grimm@amd.com>
Subject: Re: [PATCH v4 13/17] kvm: i8254: Deactivate APICv when using in-kernel PIT re-injection mode.
Date: Mon, 4 Nov 2019 23:17:16 +0000	[thread overview]
Message-ID: <20191104231712.GD23545@rkaganb.lan> (raw)
In-Reply-To: <70fb2b49-2198-bde4-a38b-f37bc8bc9847@redhat.com>

On Sat, Nov 02, 2019 at 10:57:47AM +0100, Paolo Bonzini wrote:
> On 01/11/19 23:41, Suthikulpanit, Suravee wrote:
> > +	/*
> > +	 * AMD SVM AVIC accelerates EOI write and does not trap.
> > +	 * This cause in-kernel PIT re-inject mode to fail
> > +	 * since it checks ps->irq_ack before kvm_set_irq()
> > +	 * and relies on the ack notifier to timely queue
> > +	 * the pt->worker work iterm and reinject the missed tick.
> > +	 * So, deactivate APICv when PIT is in reinject mode.
> > +	 */
> >  	if (reinject) {
> > +		kvm_request_apicv_update(kvm, false, APICV_DEACT_BIT_PIT_REINJ);
> >  		/* The initial state is preserved while ps->reinject == 0. */
> >  		kvm_pit_reset_reinject(pit);
> >  		kvm_register_irq_ack_notifier(kvm, &ps->irq_ack_notifier);
> >  		kvm_register_irq_mask_notifier(kvm, 0, &pit->mask_notifier);
> >  	} else {
> > +		kvm_request_apicv_update(kvm, true, APICV_DEACT_BIT_PIT_REINJ);
> >  		kvm_unregister_irq_ack_notifier(kvm, &ps->irq_ack_notifier);
> >  		kvm_unregister_irq_mask_notifier(kvm, 0, &pit->mask_notifier);
> 
> This is not too nice for Intel which does support (through the EOI exit
> mask) APICv even if PIT reinjection active.

Hmm, it's tempting to just make svm_load_eoi_exitmap() disable AVIC when
given a non-empty eoi_exit_bitmap, and enable it back on a clear
eoi_exit_bitmap.  This may remove the need to add special treatment to
PIT etc.

Thanks,
Roman.

  parent reply	other threads:[~2019-11-04 23:17 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-01 22:41 [PATCH v4 00/17] kvm: x86: Support AMD SVM AVIC w/ in-kernel irqchip mode Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 01/17] kvm: x86: Modify kvm_x86_ops.get_enable_apicv() to use struct kvm parameter Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 02/17] kvm: lapic: Introduce APICv update helper function Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 03/17] kvm: x86: Introduce APICv deactivate bits Suthikulpanit, Suravee
2019-11-02  9:51   ` Paolo Bonzini
2019-11-01 22:41 ` [PATCH v4 04/17] kvm: x86: Add support for activate/de-activate APICv at runtime Suthikulpanit, Suravee
2019-11-02  9:52   ` Paolo Bonzini
2019-11-04 19:22     ` Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 05/17] kvm: x86: Add APICv activate/deactivate request trace points Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 06/17] kvm: x86: svm: Add support to activate/deactivate posted interrupts Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 07/17] svm: Add support for setup/destroy virutal APIC backing page for AVIC Suthikulpanit, Suravee
2019-11-04 21:53   ` Roman Kagan
2019-11-12  0:05     ` Suravee Suthikulpanit
2019-11-01 22:41 ` [PATCH v4 08/17] kvm: x86: Introduce APICv pre-update hook Suthikulpanit, Suravee
2019-11-04 22:05   ` Roman Kagan
2019-11-12  0:08     ` Suravee Suthikulpanit
2019-11-12 11:12       ` Roman Kagan
2019-11-01 22:41 ` [PATCH v4 09/17] svm: Add support for activate/deactivate AVIC at runtime Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 10/17] kvm: x86: hyperv: Use APICv update request interface Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 11/17] svm: Deactivate AVIC when launching guest with nested SVM support Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 12/17] svm: Temporary deactivate AVIC during ExtINT handling Suthikulpanit, Suravee
2019-11-02 10:01   ` Paolo Bonzini
2019-11-01 22:41 ` [PATCH v4 13/17] kvm: i8254: Deactivate APICv when using in-kernel PIT re-injection mode Suthikulpanit, Suravee
2019-11-02  9:57   ` Paolo Bonzini
2019-11-04 18:54     ` Suthikulpanit, Suravee
2019-11-04 21:49       ` Paolo Bonzini
2019-11-05  7:05         ` Graf (AWS), Alexander
2019-11-05  8:40           ` Roman Kagan
2019-11-04 23:17     ` Roman Kagan [this message]
2019-11-05 22:47       ` Paolo Bonzini
2019-11-11 17:37         ` Suravee Suthikulpanit
2019-11-12 12:22           ` Roman Kagan
2019-11-01 22:41 ` [PATCH v4 14/17] kvm: lapic: Clean up APIC predefined macros Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 15/17] kvm: ioapic: Refactor kvm_ioapic_update_eoi() Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 16/17] kvm: ioapic: Lazy update IOAPIC EOI Suthikulpanit, Suravee
2019-11-01 22:41 ` [PATCH v4 17/17] svm: Allow AVIC with in-kernel irqchip mode 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=20191104231712.GD23545@rkaganb.lan \
    --to=rkagan@virtuozzo.com \
    --cc=Jon.Grimm@amd.com \
    --cc=Suravee.Suthikulpanit@amd.com \
    --cc=graf@amazon.com \
    --cc=joro@8bytes.org \
    --cc=jschoenh@amazon.de \
    --cc=karahmed@amazon.de \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rimasluk@amazon.com \
    --cc=rkrcmar@redhat.com \
    --cc=vkuznets@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 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.