void print_stats (void){ int ret; struct timeval now_time; double delta_ms; double tot_ms; double gbps_inst, gbps_tot, mpps_inst, mpps_tot; /* Get actual time */ ret = gettimeofday(&now_time, NULL); if (ret != 0) FATAL_ERROR("Error: gettimeofday failed. Quitting...\n"); /* Compute stats */ delta_ms = (now_time.tv_sec - last_time.tv_sec ) * 1000 + (now_time.tv_usec - last_time.tv_usec ) / 1000 ; tot_ms = (now_time.tv_sec - start_time.tv_sec ) * 1000 + (now_time.tv_usec - start_time.tv_usec ) / 1000 ; gbps_inst = (double)(num_bytes_good_sent - old_num_bytes_good_sent)/delta_ms/1000000*8; gbps_tot = (double)(num_bytes_good_sent)/tot_ms/1000000*8; mpps_inst = (double)(num_pkt_good_sent - old_num_pkt_good_sent)/delta_ms/1000; mpps_tot = (double)(num_pkt_good_sent)/tot_ms/1000; printf("Rate: %8.3fGbps %8.3fMpps [Average rate: %8.3fGbps %8.3fMpps], Buffer: %8.3f%%\n", gbps_inst, mpps_inst, gbps_tot, mpps_tot, (double)rte_mempool_free_count (pktmbuf_pool)/buffer_size*100.0); /* Update counters */ old_num_bytes_good_sent = num_bytes_good_sent; old_num_pkt_good_sent = num_pkt_good_sent; last_time = now_time; }
/***************************************************************************** * tlkp_total_ucbs_allocated() ****************************************************************************/ unsigned int tlkp_total_ucbs_allocated(void) { return rte_mempool_free_count(mem_get_ucb_local_pool()); }