]> xenbits.xensource.com Git - xen.git/commit
xenstore: extend the xenstore ring with a 'closing' signal
authorDavid Scott <dave.scott@citrix.com>
Thu, 25 Sep 2014 14:58:41 +0000 (15:58 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 8 Oct 2014 13:29:08 +0000 (14:29 +0100)
commit674ad2be409da77ebda3616085a2f67c72556c11
tree5f07ddbea692d333ccde06ceec4bc99e6bd3eb58
parent025a232326ed6fae55a7853262b2f09473cf7983
xenstore: extend the xenstore ring with a 'closing' signal

Hvmloader uses the xenstore ring and then tries to reset it back
to its initial state before booting the guest. Occasionally xenstored
will read the ring while it is being zeroed and conclude it has
been corrupted. This prevents PV drivers from loading in the guest.

This patch updates the xenstore ring protocol definition, enabling
a server to advertise additional features to the guest. One such feature
is defined: the ability to cleanly reset the ring including the
higher-level protocol, like an enhanced RESET_WATCHES for rings.

This patch implements the ring reconnection features in oxenstored
and hvmloader, fixing the bug.

This patch also defines an 'invalid' xenstore packet type and uses this
to poison the ring over a reconnect. This will make diagnosing this
bug much easier in future.

Signed-off-by: David Scott <dave.scott@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Reviewed-by: Jon Ludlam <jonathan.ludlam@citrix.com>
docs/misc/xenstore-ring.txt [new file with mode: 0644]
tools/firmware/hvmloader/xenbus.c
tools/ocaml/libs/xb/xb.ml
tools/ocaml/libs/xb/xb.mli
tools/ocaml/libs/xb/xs_ring.ml
tools/ocaml/libs/xb/xs_ring_stubs.c
tools/ocaml/xenstored/connection.ml
tools/ocaml/xenstored/process.ml
xen/include/public/io/xs_wire.h