Skip to content
This repository has been archived by the owner on Jul 4, 2022. It is now read-only.

Commit

Permalink
EOS-13990: NFS ADDB: Tracepointsfor all ATTR operations (#22)
Browse files Browse the repository at this point in the history
Signed-off-by: vimalraghwani20 <vimal.raghwani@seagate.com>
  • Loading branch information
vimalraghwani20 committed Oct 19, 2020
1 parent 43f724a commit a21f292
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 29 deletions.
41 changes: 39 additions & 2 deletions src/common/motr/m0common.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#include "lib/thread.h"
#include "m0common.h"
#include <motr/helpers/helpers.h>
#include "operation.h"

/* Key Iterator */

Expand All @@ -67,18 +68,28 @@ void m0_key_iter_fini(struct kvstore_iter *iter)
{
struct m0_key_iter_priv *priv = m0_key_iter_priv(iter);

perfc_trace_inii(PFT_M0_KEY_ITER_FINISH, PEM_NFS_TO_MOTR);
if (!priv->initialized)
goto out;

m0_bufvec_free(&priv->key);
m0_bufvec_free(&priv->val);

if (priv->op) {
perfc_trace_attr(PEA_M0_OP_SM_ID, priv->op->op_sm.sm_id);
perfc_trace_attr(PEA_M0_OP_SM_STATE, priv->op->op_sm.sm_state);

perfc_trace_attr(PEA_M0_OP_FINISH_START);
m0_op_fini(priv->op);
perfc_trace_attr(PEA_M0_OP_FINISH_END);

perfc_trace_attr(PEA_M0_OP_FREE_START);
m0_op_free(priv->op);
perfc_trace_attr(PEA_M0_OP_FREE_END);
}

out:
perfc_trace_finii(PERFC_TLS_POP_DONT_VERIFY);
return;
}

Expand All @@ -92,6 +103,7 @@ bool m0_key_iter_find(struct kvstore_iter *iter, const void* prefix,
struct m0_idx *index = iter->idx.index_priv;
int rc;

perfc_trace_inii(PFT_M0_KEY_ITER_FIND, PEM_NFS_TO_MOTR);
if (prefix_len == 0)
rc = m0_bufvec_empty_alloc(key, 1);
else
Expand All @@ -107,17 +119,26 @@ bool m0_key_iter_find(struct kvstore_iter *iter, const void* prefix,

memcpy(priv->key.ov_buf[0], prefix, prefix_len);

perfc_trace_attr(PEA_M0_IDX_OP_START);
rc = m0_idx_op(index, M0_IC_NEXT, &priv->key, &priv->val,
priv->rcs, 0, op);
perfc_trace_attr(PEA_M0_IDX_OP_END);

if (rc != 0) {
goto out_free_val;
}


perfc_trace_attr(PEA_M0_OP_LAUNCH_START);
m0_op_launch(op, 1);
perfc_trace_attr(PEA_M0_OP_LAUNCH_END);

perfc_trace_attr(PEA_M0_OP_WAIT_START);
rc = m0_op_wait(*op, M0_BITS(M0_OS_STABLE),
M0_TIME_NEVER);
perfc_trace_attr(PEA_M0_OP_WAIT_END);

perfc_trace_attr(PEA_M0_OP_SM_ID, (*op)->op_sm.sm_id);
perfc_trace_attr(PEA_M0_OP_SM_STATE, (*op)->op_sm.sm_state);

if (rc != 0) {
goto out_free_op;
Expand All @@ -135,8 +156,13 @@ bool m0_key_iter_find(struct kvstore_iter *iter, const void* prefix,

out_free_op:
if (op && *op) {
perfc_trace_attr(PEA_M0_OP_FINISH_START);
m0_op_fini(*op);
perfc_trace_attr(PEA_M0_OP_FINISH_END);

perfc_trace_attr(PEA_M0_OP_FREE_START);
m0_op_free(*op);
perfc_trace_attr(PEA_M0_OP_FREE_END);
}

out_free_val:
Expand All @@ -151,7 +177,7 @@ bool m0_key_iter_find(struct kvstore_iter *iter, const void* prefix,
}

iter->inner_rc = rc;

perfc_trace_finii(PERFC_TLS_POP_DONT_VERIFY);
return rc == 0;
}

Expand All @@ -177,23 +203,33 @@ bool m0_key_iter_next(struct kvstore_iter *iter)
struct m0_idx *index = iter->idx.index_priv;
bool can_get_next = false;

perfc_trace_inii(PFT_M0_KEY_ITER_NEXT, PEM_NFS_TO_MOTR);
assert(priv->initialized);

/* Motr API: "'vals' vector ... should contain NULLs" */
m0_bufvec_free_data(&priv->val);

perfc_trace_attr(PEA_M0_IDX_OP_START);
iter->inner_rc = m0_idx_op(index, M0_IC_NEXT,
&priv->key, &priv->val, priv->rcs,
M0_OIF_EXCLUDE_START_KEY, &priv->op);
perfc_trace_attr(PEA_M0_IDX_OP_END);

if (iter->inner_rc != 0) {
goto out;
}

perfc_trace_attr(PEA_M0_OP_LAUNCH_START);
m0_op_launch(&priv->op, 1);
perfc_trace_attr(PEA_M0_OP_LAUNCH_END);

perfc_trace_attr(PEA_M0_OP_WAIT_START);
iter->inner_rc = m0_op_wait(priv->op, M0_BITS(M0_OS_STABLE),
M0_TIME_NEVER);
perfc_trace_attr(PEA_M0_OP_WAIT_END);

perfc_trace_attr(PEA_M0_OP_SM_ID, priv->op->op_sm.sm_id);
perfc_trace_attr(PEA_M0_OP_SM_STATE, priv->op->op_sm.sm_state);
if (iter->inner_rc != 0) {
goto out;
}
Expand All @@ -204,6 +240,7 @@ bool m0_key_iter_next(struct kvstore_iter *iter)
can_get_next = true;

out:
perfc_trace_finii(PERFC_TLS_POP_DONT_VERIFY);
return can_get_next;
}

Expand Down
Loading

0 comments on commit a21f292

Please sign in to comment.