[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [win-pv-devel] Advice on evtchn interrupt handling
> -----Original Message----- > From: win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx [mailto:win-pv-devel- > bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of Rafal Wojdyla > Sent: 09 December 2015 10:19 > To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Subject: [win-pv-devel] Advice on evtchn interrupt handling > > Hi, > > I found an issue in my evtchn handling in xeniface that I'm not sure how > to properly fix. Namely, the interrupt callback that's assigned for a > particular channel can be called before its queued DPC (that signals the > caller-provided event) finishes. In such case the interrupt callback > fails to insert the DPC again and an event is lost, potentially causing > a vchan "deadlock" down the way. > Hi Rafal, That shouldn't be the case. Windows de-queues a DPC before running for precisely this kind of reason. I.e. just because your DPC is running, it should not stop another from being queued. Are you definitely seeing a failure to queue even when no DPC is actually queued? What you may actually be getting caught by is evtchn auto-masking. If you have enabled auto-masking then you need to explicitly unmask at the end of your DPC. (The transmitter and receiver ring DPCs in XENVIF are a good example of this). Cheers, Paul > Any advice on how to approach this? The interrupt callback runs at > HIGH_LEVEL which is an issue when it comes to synchronization with some > other code that could take care of such "pending" events. > > Also I wonder if the kernel differentiates DPCs only by their KDPC > address, or also by arguments passed to KeInsertQueueDpc()? > > -- > RafaÅ WojdyÅa > Qubes Tools for Windows developer > https://www.qubes-os.org/ > > _______________________________________________ > win-pv-devel mailing list > win-pv-devel@xxxxxxxxxxxxxxxxxxxx > http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |