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

Re: [PATCH v2 09/13] tools/xenstore: add TDB access trace support



On 20.02.23 23:59, Julien Grall wrote:
Hi,

On 20/01/2023 10:00, Juergen Gross wrote:
Add a new trace switch "tdb" and the related trace calls.

The "tdb" switch is off per default.

Signed-off-by: Juergen Gross <jgross@xxxxxxxx>

With one remark (see below):

Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx>

---
  tools/xenstore/xenstored_core.c        | 8 +++++++-
  tools/xenstore/xenstored_core.h        | 6 ++++++
  tools/xenstore/xenstored_transaction.c | 7 ++++++-
  3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c
index 558ef491b1..49e196e7ae 100644
--- a/tools/xenstore/xenstored_core.c
+++ b/tools/xenstore/xenstored_core.c
@@ -589,6 +589,8 @@ static void get_acc_data(TDB_DATA *key, struct node_account_data *acc)
          if (old_data.dptr == NULL) {
              acc->memory = 0;
          } else {
+            trace_tdb("read %s size %zu\n", key->dptr,
+                  old_data.dsize + key->dsize);
              hdr = (void *)old_data.dptr;
              acc->memory = old_data.dsize;
              acc->domid = hdr->perms[0].id;
@@ -655,6 +657,7 @@ int do_tdb_write(struct connection *conn, TDB_DATA *key, TDB_DATA *data,
          errno = EIO;
          return errno;
      }
+    trace_tdb("store %s size %zu\n", key->dptr, data->dsize + key->dsize);
      if (acc) {
          /* Don't use new_domid, as it might be a transaction node. */
@@ -682,6 +685,7 @@ int do_tdb_delete(struct connection *conn, TDB_DATA *key,
          errno = EIO;
          return errno;
      }
+    trace_tdb("delete %s\n", key->dptr);
      if (acc->memory) {
          domid = get_acc_domid(conn, key, acc->domid);
@@ -731,6 +735,8 @@ struct node *read_node(struct connection *conn, const void *ctx,
          goto error;
      }
+    trace_tdb("read %s size %zu\n", key.dptr, data.dsize + key.dsize);
+
      node->parent = NULL;
      talloc_steal(node, data.dptr);
@@ -2746,7 +2752,7 @@ static void set_quota(const char *arg, bool soft)
  /* Sorted by bit values of TRACE_* flags. Flag is (1u << index). */
  const char *const trace_switches[] = {
-    "obj", "io", "wrl", "acc",
+    "obj", "io", "wrl", "acc", "tdb",
      NULL
  };
diff --git a/tools/xenstore/xenstored_core.h b/tools/xenstore/xenstored_core.h
index 3e0734a6c6..419a144396 100644
--- a/tools/xenstore/xenstored_core.h
+++ b/tools/xenstore/xenstored_core.h
@@ -303,8 +303,14 @@ extern unsigned int trace_flags;
  #define TRACE_IO    0x00000002
  #define TRACE_WRL    0x00000004
  #define TRACE_ACC    0x00000008
+#define TRACE_TDB    0x00000010
  extern const char *const trace_switches[];
  int set_trace_switch(const char *arg);

Add a newline here.

Okay.


Juergen

Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


 


Rackspace

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