kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Liu, Rong L" <rong.l.liu@intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Dmytro Maluka <dmy@semihalf.com>, Marc Zyngier <maz@kernel.org>,
	"eric.auger@redhat.com" <eric.auger@redhat.com>
Cc: "Dong, Eddie" <eddie.dong@intel.com>, "Christopherson,,
	Sean" <seanjc@google.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	Zhenyu Wang <zhenyuw@linux.intel.com>,
	Tomasz Nowicki <tn@semihalf.com>,
	"Grzegorz Jaszczyk" <jaz@semihalf.com>,
	"upstream@semihalf.com" <upstream@semihalf.com>,
	Dmitry Torokhov <dtor@google.com>
Subject: RE: [PATCH v2 0/5] KVM: Fix oneshot interrupts forwarding
Date: Thu, 11 Aug 2022 22:40:47 +0000	[thread overview]
Message-ID: <MW3PR11MB4554AAFB43FA6B0B612150D9C7649@MW3PR11MB4554.namprd11.prod.outlook.com> (raw)
In-Reply-To: <d8704ffa-8d9e-2261-1bcf-1b402f955fad@redhat.com>

Hi Paolo and Dmytro,

> -----Original Message-----
> From: Paolo Bonzini <pbonzini@redhat.com>
> Sent: Wednesday, August 10, 2022 11:48 PM
> To: Dmytro Maluka <dmy@semihalf.com>; Marc Zyngier
> <maz@kernel.org>; eric.auger@redhat.com
> Cc: Dong, Eddie <eddie.dong@intel.com>; Christopherson,, Sean
> <seanjc@google.com>; kvm@vger.kernel.org; Thomas Gleixner
> <tglx@linutronix.de>; Ingo Molnar <mingo@redhat.com>; Borislav
> Petkov <bp@alien8.de>; Dave Hansen <dave.hansen@linux.intel.com>;
> x86@kernel.org; H. Peter Anvin <hpa@zytor.com>; linux-
> kernel@vger.kernel.org; Alex Williamson <alex.williamson@redhat.com>;
> Liu, Rong L <rong.l.liu@intel.com>; Zhenyu Wang
> <zhenyuw@linux.intel.com>; Tomasz Nowicki <tn@semihalf.com>;
> Grzegorz Jaszczyk <jaz@semihalf.com>; upstream@semihalf.com;
> Dmitry Torokhov <dtor@google.com>
> Subject: Re: [PATCH v2 0/5] KVM: Fix oneshot interrupts forwarding
> 
> On 8/10/22 19:02, Dmytro Maluka wrote:
> >      1. If vEOI happens for a masked vIRQ, notify resamplefd as usual,
> >         but also remember this vIRQ as, let's call it, "pending oneshot".
> >

This is the part always confuses me.   In x86 case, for level triggered
interrupt, even if it is not oneshot, there is still "unmask" and the unmask
happens in the same sequence as in oneshot interrupt, just timing is different. 
 So are you going to differentiate oneshot from "normal" level triggered
interrupt or not?   And there is any situation that vEOI happens for an unmasked
vIRQ?

 > >      2. A new physical IRQ is immediately generated, so the vIRQ is
> >         properly set as pending.
> >

I am not sure this is always the case.  For example, a device may not raise a
new interrupt until it is notified that "done reading" - by device driver
writing to a register or something when device driver finishes reading data.  So
how do you handle this situation?

> >      3. After the vIRQ is unmasked by the guest, check and find out that
> >         it is not just pending but also "pending oneshot", so don't
> >         deliver it to a vCPU. Instead, immediately notify resamplefd once
> >         again.
> >

Does this mean the change of vfio code also?  That seems the case: vfio seems
keeping its own internal "state" whether the irq is enabled or not.

Thanks,

Rong
> > In other words, don't avoid extra physical interrupts in the host
> > (rather, use those extra interrupts for properly updating the pending
> > state of the vIRQ) but avoid propagating those extra interrupts to the
> > guest.
> >
> > Does this sound reasonable to you?
> 
> Yeah, this makes sense and it lets the resamplefd set the "pending"
> status in the vGIC.  It still has the issue that the interrupt can
> remain pending in the guest for longer than it's pending on the host,
> but that can't be fixed?
> 
> Paolo


  reply	other threads:[~2022-08-11 22:41 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-05 19:39 [PATCH v2 0/5] KVM: Fix oneshot interrupts forwarding Dmytro Maluka
2022-08-05 19:39 ` [PATCH v2 1/5] KVM: x86: Move irq mask notifiers from x86 to generic KVM Dmytro Maluka
2022-08-09 20:43   ` Eric Auger
2022-08-05 19:39 ` [PATCH v2 2/5] KVM: x86: Add kvm_register_and_fire_irq_mask_notifier() Dmytro Maluka
2022-08-09 20:43   ` Eric Auger
2022-08-09 23:56     ` Dmytro Maluka
2022-08-05 19:39 ` [PATCH v2 3/5] KVM: irqfd: Postpone resamplefd notify for oneshot interrupts Dmytro Maluka
2022-08-09 20:45   ` Eric Auger
2022-08-09 23:57     ` Dmytro Maluka
2022-08-10  8:41     ` Marc Zyngier
2022-08-05 19:39 ` [PATCH v2 4/5] KVM: irqfd: Rename resampler->notifier Dmytro Maluka
2022-08-09 20:46   ` Eric Auger
2022-08-05 19:39 ` [PATCH v2 5/5] KVM: Rename kvm_irq_has_notifier() Dmytro Maluka
2022-08-08 23:26 ` [PATCH v2 0/5] KVM: Fix oneshot interrupts forwarding Dong, Eddie
2022-08-09  7:24   ` Dmytro Maluka
2022-08-09 20:01     ` Dong, Eddie
2022-08-09 23:30       ` Dmytro Maluka
2022-08-10  6:51         ` Marc Zyngier
2022-08-10  8:12           ` Eric Auger
2022-08-10 13:01             ` Marc Zyngier
2022-08-10 17:02               ` Dmytro Maluka
2022-08-11  6:48                 ` Paolo Bonzini
2022-08-11 22:40                   ` Liu, Rong L [this message]
2022-08-13 14:04                     ` Dmytro Maluka
2022-08-11 12:21                 ` Marc Zyngier
2022-08-11 13:54                   ` Dmytro Maluka
2022-08-13 12:59                     ` Dmytro Maluka
2022-08-10 17:06           ` Dmytro Maluka
2022-08-11 12:35             ` Marc Zyngier
2022-08-11 13:04               ` Dmytro Maluka
2022-08-10 17:17         ` Dong, Eddie
2022-08-10 17:34           ` Dmytro Maluka
2022-08-10 17:53             ` Dong, Eddie

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=MW3PR11MB4554AAFB43FA6B0B612150D9C7649@MW3PR11MB4554.namprd11.prod.outlook.com \
    --to=rong.l.liu@intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dmy@semihalf.com \
    --cc=dtor@google.com \
    --cc=eddie.dong@intel.com \
    --cc=eric.auger@redhat.com \
    --cc=hpa@zytor.com \
    --cc=jaz@semihalf.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=tn@semihalf.com \
    --cc=upstream@semihalf.com \
    --cc=x86@kernel.org \
    --cc=zhenyuw@linux.intel.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).