Signed-off-by: Angus Salkeld <[email protected]>
---
exec/totemsrp.c | 91 +++++++++++++++++++++++++++----------------------------
1 files changed, 45 insertions(+), 46 deletions(-)
diff --git a/exec/totemsrp.c b/exec/totemsrp.c
index b6f6760..9f8f01e 100644
--- a/exec/totemsrp.c
+++ b/exec/totemsrp.c
@@ -501,7 +501,7 @@ struct totemsrp_instance {
struct memb_commit_token *commit_token;
- totemsrp_stats_t *stats;
+ totemsrp_stats_t stats;
void * token_recv_event_handle;
void * token_sent_event_handle;
char commit_token_storage[9000];
@@ -720,27 +720,27 @@ static int token_event_stats_collector (enum
totem_callback_token_type type, con
if (type == TOTEM_CALLBACK_TOKEN_RECEIVED) {
/* incr latest token the index */
- if (instance->stats->latest_token == (TOTEM_TOKEN_STATS_MAX -
1))
- instance->stats->latest_token = 0;
+ if (instance->stats.latest_token == (TOTEM_TOKEN_STATS_MAX - 1))
+ instance->stats.latest_token = 0;
else
- instance->stats->latest_token++;
+ instance->stats.latest_token++;
- if (instance->stats->earliest_token ==
instance->stats->latest_token) {
+ if (instance->stats.earliest_token ==
instance->stats.latest_token) {
/* we have filled up the array, start overwriting */
- if (instance->stats->earliest_token ==
(TOTEM_TOKEN_STATS_MAX - 1))
- instance->stats->earliest_token = 0;
+ if (instance->stats.earliest_token ==
(TOTEM_TOKEN_STATS_MAX - 1))
+ instance->stats.earliest_token = 0;
else
- instance->stats->earliest_token++;
+ instance->stats.earliest_token++;
-
instance->stats->token[instance->stats->earliest_token].rx = 0;
-
instance->stats->token[instance->stats->earliest_token].tx = 0;
-
instance->stats->token[instance->stats->earliest_token].backlog_calc = 0;
+
instance->stats.token[instance->stats.earliest_token].rx = 0;
+
instance->stats.token[instance->stats.earliest_token].tx = 0;
+
instance->stats.token[instance->stats.earliest_token].backlog_calc = 0;
}
- instance->stats->token[instance->stats->latest_token].rx =
time_now;
- instance->stats->token[instance->stats->latest_token].tx = 0;
/* in case we drop the token */
+ instance->stats.token[instance->stats.latest_token].rx =
time_now;
+ instance->stats.token[instance->stats.latest_token].tx = 0; /*
in case we drop the token */
} else {
- instance->stats->token[instance->stats->latest_token].tx =
time_now;
+ instance->stats.token[instance->stats.latest_token].tx =
time_now;
}
return 0;
}
@@ -792,10 +792,9 @@ int totemsrp_initialize (
totemsrp_instance_initialize (instance);
- instance->stats = calloc (sizeof(totemsrp_stats_t), 1);
- stats->srp = instance->stats;
- instance->stats->latest_token = 0;
- instance->stats->earliest_token = 0;
+ stats->srp = &instance->stats;
+ instance->stats.latest_token = 0;
+ instance->stats.earliest_token = 0;
instance->totem_config = totem_config;
@@ -1488,7 +1487,7 @@ static void memb_state_consensus_timeout_expired (
struct srp_addr no_consensus_list[PROCESSOR_COUNT_MAX];
int no_consensus_list_entries;
- instance->stats->consensus_timeouts++;
+ instance->stats.consensus_timeouts++;
if (memb_consensus_agreed (instance)) {
memb_consensus_reset (instance);
@@ -1536,7 +1535,7 @@ static void timer_function_orf_token_timeout (void *data)
"A processor failed, forming new
configuration.\n");
totemrrp_iface_check (instance->totemrrp_context);
memb_state_gather_enter (instance, 2);
- instance->stats->operational_token_lost++;
+ instance->stats.operational_token_lost++;
break;
case MEMB_STATE_GATHER:
@@ -1544,14 +1543,14 @@ static void timer_function_orf_token_timeout (void
*data)
"The consensus timeout expired.\n");
memb_state_consensus_timeout_expired (instance);
memb_state_gather_enter (instance, 3);
- instance->stats->gather_token_lost++;
+ instance->stats.gather_token_lost++;
break;
case MEMB_STATE_COMMIT:
log_printf (instance->totemsrp_log_level_debug,
"The token was lost in the COMMIT state.\n");
memb_state_gather_enter (instance, 4);
- instance->stats->commit_token_lost++;
+ instance->stats.commit_token_lost++;
break;
case MEMB_STATE_RECOVERY:
@@ -1559,7 +1558,7 @@ static void timer_function_orf_token_timeout (void *data)
"The token was lost in the RECOVERY state.\n");
ring_state_restore (instance);
memb_state_gather_enter (instance, 5);
- instance->stats->recovery_token_lost++;
+ instance->stats.recovery_token_lost++;
break;
}
}
@@ -1791,7 +1790,7 @@ static void memb_state_operational_enter (struct
totemsrp_instance *instance)
"A processor joined or left the membership and a new membership
was formed.\n");
instance->memb_state = MEMB_STATE_OPERATIONAL;
- instance->stats->operational_entered++;
+ instance->stats.operational_entered++;
instance->my_received_flg = 1;
reset_pause_timeout (instance);
@@ -1848,7 +1847,7 @@ static void memb_state_gather_enter (
"entering GATHER state from %d.\n", gather_from);
instance->memb_state = MEMB_STATE_GATHER;
- instance->stats->gather_entered++;
+ instance->stats.gather_entered++;
return;
}
@@ -1894,7 +1893,7 @@ static void memb_state_commit_enter (
reset_token_retransmit_timeout (instance); // REVIEWED
reset_token_timeout (instance); // REVIEWED
- instance->stats->commit_entered++;
+ instance->stats.commit_entered++;
/*
* reset all flow control variables since we are starting a new ring
@@ -2086,7 +2085,7 @@ originated:
reset_token_retransmit_timeout (instance); // REVIEWED
instance->memb_state = MEMB_STATE_RECOVERY;
- instance->stats->recovery_entered++;
+ instance->stats.recovery_entered++;
return;
}
@@ -2148,7 +2147,7 @@ int totemsrp_mcast (
message_item.msg_len = addr_idx;
log_printf (instance->totemsrp_log_level_debug, "mcasted message added
to pending queue\n");
- instance->stats->mcast_tx++;
+ instance->stats.mcast_tx++;
cs_queue_item_add (&instance->new_message_queue, &message_item);
return (0);
@@ -2464,7 +2463,7 @@ static int orf_token_rtr (
memmove (&rtr_list[i], &rtr_list[i + 1],
sizeof (struct rtr_item) *
(orf_token->rtr_list_entries));
- instance->stats->mcast_retx++;
+ instance->stats.mcast_retx++;
instance->fcc_remcast_current++;
} else {
i += 1;
@@ -2634,7 +2633,7 @@ static int token_hold_cancel_send (struct
totemsrp_instance *instance)
sizeof (struct memb_ring_id));
assert (token_hold_cancel.header.nodeid);
- instance->stats->token_hold_cancel_tx++;
+ instance->stats.token_hold_cancel_tx++;
totemrrp_mcast_flush_send (instance->totemrrp_context,
&token_hold_cancel,
sizeof (struct token_hold_cancel));
@@ -2656,7 +2655,7 @@ static int orf_token_send_initial (struct
totemsrp_instance *instance)
orf_token.token_seq = SEQNO_START_TOKEN;
orf_token.retrans_flg = 1;
instance->my_set_retrans_flg = 1;
- instance->stats->orf_token_tx++;
+ instance->stats.orf_token_tx++;
if (cs_queue_is_empty (&instance->retrans_message_queue) == 1) {
orf_token.retrans_flg = 0;
@@ -2787,7 +2786,7 @@ static int memb_state_commit_token_send_recovery (
memcpy (instance->orf_token_retransmit, commit_token,
commit_token_size);
instance->orf_token_retransmit_size = commit_token_size;
- instance->stats->memb_commit_token_tx++;
+ instance->stats.memb_commit_token_tx++;
totemrrp_token_send (instance->totemrrp_context,
commit_token,
@@ -2820,7 +2819,7 @@ static int memb_state_commit_token_send (
memcpy (instance->orf_token_retransmit, instance->commit_token,
commit_token_size);
instance->orf_token_retransmit_size = commit_token_size;
- instance->stats->memb_commit_token_tx++;
+ instance->stats.memb_commit_token_tx++;
totemrrp_token_send (instance->totemrrp_context,
instance->commit_token,
@@ -2956,7 +2955,7 @@ static void memb_join_message_send (struct
totemsrp_instance *instance)
usleep (random() % (instance->totem_config->send_join_timeout *
1000));
}
- instance->stats->memb_join_tx++;
+ instance->stats.memb_join_tx++;
totemrrp_mcast_flush_send (
instance->totemrrp_context,
@@ -3026,7 +3025,7 @@ static void memb_leave_message_send (struct
totemsrp_instance *instance)
if (instance->totem_config->send_join_timeout) {
usleep (random() % (instance->totem_config->send_join_timeout *
1000));
}
- instance->stats->memb_join_tx++;
+ instance->stats.memb_join_tx++;
totemrrp_mcast_flush_send (
instance->totemrrp_context,
@@ -3047,7 +3046,7 @@ static void memb_merge_detect_transmit (struct
totemsrp_instance *instance)
sizeof (struct memb_ring_id));
assert (memb_merge_detect.header.nodeid);
- instance->stats->memb_merge_detect_tx++;
+ instance->stats.memb_merge_detect_tx++;
totemrrp_mcast_flush_send (instance->totemrrp_context,
&memb_merge_detect,
sizeof (struct memb_merge_detect));
@@ -3230,7 +3229,7 @@ static unsigned int backlog_get (struct totemsrp_instance
*instance)
if (instance->memb_state == MEMB_STATE_RECOVERY) {
backlog = cs_queue_used (&instance->retrans_message_queue);
}
- instance->stats->token[instance->stats->latest_token].backlog_calc =
backlog;
+ instance->stats.token[instance->stats.latest_token].backlog_calc =
backlog;
return (backlog);
}
@@ -3783,12 +3782,12 @@ static int message_handler_mcast (
case MEMB_STATE_COMMIT:
/* discard message */
- instance->stats->rx_msg_dropped++;
+ instance->stats.rx_msg_dropped++;
break;
case MEMB_STATE_RECOVERY:
/* discard message */
- instance->stats->rx_msg_dropped++;
+ instance->stats.rx_msg_dropped++;
break;
}
return (0);
@@ -4284,28 +4283,28 @@ void main_deliver_fn (
if ((int)message_header->type >= totemsrp_message_handlers.count) {
log_printf (instance->totemsrp_log_level_security, "Type of
received message is wrong... ignoring %d.\n", (int)message_header->type);
printf ("wrong message type\n");
- instance->stats->rx_msg_dropped++;
+ instance->stats.rx_msg_dropped++;
return;
}
switch (message_header->type) {
case MESSAGE_TYPE_ORF_TOKEN:
- instance->stats->orf_token_rx++;
+ instance->stats.orf_token_rx++;
break;
case MESSAGE_TYPE_MCAST:
- instance->stats->mcast_rx++;
+ instance->stats.mcast_rx++;
break;
case MESSAGE_TYPE_MEMB_MERGE_DETECT:
- instance->stats->memb_merge_detect_rx++;
+ instance->stats.memb_merge_detect_rx++;
break;
case MESSAGE_TYPE_MEMB_JOIN:
- instance->stats->memb_join_rx++;
+ instance->stats.memb_join_rx++;
break;
case MESSAGE_TYPE_MEMB_COMMIT_TOKEN:
- instance->stats->memb_commit_token_rx++;
+ instance->stats.memb_commit_token_rx++;
break;
case MESSAGE_TYPE_TOKEN_HOLD_CANCEL:
- instance->stats->token_hold_cancel_rx++;
+ instance->stats.token_hold_cancel_rx++;
break;
default:
break;
--
1.6.3.4
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais