From 27ce9d49d0a57d0bd18dcea483000bc041b55a3c Mon Sep 17 00:00:00 2001 From: Jonathan Davies Date: Fri, 7 Apr 2017 14:27:20 +0100 Subject: [PATCH] oxenstored: save remote evtchn port, not local port Previously, Domain.dump output the number of the local port corresponding to each domain's event-channel. However, when oxenstored exits, it closes /dev/xen/evtchn which causes the kernel to close the local port (evtchn_release), so this port is no longer useful. Instead, store the remote port. This can be used to reconnect the event-channel by binding the original remote port to a fresh local port. Indeed, the logic for parsing the stored state already expects a remote port as it passes the parsed port number to Domain.make (via Domains.create), which takes a remote port. Signed-off-by: Jonathan Davies Reviewed-by: Wei Liu Reviewed-by: Christian Lindig Release-acked-by: Julien Grall --- tools/ocaml/xenstored/domain.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ocaml/xenstored/domain.ml b/tools/ocaml/xenstored/domain.ml index 4515650d51..eda2ea91af 100644 --- a/tools/ocaml/xenstored/domain.ml +++ b/tools/ocaml/xenstored/domain.ml @@ -62,7 +62,7 @@ let string_of_port = function | Some x -> string_of_int (Xeneventchn.to_int x) let dump d chan = - fprintf chan "dom,%d,%nd,%s\n" d.id d.mfn (string_of_port d.port) + fprintf chan "dom,%d,%nd,%d\n" d.id d.mfn d.remote_port let notify dom = match dom.port with | None -> -- 2.30.2