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

Reply via email to