From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Fritsch Subject: Re: [PATCH RFC] virtio-pci: share config interrupt between virtio devices Date: Tue, 23 Sep 2014 22:47:41 +0200 Message-ID: <2448558.DYYccbiYmi@k> References: <1409550114-8186-1-git-send-email-akong@redhat.com> <1521507.s7iVWsv4g7@k> <20140921102106.GA4303@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: Amos Kong , virtualization@lists.linux-foundation.org, rusty@rustcorp.com.au, kvm@vger.kernel.org, jasowang@redhat.com, penberg@iki.fi, sasha.levin@oracle.com, will.deacon@arm.com To: "Michael S. Tsirkin" Return-path: Received: from eru.sfritsch.de ([188.40.99.202]:52690 "EHLO eru.sfritsch.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756367AbaIWUsC (ORCPT ); Tue, 23 Sep 2014 16:48:02 -0400 In-Reply-To: <20140921102106.GA4303@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Sunday 21 September 2014 13:21:06, Michael S. Tsirkin wrote: > On Sun, Sep 21, 2014 at 11:36:44AM +0200, Stefan Fritsch wrote: > > On Sunday 21 September 2014 11:09:14, Michael S. Tsirkin wrote: > > > On Thu, Sep 18, 2014 at 09:18:37PM +0200, Stefan Fritsch wrote: > > > > On Monday 01 September 2014 09:37:30, Michael S. Tsirkin wrote: > > > > > Why do we need INT#x? > > > > > How about setting IRQF_SHARED for the config interrupt > > > > > while using MSI-X? You'd have to read ISR to check that the > > > > > interrupt was intended for your device. > > > > > > > > > > > > > > > > The virtio 0.9.5 spec says that ISR is "unused" when in MSI-X > > > > mode. I don't think that you can depend on the device to set > > > > the > > > > configuration changed bit. > > > > The virtio 1.0 spec seems to have fixed that. > > > > > > > > > > > > Yes, virtio 0.9.5 has this bug. But in practice qemu always set > > > this bit, so for qemu we could do that > > > unconditionally. Pekka's lkvm tool doesn't > > > unfortunately. It's easy to fix that, but it would be nicer to > > > additionally probe for old versions of the tool, and disable > > > IRQF_SHARED in that case. > > > > > > > > What about other implementations? I think Linux should try to > > conform to the spec so that all device implementations which > > conform to the spec just work. > > > > > > > > One implementation that comes to mind is virtualbox. But from a > > quick look at the source, it seems that it sets the ISR bit > > always, too. And it uses qemu's subsystem vendor id. > > > > > > > > But there are other implementations. For example bhyve. > > I couldn't find any code in bhyve that sets VTCFG_ISR_CONF_CHANGED. > Maybe it doesn't generate config changed interrupts? > > bhyve sets subsystem vendor to 0 apparently? > We could use that to detect it. My point was that there are many virtio implementations by now and you can't assume you know all of them. > But maybe we should just make it a 1.0 only feature. FWIW, I think that would be the better option.