src/amf/amfd/ckpt_dec.cc             |   2 +
 src/amf/amfd/clm.cc                  |   2 +
 src/amf/amfd/csi.cc                  |   7 ++++-
 src/amf/amfd/node.cc                 |   4 ++-
 src/amf/amfd/nodegroup.cc            |   4 ++-
 src/amf/amfd/si_dep.cc               |   1 +
 src/amf/amfnd/pgdb.cc                |   4 +-
 src/amf/amfnd/su.cc                  |   2 +
 src/base/logtrace.c                  |  18 +++++++++---
 src/base/logtrace.h                  |  48 ++++++++++++++++++++++++++++++++++++
 src/imm/agent/imma_init.cc           |   7 +++-
 src/imm/agent/imma_om_api.cc         |   2 -
 src/imm/immnd/ImmModel.cc            |  16 ++++++------
 src/imm/immpbed/immpbe_daemon.cc     |   4 ++-
 src/log/logd/lgs_imm_gcfg.cc         |   2 +
 src/log/logd/lgs_main.cc             |   2 +
 src/log/logd/lgs_mbcsv.cc            |   2 +
 src/ntf/ntfd/NtfClient.cc            |   2 +-
 src/smf/smfd/SmfCampaignXmlParser.cc |   3 ++
 src/smf/smfd/SmfUpgradeStep.cc       |   3 ++
 20 files changed, 111 insertions(+), 24 deletions(-)


