Re: xen/evtchn.c: Interrupt for port 32, but apparently not enabled; per-user 0000000012b765d1

From: James Dingwall
Date: Thu Jul 25 2024 - 09:50:25 EST


On Wed, Jul 24, 2024 at 03:55:40PM +0200, Juergen Gross wrote:
> On 24.07.24 15:25, James Dingwall wrote:
> > Hi,
> >
> > I have built a kernel derived from Ubuntu's Ubuntu-hwe-6.8-6.8.0-40.40_22.04.1
> > tag. The logs are quiet until I start the first guest which has two network
> > cards passed through. At this point the kernel log gets flooded with the
> > warning below. This appears to the same warning which this commit was
> > supposed to suppress:
> >
> > 51c23bd691c0f1fb95b29731c356c6fd69925d17: xen/evtchn: avoid WARN() when unbinding an event channel
> >
> > The tag already includes that commit and in my config:
> >
> > $ grep CONFIG_DEBUG_SHIRQ /boot/config-6.8.0-40-generic
> > # CONFIG_DEBUG_SHIRQ is not set
> >
> > Could there be a related change which also needs to be picked or is there
> > the possibility that there is another trigger?
>
> As the original reporter of the issue tested the patch to fix it,
> there seems to be another trigger. :-(

in evtchn.c `evtchn->enabled = true;` is set before `xen_irq_lateeoi()`. In
the pciback code there is `xen_pcibk_lateeoi()` which adds a conditional
around `xen_irq_lateeoi()`. Should that or perhaps just some callers set the
enabled flag for the event channel? I don't pretend to understand the code
so I might be off on the wrong path and lost in the wilderness:)

Thanks,
James