59a60,62
>
> m_buf_msgs = 0;
> m_stall_time = 0;
198a202,203
> // Increment the number of messages statistic
> m_buf_msgs++;
210c215
< MessageBuffer::dequeue(Tick current_time)
---
> MessageBuffer::dequeue(Tick current_time, bool decrement_messages)
221a227,228
> m_stall_time = curTick() - message->getTime();
>
230a238,242
> if (decrement_messages) {
> // If the message will be removed from the queue, decrement the
> // number of message in the queue.
> m_buf_msgs--;
> }
327c339,341
< dequeue(current_time);
---
> // Since the message will just be moved to stall map, indicate that the
> // buffer should not decrement the m_buf_msgs statistic
> dequeue(current_time, false);
335a350
> m_stall_count++;
364a380,405
>
> m_buf_msgs
> .name(name() + ".avg_buf_msgs")
> .desc("Average number of messages in buffer")
> .flags(Stats::nozero);
>
> m_stall_count
> .name(name() + ".num_msg_stalls")
> .desc("Number of times messages were stalled")
> .flags(Stats::nozero);
>
> m_occupancy
> .name(name() + ".avg_buf_occ")
> .desc("Average occupancy of buffer capacity")
> .flags(Stats::nozero);
>
> m_stall_time
> .name(name() + ".avg_stall_time")
> .desc("Average number of cycles messages are stalled in this MB")
> .flags(Stats::nozero);
>
> if (m_max_size > 0) {
> m_occupancy = m_buf_msgs / m_max_size;
> } else {
> m_occupancy = 0;
> }