From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: Re: Can I xc_await_suspend() for a suspend event caused by another application? Date: Mon, 10 Aug 2015 12:28:09 +0300 Message-ID: <55C86EA9.2000600@bitdefender.com> References: <55B22AAC.5080808@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <55B22AAC.5080808@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org > I've noticed that the xc_suspend_evtchn_init() functions in xenguest.h > connect the client application to a guest suspend event channel, and > that it's possible to subscribe to these events, in theory even if you > never signal the channel (i.e. even if you don't issue a suspend request). > > But all the in-tree examples I've read seem to first signal the channel > and then wait on the same channel for the confirmation that the guest is > suspending. > > Can the event channel be used solely to inform a monitoring application > that _another_ application (for example, xl) has requested a suspend? Looking at the code and what documentation I could find, it turns out that not only xc_suspend_evtchn_init() has not been designed to do what I am after, but it additionally only works for (some) PV guests. I've also looked into monitoring writes to ~/control/shutdown, but that of course also only applies to PV domains. What I need is to be able to know that any domain (but mostly HVMs) is about to be suspended, so that I can do some hooks cleanup in the guest while it's still running, and I'm looking for a way to do that without modifying Xen at all, otherwise I'd need to send out a new kind of vm_event or something similar, and obviously simpler is better. Could maybe someone kindly point out a reliable way to do that with the current Xen code, if it exists and I just haven't been able to find it? Thanks, Razvan