From: Bernhard Beschow <shentey@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>,
qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>
Cc: Thomas Huth <thuth@redhat.com>, Paul Durrant <paul@xen.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
Eduardo Habkost <eduardo@habkost.net>,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Subject: Re: [PATCH] hw/i386/pc: Fix level interrupt sharing for Xen event channel GSI
Date: Wed, 08 Jan 2025 14:23:43 +0000 [thread overview]
Message-ID: <3BC1A243-5481-4902-81B6-80135577847D@gmail.com> (raw)
In-Reply-To: <a7484289fdffd85431bc6b255a59b894bc3e2d6a.camel@infradead.org>
Am 8. Januar 2025 11:26:57 UTC schrieb David Woodhouse <dwmw2@infradead.org>:
>On Wed, 2025-01-08 at 09:45 +0000, Bernhard Beschow wrote:
>>
>>
>> Am 7. Januar 2025 16:20:28 UTC schrieb David Woodhouse
>> <dwmw2@infradead.org>:
>> > On Tue, 2025-01-07 at 11:07 -0500, Michael S. Tsirkin wrote:
>> > > On Thu, Dec 19, 2024 at 05:24:11PM +0100, David Woodhouse wrote:
>> > > > From: David Woodhouse <dwmw@amazon.co.uk>
>> > > >
>> > > > The system GSIs are not designed for sharing. One device might
>> > > > assert a
>> > > > shared interrupt with qemu_set_irq() and another might deassert
>> > > > it, and
>> > > > the level from the first device is lost.
>> > > >
>> > > > This could be solved by using a multiplexer which functions as
>> > > > an OR
>> > > > gate, much like the PCI code already implements for
>> > > > pci_set_irq() for
>> > > > muxing the INTx lines.
>>
>> Just curious: Why not use that aporoach? Could
>> <https://lore.kernel.org/qemu-devel/20250108092538.11474-5-shentey@gm
>> ail.com/>
>> help?
>
>That looks very similar to hw/core/or-irq.c which rth pointed out to
>me. Is there a reason for both of them existing?
Thanks for pointing out its existence! I totally expected it to exist under hw/core/, next to split-irq. But it resides under hw/, next to irq.c...
>
>It would be theoretically possible to rework the x86 GSI handling to
>use such a thing, yes.
>
>It would be a large yak-shaving task which exceeds the time I currently
>have available for a bug fix, but I don't *always* let that stop me.
>
>More to the point though, I *still* wouldn't like the outcome. I still
>want us to have a 'resample' callback when the interrupt is
>acknowledged in the interrupt controller, to see if any of the inputs
>still want the line to be asserted.
>
>That's the only way to handle it efficiently for VFIO INTx and for the
>Xen GSI callback anyway.
Good to know. Thanks!
Best regards,
Bernhard
prev parent reply other threads:[~2025-01-08 15:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-19 16:24 [PATCH] hw/i386/pc: Fix level interrupt sharing for Xen event channel GSI David Woodhouse
2025-01-06 16:00 ` David Woodhouse
2025-01-07 16:07 ` Michael S. Tsirkin
2025-01-07 16:20 ` David Woodhouse
2025-01-08 9:45 ` Bernhard Beschow
2025-01-08 11:26 ` David Woodhouse
2025-01-08 14:23 ` Bernhard Beschow [this message]
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=3BC1A243-5481-4902-81B6-80135577847D@gmail.com \
--to=shentey@gmail.com \
--cc=dwmw2@infradead.org \
--cc=eduardo@habkost.net \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@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.