diff options
author | Ian Jackson <ian.jackson@eu.citrix.com> | 2012-01-30 15:23:38 +0000 |
---|---|---|
committer | Ian Jackson <ian.jackson@eu.citrix.com> | 2012-01-30 15:23:38 +0000 |
commit | ee8d9b684bb8199c4b2eb2da13980747fb086167 (patch) | |
tree | 80e53680ebdc860684bcad248311e53a311226f3 /tools/libxl | |
parent | eaef0894da4cec61974892502a1f77f2e0585d4d (diff) | |
download | xen-ee8d9b684bb8199c4b2eb2da13980747fb086167.tar.gz xen-ee8d9b684bb8199c4b2eb2da13980747fb086167.tar.bz2 xen-ee8d9b684bb8199c4b2eb2da13980747fb086167.zip |
libxl: domain_death_xswatch_callback: add some debug logging
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl')
-rw-r--r-- | tools/libxl/libxl.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index fa358d1d2c..2758d4c39e 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -713,15 +713,28 @@ static void domain_death_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch *w, } gotend = &domaininfos[rc]; + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, "[evg=%p:%"PRIu32"]" + " from domid=%"PRIu32" nentries=%d rc=%d", + evg, evg->domid, domid, nentries, rc); + for (;;) { - if (!evg) + if (!evg) { + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, "[evg=0] all reported"); goto all_reported; + } + + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, "[evg=%p:%"PRIu32"]" + " got=domaininfos[%d] got->domain=%ld", + evg, evg->domid, (int)(got - domaininfos), + got < gotend ? (long)got->domain : -1L); if (!rc || got->domain > evg->domid) { /* ie, the list doesn't contain evg->domid any more so * the domain has been destroyed */ libxl_evgen_domain_death *evg_next; + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, " destroyed"); + libxl_event *ev = NEW_EVENT(egc, DOMAIN_DESTROY, evg->domid); if (!ev) goto out; @@ -736,8 +749,10 @@ static void domain_death_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch *w, continue; } - if (got == gotend) + if (got == gotend) { + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, " got==gotend"); break; + } if (got->domain < evg->domid) { got++; @@ -745,12 +760,17 @@ static void domain_death_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch *w, } assert(evg->domid == got->domain); + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, " exists shutdown_reported=%d" + " dominf.flags=%x", + evg->shutdown_reported, got->flags); if (!evg->shutdown_reported && (got->flags & XEN_DOMINF_shutdown)) { libxl_event *ev = NEW_EVENT(egc, DOMAIN_SHUTDOWN, got->domain); if (!ev) goto out; + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, " shutdown reporting"); + ev->u.domain_shutdown.shutdown_reason = (got->flags >> XEN_DOMINF_shutdownshift) & XEN_DOMINF_shutdownmask; @@ -767,6 +787,8 @@ static void domain_death_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch *w, all_reported: out: + LIBXL__LOG(CTX, LIBXL__LOG_DEBUG, "domain death search done"); + CTX_UNLOCK; } |