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

Introduction of stable interface between Xenstore and hypervisor

Today Xenstore is using one unstable interface to retrieve the state
of a domain (existing, dying).

In order to decouple Xenstore further from the hypervisor, a stable
interface should be established. This new interface should cover the
following functionality:

- get the needed state of a domain (existing, dying)
- get a unique identifier per domain telling Xenstore that a domid
  has been reused (today Xenstore could in theory miss this)
- provide a way to avoid having to get the state of all domains when
  a state change of a domain has been signaled (there is only an event
  "some domain has changed state" today: VIRQ_DOM_EXC)

I'm suggesting the following hypervisor modifications:

- Addition of a global 64 bit domain sequence counter. This counter
  will be incremented each time a new domain is created.
- Addition of a sequence count to struct domain. It will be set to
  the value of the new global domain sequence counter when the domain
  is being created.
- Addition of a global bitmap with one bit for each possible domid
  (resulting in a 4 kB page). Each time the state of a domain is changed
  (domain creation, shutdown, deletion) the related bit is set.
  When the VIRQ_DOM_EXC event is being registered the bitmap is reset to
  have the bits set for all existing domains.
- Addition of a new stable hypercall ("get domain state") returning the
  following information:
  + domid of a domain having the bit set in above bitmap
  + state of that domain (existing, dying)
  + sequence count of that domain
  The related bit is reset in the bitmap as a side effect of the call.

Xenstore should be changed as follows:

- At startup of Xenstore the state of all domains is being queried via
  the new hypercall. This will cover all existing domains as the bitmap
  in the hypervisor has been reset to flag all existing domains to have
  a changed state when the VIRQ_DOM_EXC has been registered by Xenstore.
- When receiving a VIRQ_DOM_EXC event the changed states of domains are
  queried via the new hypercall.

I think those modifications will cover all requirements while being
rather limited in the needed effort.



Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature



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