osaf/libs/agents/saf/cpa/cpa_api.c | 17 ++++++++--------- 1 files changed, 8 insertions(+), 9 deletions(-)
Issue : In current saCkptCheckpointWrite() , in case of multiple ioVector write case ( > 1 ) multiple calls made for cpa_mds_msg_sync_send() , which is cause performance issue . Fix : It is not required to call cpa_mds_msg_sync_send() multiple time , so fixed to call only once. diff --git a/osaf/libs/agents/saf/cpa/cpa_api.c b/osaf/libs/agents/saf/cpa/cpa_api.c --- a/osaf/libs/agents/saf/cpa/cpa_api.c +++ b/osaf/libs/agents/saf/cpa/cpa_api.c @@ -3523,17 +3523,16 @@ SaAisErrorT saCkptCheckpointWrite(SaCkpt /* Unlock cpa_lock before calling mds api */ m_NCS_UNLOCK(&cb->cb_lock, NCS_LOCK_WRITE); - for (iter = 0; iter < numberOfElements; iter++) { + for (iter = 0; iter < numberOfElements; iter++) all_ioVector_size += ioVector[iter].dataSize; - time_out = CPA_WAIT_TIME(all_ioVector_size); - - if (time_out < CPSV_WAIT_TIME) { - time_out = CPSV_WAIT_TIME; - } - proc_rc = cpa_mds_msg_sync_send(cb->cpa_mds_hdl, &(gc_node->active_mds_dest), + + time_out = CPA_WAIT_TIME(all_ioVector_size); + if (time_out < CPSV_WAIT_TIME) { + time_out = CPSV_WAIT_TIME; + } + + proc_rc = cpa_mds_msg_sync_send(cb->cpa_mds_hdl, &(gc_node->active_mds_dest), &evt, &out_evt, time_out); - - } /* Generate rc from proc_rc */ switch (proc_rc) { ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel