Daniel P. Berrange wrote:
Can you edit the src/xen_internal.c file and in the
xenHypervisorGetDomInfo()
method, add a printf() for the 'domain_flags' flags variable. IMHO the
way we deal with this isn't quite correct. We merely mask out the high
bits and then switch on the resulting value. This isn't the way the Xen
hypervisor uses this field though. Xen more or less uses the whole thing
as as bitmask, allowing near arbitrary combinations of bits to be set.
So I think what is happening is there's a combo of bits set which cause
the switch() statement to fail all cases, resulting in NOSTATE.
We'll probably need to replace the switch(domain_flags) with something
which explicitly tests for the bits we're interested in, rather than
looking at the value as a whole.
when xenHypervisorGetDomInfo() returns VIR_DOMAIN_NONE, domain_flags is 0
(sampled after the HVM bit has been masked out). So is there some other
state implied by domain_flags being 0? In all cases I have seen, the domain
is actually running -- accumulating CPU time, etc.
-----------------------------------------------------
Russ Blaine | Solaris Kernel | russell.blaine(a)sun.com