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

Re: [Xen-users] 'xm list' states

Petersson, Mats wrote:
'c' (crashed) - The domain has crashed.
- If i do 'echo 1 > /proc/balloon' inside a unprivileged domain, i
  will get a kernel panic. But the state says nothing about that? The
  domain is definitively crashed, but the xm list command says nothing
  about that. Why?

It may be that the crash isn't detected properly by hypervisor - I think
this may only work under some circumstances. I don't know for sure, I'm
just guessing here.

A crash is when the domain does something that it shouldn't supposed to do and the hypervisor has to kill it. I imagine that an OOM condition in the guest will invoke the normal shutdown routines which would explain why the state isn't crashed.

'd' (dying) - The domain is in the process of dying.
- Well, poor little domain, but what does that mean?

Something has told the domain to "kill itself" (such as "xm
shutdown/destroy", but it's not yet disappeared. It's probably there for
the purpose of avoiding race-conditions where something is killing the
domain, and something else is talking to it (for example disk accesses),
and we don't want to retry operations that fail because the domain is
disappearing - where it would make sense to retry it on a "living"

Actually, dying specifically means that xc_domain_destroy() has been invoked on a domain. In turn, this means that the domain's resources have been deallocated. The reason this state is needed is because of the way memory sharing works. If another domain maps a portion of a guests memory, then that domain can not be completely removed from the system until the domain unmaps that memory (since you can not forcefully break that mapping).

If you ever see a domain in a dying state for more than a moment, chances are, it's a zombie and there's a bug somewhere keeping a domain from unmapping a small portion of the guests memory.

The 's' flag means the domain is in the shutdown state. The shutdown state is initiated when the guest signals to the hypervisor to put itself in the shutdown state. Once in the shutdown state, a domain cannot escape from it. When you do something like an xm shutdown, what happens is that you signal to the guest to do a shutdown, it puts itself in the 's' state, the control tools see that the domain has entered a shutdown state, and signal to the appropriate backend drivers to release the guests memory. Then, the control tools do a destroy() on the domain which will cause it to actually disappear.

There a few substates associated with the shutdown state: halt, reboot, and suspend. Halt and reboot are rather obvious (a guest wishes to be halted or rebooted). The suspend state is used for save/restore and migration. Before the guest enteres the suspend substate, it first canonicalizes any of it's internal PFN references and jumps to a special location in the kernel. What's special about this is that the domain's image can now be safely copied into a new domain shell and when execution begins again, the kernel will start a recovery routine that reinitializes devices and internal PFNs.

You cannot unsuspend a domain in place though which is certainly a disadvantage in the current design (as it prevents light weight checkpointing). The same applies to rebooting which is a little unfortunate.


Anthony Liguori

Maybe anybody here who can clearify the meanings of the state. The manual page is not very helpful.

I hope this is of some help.
Many Thanks and greetings,
Timo Benk
PGP Public Key: http://vs241071.vserver.de/timo_benk_gpg_key.asc

Xen-users mailing list

Xen-users mailing list

Xen-users mailing list



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