[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NetBSD dom0 PVH: hardware interrupts stalls


  • To: Manuel Bouyer <bouyer@xxxxxxxxxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Wed, 18 Nov 2020 11:00:25 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gkOofeLWJnU1vVNmEllAyVXQXCX4Pxltzv4G56p6x0o=; b=atJ9+7UQr9MQWMzlNJTfFutg5JnkHN5qtNBygS7aaC5aJN46fnP7LkaJUbFTiUbNE4I7nEmbXU3qrMkUIsJOs14hX7kG/WXizAD6AwJbb6CHgJj1Z2WDCDALnNuNeoVsWVuL3i++2CXJsGX2kVuA1RF4pxdVpCbH3fBSlTDuMkccqx8VLdRQgHJ6Ow2q1SSKn1R+wJXd9A9CT8kVzewdQP+yCxLWi3N8IK3T0tHURVS+y5wWwDwzwnCBAyXAhHz1iHN3pQBTmc8h5cSBH2DM8CNpkjjLCyrcxSd6ab1dWdvLLu/aObRFT0FKIeOxzYOrWpPSP5KOWPELF46/frKxiQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gCIJY4sk+KUz3bdEuUk97Qeo50zU7NZO4d8AuL46H6FBFJ8XGv2v622lR4aewcQlgVlu1f2NqkHLy44j6WC3VQDkDj0RNFar9055x5DxORds67fhoyQpQuVyPn4ksw1utyFpvgUBmDpNrOGbu/C+oYzZ2cMiWR7faqq+KwpfCc+cnFv/cF/LwFIiAD0NO4SDLVoYq+V2F3Q0l8wYtGJVtazeFaEPHmOWoJUOwJ3EX/71iMJbyjWG+Y3fH62Isqpip6d4EPHsYDkQkEIiZAQWf43vopjNu/yRxEYjt8UYg1Y+OaLAzBOivy/mlaTTsQosP2o0aofmUUMVjow8eFlh5Q==
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 18 Nov 2020 10:00:38 +0000
  • Ironport-sdr: N40f+M0a68KvLHsb1kObzbG6XV4Y2vkW+MlNxAA70/U7kmO6lhqwJTDLG+R2t1Nntobr7GbWII jbJJc20jZZhGGdvoJVq/kKUbtIP2C8kewAnQUNZtnJkl8EUFnYa8lc7ISJ/koZJDz7CJmzti6X XPFMBYCPu2dkuPhrMrWNl+5+5lymHEqhjzwURc+/YjCqkEx9/aKAs2yJYGmYADfT1Ye99U4EG4 cT15XAc42EUWEevcDBomeyFGcHpgCQT4uRToZ/yUZ82Ztq03152IcbfClanfsVUwNw6E5QkjTp Eiw=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Wed, Nov 18, 2020 at 10:24:25AM +0100, Manuel Bouyer wrote:
> On Wed, Nov 18, 2020 at 09:57:38AM +0100, Roger Pau Monné wrote:
> > On Tue, Nov 17, 2020 at 05:40:33PM +0100, Manuel Bouyer wrote:
> > > On Tue, Nov 17, 2020 at 04:58:07PM +0100, Roger Pau Monné wrote:
> > > > [...]
> > > > 
> > > > I have attached a patch below that will dump the vIO-APIC info as part
> > > > of the 'i' debug key output, can you paste the whole output of the 'i'
> > > > debug key when the system stalls?
> > > 
> > > see attached file. Note that the kernel did unstall while 'i' output was
> > > being printed, so it is mixed with some NetBSD kernel output.
> > > The idt entry of the 'ioapic2 pin2' interrupt is 103 on CPU 0.
> > > 
> > > I also put the whole sequence at
> > > http://www-soc.lip6.fr/~bouyer/xen-log3.txt
> > 
> > On one of the instances the pin shows up as masked, but I'm not sure
> > if that's relevant since later it shows up as unmasked. Might just be
> > part of how NetBSD handles such interrupts.
> 
> Yes, NetBSD can mask an interrupt source if the interrupts needs to be 
> delayed.
> It will be unmasked once the interrupt has been handled.

Yes, I think that's roughly the same model that FreeBSD uses for
level IO-APIC interrupts: mask it until the handlers have been run.

> Would it be possible that Xen misses an unmask write, or fails to
> call the vector if the interrupt is again pending at the time of the
> unmask ?

Well, it should work properly, but we cannot discard anything.

> > [...]
> > On a maybe unrelated question, how do you setup the event channel
> > callback, is it using HVM_PARAM_CALLBACK_IRQ and
> > HVM_PARAM_CALLBACK_TYPE_VECTOR?
> 
> Yes, the code is at
> https://github.com/NetBSD/src/blob/f9a54eaecfb47bce597f72f6cae8861f4d486eb4/sys/arch/xen/xen/hypervisor.c#L457
> 
> > 
> > Are you EOI'ing such vector on the local APIC when servicing the
> > interrupt?
> 
> I think it's OK. the code is at
> https://github.com/NetBSD/src/blob/f9a54eaecfb47bce597f72f6cae8861f4d486eb4/sys/arch/amd64/amd64/vector.S#L770

Yes, it's fine as you also have support for the newly per-CPU vector
callback which does require an EOI.

Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.