diff --git a/src/amf/amfd/ckpt_dec.cc b/src/amf/amfd/ckpt_dec.cc
--- a/src/amf/amfd/ckpt_dec.cc
+++ b/src/amf/amfd/ckpt_dec.cc
@@ -370,6 +370,8 @@ static uint32_t dec_app_config(AVD_CL_CB
        uint32_t status = NCSCC_RC_SUCCESS;
        AVD_APP app;
        
+       TRACE_ENTER();
+
        osafassert(dec->i_action == NCS_MBCSV_ACT_UPDATE);
        decode_app(&dec->i_uba, &app);
        
diff --git a/src/amf/amfd/clm.cc b/src/amf/amfd/clm.cc
--- a/src/amf/amfd/clm.cc
+++ b/src/amf/amfd/clm.cc
@@ -83,6 +83,8 @@ static void clm_node_exit_validate(AVD_A
        bool reject = false;
        SaAisErrorT rc = SA_AIS_OK;
 
+       TRACE_ENTER();
+
        /*
         * Reject validate step on self node as this is active controller 
         */
diff --git a/src/amf/amfd/csi.cc b/src/amf/amfd/csi.cc
--- a/src/amf/amfd/csi.cc
+++ b/src/amf/amfd/csi.cc
@@ -831,6 +831,7 @@ static void ccb_apply_delete_hdlr(CcbUti
 
        bool first_sisu = true;
 
+       TRACE_ENTER();
        if (avd_cb->avail_state_avd != SA_AMF_HA_ACTIVE) { 
                /* A double check whether csi has been deleted from DB or not 
and whether pointer stored userData 
                   is still valid. */
@@ -851,7 +852,7 @@ static void ccb_apply_delete_hdlr(CcbUti
                goto done;
        }
 
-        TRACE_ENTER2("'%s'", csi ? csi->name.c_str() : nullptr);
+        TRACE("'%s'", csi ? csi->name.c_str() : nullptr);
 
        /* Check whether si has been assigned to any SU. */
        if ((nullptr != csi->si->list_of_sisu) && 
@@ -992,6 +993,8 @@ static void csi_ccb_apply_modify_hdlr(st
  **************************************************************************/
 static void csi_ccb_apply_create_hdlr(struct CcbUtilOperationData *opdata)
 {
+       TRACE_ENTER();
+
        AVD_CSI *csi = nullptr;
        if ((csi = csi_db->find(Amf::to_string(&opdata->objectName))) == 
nullptr) {
                /* this check is added because, some times there is
@@ -1027,6 +1030,8 @@ SaAisErrorT csi_assign_hdlr(AVD_CSI *csi
        AVD_COMP_CSI_REL *compcsi;
        SaAisErrorT rc = SA_AIS_ERR_NO_OP;
 
+       TRACE_ENTER();
+
        /* Check whether csi assignment is already in progress and if yes, then 
return.
           This csi will be assigned after the undergoing csi assignment gets 
over.*/
        if (csi->si->list_of_sisu != nullptr) {
diff --git a/src/amf/amfd/node.cc b/src/amf/amfd/node.cc
--- a/src/amf/amfd/node.cc
+++ b/src/amf/amfd/node.cc
@@ -891,7 +891,9 @@ static void node_ccb_apply_cb(CcbUtilOpe
 void node_admin_state_set(AVD_AVND *node, SaAmfAdminStateT admin_state)
 {
        SaAmfAdminStateT old_state  = node->saAmfNodeAdminState;
-       
+
+       TRACE_ENTER();
+
        if (old_state == admin_state)
                return;
        osafassert(admin_state <= SA_AMF_ADMIN_SHUTTING_DOWN);
diff --git a/src/amf/amfd/nodegroup.cc b/src/amf/amfd/nodegroup.cc
--- a/src/amf/amfd/nodegroup.cc
+++ b/src/amf/amfd/nodegroup.cc
@@ -467,13 +467,15 @@ static SaAisErrorT ng_ccb_completed_dele
        AVD_AVND *node;
        AVD_AMF_NG *ng = avd_ng_get(Amf::to_string(&opdata->objectName));
 
+       TRACE_ENTER();
+
         if (ng == nullptr) {
                LOG_WA("Could not find %s in nodegroup_db", 
osaf_extended_name_borrow(&opdata->objectName));
                TRACE_LEAVE();
                return SA_AIS_OK;
         }
 
-       TRACE_ENTER2("%u", ng->number_nodes());
+       TRACE("%u", ng->number_nodes());
        std::set<std::string>::const_iterator iter;
        if ((ng->saAmfNGAdminState != SA_AMF_ADMIN_LOCKED) &&
                        (ng->saAmfNGAdminState != SA_AMF_ADMIN_UNLOCKED) && 
diff --git a/src/amf/amfd/si_dep.cc b/src/amf/amfd/si_dep.cc
--- a/src/amf/amfd/si_dep.cc
+++ b/src/amf/amfd/si_dep.cc
@@ -1426,6 +1426,7 @@ void avd_sidep_start_tolerance_timer_for
 {
        AVD_SI_DEP *si_dep_rec;
 
+       TRACE_ENTER();
        TRACE("dep_si:%s 
spons_si:%s",dep_si->name.c_str(),spons_si->name.c_str());
 
        si_dep_rec = sidep_db_find(spons_si->name, dep_si->name);
diff --git a/src/amf/amfnd/pgdb.cc b/src/amf/amfnd/pgdb.cc
--- a/src/amf/amfnd/pgdb.cc
+++ b/src/amf/amfnd/pgdb.cc
@@ -385,7 +385,7 @@ AVND_PG_MEM *avnd_pgdb_mem_rec_rmv(AVND_
 void avnd_pgdb_mem_rec_del(AVND_CB *cb, AVND_PG *pg, const std::string& 
comp_name)
 {
        AVND_PG_MEM *pg_mem = 0;
-       TRACE_LEAVE();
+       TRACE_ENTER();
 
        /* remove the pg mem record */
        pg_mem = avnd_pgdb_mem_rec_rmv(cb, pg, comp_name);
@@ -415,7 +415,7 @@ void avnd_pgdb_mem_rec_del(AVND_CB *cb, 
 void avnd_pgdb_mem_rec_del_all(AVND_CB *cb, AVND_PG *pg)
 {
        AVND_PG_MEM *curr = 0;
-       TRACE_LEAVE();
+       TRACE_ENTER();
 
        while (0 != (curr = (AVND_PG_MEM 
*)m_NCS_DBLIST_FIND_FIRST(&pg->mem_list)))
                avnd_pgdb_mem_rec_del(cb, pg, 
Amf::to_string(&curr->info.member.compName));
diff --git a/src/amf/amfnd/su.cc b/src/amf/amfnd/su.cc
--- a/src/amf/amfnd/su.cc
+++ b/src/amf/amfnd/su.cc
@@ -907,6 +907,8 @@ static uint32_t avnd_process_comp_csi_ms
   uint32_t rc = NCSCC_RC_SUCCESS;
   std::map<MDS_DEST, MDS_SVC_PVT_SUB_PART_VER>::iterator iter; 
 
+  TRACE_ENTER();
+  
   /*
      Callback is sent in the following cases:
      -a PI comp: CSI is assigned to this component.
diff --git a/src/base/logtrace.c b/src/base/logtrace.c
--- a/src/base/logtrace.c
+++ b/src/base/logtrace.c
@@ -80,7 +80,7 @@ static void sighup_handler(int sig)
        setlogmask(logmask);
 }
 
-static void output(const char *file, unsigned int line, int priority, int 
category, const char *format, va_list ap)
+void output_(const char *file, unsigned int line, int priority, int category, 
const char *format, va_list ap)
 {
        int i;
        struct timeval tv;
@@ -162,23 +162,31 @@ void _logtrace_log(const char *file, uns
        if (!(category_mask & (1 << CAT_LOG)))
                goto done;
 
-       output(file, line, priority, CAT_LOG, format, ap2);
+       output_(file, line, priority, CAT_LOG, format, ap2);
 
 done:
        va_end(ap);
        va_end(ap2);
 }
 
+bool is_trace_enabled_(unsigned int category)
+{
+       /* Filter on category */
+       if (!(category_mask & (1 << category)))
+               return false;
+       else
+               return true;
+}
+
 void _logtrace_trace(const char *file, unsigned int line, unsigned int 
category, const char *format, ...)
 {
        va_list ap;
 
-       /* Filter on category */
-       if (!(category_mask & (1 << category)))
+       if (is_trace_enabled_(category) == false)
                return;
 
        va_start(ap, format);
-       output(file, line, LOG_DEBUG, category, format, ap);
+       output_(file, line, LOG_DEBUG, category, format, ap);
        va_end(ap);
 }
 
diff --git a/src/base/logtrace.h b/src/base/logtrace.h
--- a/src/base/logtrace.h
+++ b/src/base/logtrace.h
@@ -34,6 +34,7 @@
 #define BASE_LOGTRACE_H_
 
 #include <syslog.h>
+#include <stdarg.h>
 #include "base/ncsgl_defs.h"
 #ifdef  __cplusplus
 extern "C" {
@@ -122,6 +123,9 @@ extern void _logtrace_log(const char *fi
 extern void _logtrace_trace(const char *file, unsigned int line, unsigned int 
category,
                             const char *format, ...) __attribute__ 
((format(printf, 4, 5)));
 
+extern bool is_trace_enabled_(unsigned int category);
+extern void output_(const char *file, unsigned int line, int priority, int 
category, const char *format, va_list ap);
+
 /* LOG API. Use same levels as syslog */
 #define LOG_EM(format, args...) _logtrace_log(__FILE__, __LINE__, LOG_EMERG, 
(format), ##args)
 #define LOG_AL(format, args...) _logtrace_log(__FILE__, __LINE__, LOG_ALERT, 
(format), ##args)
@@ -141,10 +145,54 @@ extern void _logtrace_trace(const char *
 #define TRACE_6(format, args...) _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE6, (format), ##args)
 #define TRACE_7(format, args...) _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE7, (format), ##args)
 #define TRACE_8(format, args...) _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE8, (format), ##args)
+
+#ifdef  __cplusplus
+class Trace {
+ public:
+  Trace() {}
+  ~Trace() {
+    if (!trace_leave_called && is_trace_enabled_(CAT_TRACE_LEAVE)) {
+      va_list ap;
+      output_(file_, 0, LOG_DEBUG, CAT_TRACE_LEAVE, function_, ap);
+    }
+  }
+  void trace(const char *file, const char *function, unsigned int line, 
unsigned int category, const char *format, ...) {
+    va_list ap;
+    if (is_trace_enabled_(category)) {
+      file_ = file;
+      function_ = function;
+      va_start(ap, format);
+      output_(file, line, LOG_DEBUG, category, format, ap);
+      va_end(ap);
+    }
+  }
+
+  void trace_leave(const char *file, unsigned int line, unsigned int category, 
const char *format, ...) {
+    va_list ap;
+    if (is_trace_enabled_(category)) {
+      va_start(ap, format);
+      trace_leave_called = true;
+      output_(file, line, LOG_DEBUG, category, format, ap);
+      va_end(ap);
+    }
+  }
+ private:
+  bool trace_leave_called {false};
+  const char* file_{nullptr};
+  const char* function_{nullptr};
+};
+
+#define TRACE_ENTER()                 Trace t_; t_.trace(__FILE__, 
__FUNCTION__, __LINE__, CAT_TRACE_ENTER, "%s ", __FUNCTION__)
+#define TRACE_ENTER2(format, args...) Trace t_; t_.trace(__FILE__, 
__FUNCTION__, __LINE__, CAT_TRACE_ENTER, "%s: " format, __FUNCTION__, ##args)
+
+#define TRACE_LEAVE()                 t_.trace_leave(__FILE__, __LINE__, 
CAT_TRACE_LEAVE, "%s ", __FUNCTION__)
+#define TRACE_LEAVE2(format, args...) t_.trace_leave(__FILE__, __LINE__, 
CAT_TRACE_LEAVE, "%s: " format, __FUNCTION__, ##args)
+#else
 #define TRACE_ENTER()                 _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE_ENTER, "%s ", __FUNCTION__)
 #define TRACE_ENTER2(format, args...) _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE_ENTER, "%s: " format, __FUNCTION__, ##args)
 #define TRACE_LEAVE()                 _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE_LEAVE, "%s ", __FUNCTION__)
 #define TRACE_LEAVE2(format, args...) _logtrace_trace(__FILE__, __LINE__, 
CAT_TRACE_LEAVE, "%s: " format, __FUNCTION__, ##args)
+#endif
 
 #ifdef  __cplusplus
 }
diff --git a/src/imm/agent/imma_init.cc b/src/imm/agent/imma_init.cc
--- a/src/imm/agent/imma_init.cc
+++ b/src/imm/agent/imma_init.cc
@@ -261,6 +261,8 @@ unsigned int imma_startup(NCSMDS_SVC_ID 
 {
        unsigned int rc = NCSCC_RC_SUCCESS;
 
+        TRACE_ENTER();
+
        int pt_err = pthread_mutex_lock(&imma_agent_lock);
        if(pt_err) {
                TRACE_4("Could not obtain mutex lock error(%u):%s", 
@@ -269,7 +271,7 @@ unsigned int imma_startup(NCSMDS_SVC_ID 
                goto done_nolock;
        }
 
-       TRACE_ENTER2("use count %u", imma_use_count);
+       TRACE("use count %u", imma_use_count);
 
        if (imma_use_count > 0) {
                /* Already created, so just increment the use_count */
@@ -321,6 +323,7 @@ unsigned int imma_shutdown(NCSMDS_SVC_ID
 {
        uint32_t rc = NCSCC_RC_SUCCESS;
 
+        TRACE_ENTER();
        int pt_err = pthread_mutex_lock(&imma_agent_lock);
        if(pt_err) {
                TRACE_4("Could not obtain mutex lock error(%u):%s", 
@@ -329,7 +332,7 @@ unsigned int imma_shutdown(NCSMDS_SVC_ID
                goto done_nolock;
        }
 
-       TRACE_ENTER2("use count %u", imma_use_count);
+       TRACE("use count %u", imma_use_count);
 
        if (imma_use_count > 1) {
                /* Users still exist, just decrement the use count */
diff --git a/src/imm/agent/imma_om_api.cc b/src/imm/agent/imma_om_api.cc
--- a/src/imm/agent/imma_om_api.cc
+++ b/src/imm/agent/imma_om_api.cc
@@ -4989,7 +4989,6 @@ SaAisErrorT saImmOmClassDescriptionGet_2
        IMMSV_EVT *out_evt = NULL;
        IMMA_CLIENT_NODE *cl_node = NULL;
        SaTimeT timeout = 0;
-       TRACE_ENTER();
 
        if (cb->sv_id == 0) {
                TRACE_2("ERR_BAD_HANDLE: No initialized handle exists!");
@@ -9375,7 +9374,6 @@ SaAisErrorT saImmOmCcbGetErrorStrings(Sa
        IMMA_CCB_NODE *ccb_node = NULL;
        SaImmHandleT immHandle=0LL;
        IMMA_CLIENT_NODE *cl_node = NULL;
-       TRACE_ENTER();
 
        if (cb->sv_id == 0) {
                TRACE_2("ERR_BAD_HANDLE: No initialized handle exists!");
diff --git a/src/imm/immnd/ImmModel.cc b/src/imm/immnd/ImmModel.cc
--- a/src/imm/immnd/ImmModel.cc
+++ b/src/imm/immnd/ImmModel.cc
@@ -3898,7 +3898,7 @@ ImmModel::oneSafe2PBEAllowed()
     //TRACE_ENTER();
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -3920,7 +3920,7 @@ ImmModel::protocol43Allowed()
     //TRACE_ENTER();
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -3942,7 +3942,7 @@ ImmModel::protocol45Allowed()
     //TRACE_ENTER();
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -3964,7 +3964,7 @@ ImmModel::protocol46Allowed()
     //TRACE_ENTER();
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -3986,7 +3986,7 @@ ImmModel::protocol47Allowed()
     //TRACE_ENTER();
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -4012,7 +4012,7 @@ ImmModel::protocol50Allowed()
     }
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -4039,7 +4039,7 @@ ImmModel::protocol51Allowed()
     }
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
@@ -4062,7 +4062,7 @@ ImmModel::protocol41Allowed()
     //TRACE_ENTER();
     ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
     if(oi == sObjectMap.end()) {
-        TRACE_LEAVE();
+        //TRACE_LEAVE();
         return false;
     }
 
diff --git a/src/imm/immpbed/immpbe_daemon.cc b/src/imm/immpbed/immpbe_daemon.cc
--- a/src/imm/immpbed/immpbe_daemon.cc
+++ b/src/imm/immpbed/immpbe_daemon.cc
@@ -1561,6 +1561,8 @@ static SaAisErrorT saImmOiCcbObjectCreat
        unsigned int msecs_waited = 0;
         std::string objectDn;
 
+       TRACE_ENTER();
+
        if(parentName != NULL && !osaf_is_extended_name_empty(parentName)) {
                TRACE_ENTER2("CREATE CALLBACK CCB:%llu class:%s parent:%s", 
ccbId, className, osaf_extended_name_borrow(parentName));
        } else {
@@ -2219,7 +2221,7 @@ void pbeDaemon(SaImmHandleT immHandle, v
        immutilWrapperProfile.retryInterval = 400;
        immutilWrapperProfile.nTries = 5;
 
-
+       TRACE_ENTER();
        LOG_NO("pbeDaemon starting with obj-count:%u", sObjCount);
 
        /* Restore also sClassCount. */
diff --git a/src/log/logd/lgs_imm_gcfg.cc b/src/log/logd/lgs_imm_gcfg.cc
--- a/src/log/logd/lgs_imm_gcfg.cc
+++ b/src/log/logd/lgs_imm_gcfg.cc
@@ -531,6 +531,8 @@ static const SaImmOiCallbacksT_2 callbac
 static void save_network_name(char* new_name) {
   uint32_t name_len = 0;
 
+  TRACE_ENTER();
+  
   osaf_mutex_lock_ordie(&lgs_gcfg_applier_mutex);
 
   /* Delete old name */
diff --git a/src/log/logd/lgs_main.cc b/src/log/logd/lgs_main.cc
--- a/src/log/logd/lgs_main.cc
+++ b/src/log/logd/lgs_main.cc
@@ -480,6 +480,8 @@ int main(int argc, char *argv[]) {
    */
   const time_t CLEAN_TIMEOUT = 600; /* 10 min */
 
+  TRACE_ENTER();
+
   daemonize(argc, argv);
 
   if (setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0 ) {
diff --git a/src/log/logd/lgs_mbcsv.cc b/src/log/logd/lgs_mbcsv.cc
--- a/src/log/logd/lgs_mbcsv.cc
+++ b/src/log/logd/lgs_mbcsv.cc
@@ -2176,6 +2176,8 @@ uint32_t lgs_ckpt_send_async(lgs_cb_t *c
   NCS_MBCSV_ARG mbcsv_arg;
   lgsv_ckpt_msg_type_t ckpt_rec_type;
 
+  TRACE_ENTER();
+
   if (lgs_is_peer_v5()) {
     lgsv_ckpt_msg_v5_t *ckpt_rec_v5 = static_cast<lgsv_ckpt_msg_v5_t 
*>(ckpt_rec);
     ckpt_rec_type = ckpt_rec_v5->header.ckpt_rec_type;
diff --git a/src/ntf/ntfd/NtfClient.cc b/src/ntf/ntfd/NtfClient.cc
--- a/src/ntf/ntfd/NtfClient.cc
+++ b/src/ntf/ntfd/NtfClient.cc
@@ -350,7 +350,7 @@ void NtfClient::readNextResponse(SaAisEr
   } else {
     read_next_res_lib(*error, NULL, mdsDest_, mdsCtxt);
   }
-  TRACE_ENTER();
+  TRACE_LEAVE();
 }
 
 void NtfClient::deleteReaderResponse(SaAisErrorT* error,
diff --git a/src/smf/smfd/SmfCampaignXmlParser.cc 
b/src/smf/smfd/SmfCampaignXmlParser.cc
--- a/src/smf/smfd/SmfCampaignXmlParser.cc
+++ b/src/smf/smfd/SmfCampaignXmlParser.cc
@@ -2016,6 +2016,7 @@ SmfCampaignXmlParser::parseAppType(
 {
        xmlNsPtr ns = 0;
        std::string dn;
+        TRACE_ENTER();
        SmfImmCreateOperation* ico = prepareCreateOperation(parent, 
"SaAmfAppType", i_node, "safVersion", dn);
        if (ico == NULL) {
                LOG_NO("SmfCampaignXmlParser::parseAppType: Fail to prepare 
create IMM Create Operation");
@@ -2083,6 +2084,7 @@ SmfCampaignXmlParser::parseSGType(
 {
        xmlNsPtr ns = 0;
        std::string dn;
+        TRACE_ENTER();
        SmfImmCreateOperation* ico = prepareCreateOperation(parent, 
"SaAmfSGType", i_node, "safVersion", dn);
        if (ico == NULL) {
                LOG_NO("SmfCampaignXmlParser::parseSGType: Fail to prepare 
create IMM Create Operation");
@@ -2154,6 +2156,7 @@ SmfCampaignXmlParser::parseSUType(
 {
        xmlNsPtr ns = 0;
        std::string dn;
+        TRACE_ENTER();
        SmfImmCreateOperation* ico = prepareCreateOperation(parent, 
"SaAmfSUType", i_node, "safVersion", dn);
        if (ico == NULL) {
                LOG_NO("SmfCampaignXmlParser::parseSUType: Fail to prepare 
create IMM Create Operation");
diff --git a/src/smf/smfd/SmfUpgradeStep.cc b/src/smf/smfd/SmfUpgradeStep.cc
--- a/src/smf/smfd/SmfUpgradeStep.cc
+++ b/src/smf/smfd/SmfUpgradeStep.cc
@@ -2574,6 +2574,9 @@ bool SmfUpgradeStep::checkAndInvokeCallb
        SaAisErrorT rc = SA_AIS_OK;
 
        std::vector < SmfUpgradeStep * >::const_iterator iter;
+
+       TRACE_ENTER();
+
        const std::vector <SmfUpgradeStep *>& procSteps = 
m_procedure->getProcSteps();
 
        cbkiter = callbackList.begin();

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to