X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=app%2Ftest-pmd%2Ftestpmd.c;h=fb286b86e51bb110538caaf2638d29eeac3bd43c;hb=e04449488fdb1ed4d94a2bd1e7f24dfeed84d862;hp=f5feb62f8d84c9d856aedd9434a88a87e1078cbd;hpb=7569b8c19b1e72f0da493297d71cb7517420e408;p=dpdk.git diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index f5feb62f8d..fb286b86e5 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -179,9 +179,7 @@ struct fwd_engine * fwd_engines[] = { &csum_fwd_engine, &icmp_echo_engine, &noisy_vnf_engine, -#if defined RTE_LIBRTE_PMD_SOFTNIC - &softnic_fwd_engine, -#endif + &five_tuple_swap_fwd_engine, #ifdef RTE_LIBRTE_IEEE1588 &ieee1588_fwd_engine, #endif @@ -223,6 +221,12 @@ enum tx_pkt_split tx_pkt_split = TX_PKT_SPLIT_OFF; uint8_t txonly_multi_flow; /**< Whether multiple flows are generated in TXONLY mode. */ +uint32_t tx_pkt_times_inter; +/**< Timings for send scheduling in TXONLY mode, time between bursts. */ + +uint32_t tx_pkt_times_intra; +/**< Timings for send scheduling in TXONLY mode, time between packets. */ + uint16_t nb_pkt_per_burst = DEF_PKT_BURST; /**< Number of packets per burst. */ uint16_t mb_mempool_cache = DEF_MBUF_CACHE; /**< Size of mbuf mempool cache. */ @@ -471,6 +475,16 @@ uint16_t nb_rx_queue_stats_mappings = 0; */ uint8_t xstats_hide_zero; +/* + * Measure of CPU cycles disabled by default + */ +uint8_t record_core_cycles; + +/* + * Display of RX and TX bursts disabled by default + */ +uint8_t record_burst_stats; + unsigned int num_sockets = 0; unsigned int socket_ids[RTE_MAX_NUMA_NODES]; @@ -1561,19 +1575,6 @@ init_config(void) "rte_gro_ctx_create() failed\n"); } } - -#if defined RTE_LIBRTE_PMD_SOFTNIC - if (strcmp(cur_fwd_eng->fwd_mode_name, "softnic") == 0) { - RTE_ETH_FOREACH_DEV(pid) { - port = &ports[pid]; - const char *driver = port->dev_info.driver_name; - - if (strcmp(driver, "net_softnic") == 0) - port->softport.fwd_lcore_arg = fwd_lcores; - } - } -#endif - } @@ -1688,7 +1689,6 @@ init_fwd_streams(void) return 0; } -#ifdef RTE_TEST_PMD_RECORD_BURST_STATS static void pkt_burst_stats_display(const char *rx_tx, struct pkt_burst_stats *pbs) { @@ -1755,7 +1755,6 @@ pkt_burst_stats_display(const char *rx_tx, struct pkt_burst_stats *pbs) sburstp += burst_percent[i]; } } -#endif /* RTE_TEST_PMD_RECORD_BURST_STATS */ static void fwd_stream_stats_display(streamid_t stream_id) @@ -1786,10 +1785,10 @@ fwd_stream_stats_display(streamid_t stream_id) printf("\n"); } -#ifdef RTE_TEST_PMD_RECORD_BURST_STATS - pkt_burst_stats_display("RX", &fs->rx_burst_stats); - pkt_burst_stats_display("TX", &fs->tx_burst_stats); -#endif + if (record_burst_stats) { + pkt_burst_stats_display("RX", &fs->rx_burst_stats); + pkt_burst_stats_display("TX", &fs->tx_burst_stats); + } } void @@ -1809,9 +1808,7 @@ fwd_stats_display(void) uint64_t total_tx_dropped = 0; uint64_t total_rx_nombuf = 0; struct rte_eth_stats stats; -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES uint64_t fwd_cycles = 0; -#endif uint64_t total_recv = 0; uint64_t total_xmit = 0; struct rte_port *port; @@ -1839,9 +1836,8 @@ fwd_stats_display(void) ports_stats[fs->rx_port].rx_bad_outer_l4_csum += fs->rx_bad_outer_l4_csum; -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES - fwd_cycles += fs->core_cycles; -#endif + if (record_core_cycles) + fwd_cycles += fs->core_cycles; } for (i = 0; i < cur_fwd_config.nb_fwd_ports; i++) { uint8_t j; @@ -1922,14 +1918,14 @@ fwd_stats_display(void) stats.opackets + ports_stats[pt_id].tx_dropped); } -#ifdef RTE_TEST_PMD_RECORD_BURST_STATS - if (ports_stats[pt_id].rx_stream) - pkt_burst_stats_display("RX", - &ports_stats[pt_id].rx_stream->rx_burst_stats); - if (ports_stats[pt_id].tx_stream) - pkt_burst_stats_display("TX", - &ports_stats[pt_id].tx_stream->tx_burst_stats); -#endif + if (record_burst_stats) { + if (ports_stats[pt_id].rx_stream) + pkt_burst_stats_display("RX", + &ports_stats[pt_id].rx_stream->rx_burst_stats); + if (ports_stats[pt_id].tx_stream) + pkt_burst_stats_display("TX", + &ports_stats[pt_id].tx_stream->tx_burst_stats); + } if (port->rx_queue_stats_mapping_enabled) { printf("\n"); @@ -1970,16 +1966,24 @@ fwd_stats_display(void) printf(" %s++++++++++++++++++++++++++++++++++++++++++++++" "%s\n", acc_stats_border, acc_stats_border); -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES + if (record_core_cycles) { #define CYC_PER_MHZ 1E6 - if (total_recv > 0) - printf("\n CPU cycles/packet=%.2F (total cycles=" - "%"PRIu64" / total RX packets=%"PRIu64") at %"PRIu64 - " MHz Clock\n", - (double) fwd_cycles / total_recv, - fwd_cycles, total_recv, - (uint64_t)(rte_get_tsc_hz() / CYC_PER_MHZ)); -#endif + if (total_recv > 0 || total_xmit > 0) { + uint64_t total_pkts = 0; + if (strcmp(cur_fwd_eng->fwd_mode_name, "txonly") == 0 || + strcmp(cur_fwd_eng->fwd_mode_name, "flowgen") == 0) + total_pkts = total_xmit; + else + total_pkts = total_recv; + + printf("\n CPU cycles/packet=%.2F (total cycles=" + "%"PRIu64" / total %s packets=%"PRIu64") at %"PRIu64 + " MHz Clock\n", + (double) fwd_cycles / total_pkts, + fwd_cycles, cur_fwd_eng->fwd_mode_name, total_pkts, + (uint64_t)(rte_get_tsc_hz() / CYC_PER_MHZ)); + } + } } void @@ -2003,13 +2007,9 @@ fwd_stats_reset(void) fs->rx_bad_l4_csum = 0; fs->rx_bad_outer_l4_csum = 0; -#ifdef RTE_TEST_PMD_RECORD_BURST_STATS memset(&fs->rx_burst_stats, 0, sizeof(fs->rx_burst_stats)); memset(&fs->tx_burst_stats, 0, sizeof(fs->tx_burst_stats)); -#endif -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES fs->core_cycles = 0; -#endif } }