Dear Mahesh, I would like to send my ideal about this. Please consider it.
- I'm agree this modification will enhance writing performance. - I checked opensaf-4.7.x both newest changeset (7886) and tested changeset (7640) and found the same source code. So I think that this fixing will not solve the problem of performance degradation from 4.7.x to 5.0.x. Thank you and best regards, Hoang -----Original Message----- From: mahesh.va...@oracle.com [mailto:mahesh.va...@oracle.com] Sent: Thursday, August 18, 2016 4:10 PM To: nhat.p...@dektech.com.au; hoang.m...@dektech.com.au Cc: opensaf-devel@lists.sourceforge.net Subject: [PATCH 1 of 1] cpa: remove multiple sync_send() calls in case of multiple vector write [#1849] 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