From 0742b0a081c268e51e1a0427f7cc8f2bd5096570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Thu, 24 Aug 2023 13:39:39 +0100 Subject: [PATCH] tools/oxenstored: Additional debugging commands MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These were added to aid security development, and are useful generally for debugging. Signed-off-by: Edwin Török Signed-off-by: Andrew Cooper Acked-by: Christian Lindig --- tools/ocaml/xenstored/process.ml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tools/ocaml/xenstored/process.ml b/tools/ocaml/xenstored/process.ml index 2e62c7a10e..432d66321c 100644 --- a/tools/ocaml/xenstored/process.ml +++ b/tools/ocaml/xenstored/process.ml @@ -235,6 +235,23 @@ let do_debug con t _domains cons data = | "watches" :: _ -> let watches = Connections.debug cons in Some (watches ^ "\000") + | "compact" :: _ -> + Gc.compact (); + Some "Compacted" + | "trim" :: _ -> + History.trim (); + Some "trimmed" + | "txn" :: domid :: _ -> + let domid = int_of_string domid in + let con = Connections.find_domain cons domid in + let b = Buffer.create 128 in + let () = con.transactions |> Hashtbl.iter @@ fun id tx -> + Printf.bprintf b "paths: %d, operations: %d, quota_reached: %b\n" + (List.length tx.Transaction.paths) + (List.length tx.Transaction.operations) + tx.Transaction.quota_reached + in + Some (Buffer.contents b) | "xenbus" :: domid :: _ -> let domid = int_of_string domid in let con = Connections.find_domain cons domid in