diff options
| author | Lu Qiuwen <[email protected]> | 2023-08-02 20:29:53 +0800 |
|---|---|---|
| committer | Lu Qiuwen <[email protected]> | 2023-08-02 20:29:53 +0800 |
| commit | b8efac5f6f76699a9a08269db3d670fde16b49dc (patch) | |
| tree | 0e3613523e5de9bc37a70edd8c0e655d2cf555ce | |
| parent | fcf0ba2b8862814acc8552fc6b019be5674d33a6 (diff) | |
默认关闭delay_drop功能,通过开关启用;rss使用全field。v4.6.39-20230720
| -rw-r--r-- | infra/src/ldbc.c | 24 | ||||
| -rw-r--r-- | service/src/devmgr.c | 25 |
2 files changed, 38 insertions, 11 deletions
diff --git a/infra/src/ldbc.c b/infra/src/ldbc.c index 433dc73..5de7e32 100644 --- a/infra/src/ldbc.c +++ b/infra/src/ldbc.c @@ -813,7 +813,11 @@ static int distributer_outer_most_tuple2_batch(struct distributer * dist_object, rte_prefetch_non_temporal(rte_pktmbuf_mtod(mbufs[j], char *)); } - mbufs[i]->hash.usr = distributer_outer_most_tuple2(dist_object, mbufs[i], parser_results[i]); + uint32_t hash = distributer_outer_most_tuple2(dist_object, mbufs[i], parser_results[i]); + if(likely(hash != 0)) + { + mbufs[i]->hash.usr = hash; + } } return 0; @@ -833,7 +837,11 @@ static int distributer_outer_most_tuple4_batch(struct distributer * dist_object, rte_prefetch_non_temporal(rte_pktmbuf_mtod(mbufs[j], char *)); } - mbufs[i]->hash.usr = distributer_outer_most_tuple4(dist_object, mbufs[i], parser_results[i]); + uint32_t hash = distributer_outer_most_tuple4(dist_object, mbufs[i], parser_results[i]); + if (likely(hash != 0)) + { + mbufs[i]->hash.usr = hash; + } } return 0; @@ -857,7 +865,11 @@ static int distributer_inner_most_tuple2_batch(struct distributer * dist_object, rte_prefetch_non_temporal(rte_pktmbuf_mtod_offset(mbufs[j], char *, RTE_CACHE_LINE_SIZE)); } - mbufs[i]->hash.usr = distributer_inner_most_tuple2(dist_object, mbufs[i], parser_results[i]); + uint32_t hash = distributer_inner_most_tuple2(dist_object, mbufs[i], parser_results[i]); + if (likely(hash != 0)) + { + mbufs[i]->hash.usr = hash; + } } return 0; @@ -881,7 +893,11 @@ int distributer_inner_most_tuple4_batch(struct distributer * dist_object, struct rte_prefetch_non_temporal(rte_pktmbuf_mtod_offset(mbufs[j], char *, RTE_CACHE_LINE_SIZE)); } - mbufs[i]->hash.usr = distributer_inner_most_tuple4(dist_object, mbufs[i], parser_results[i]); + uint32_t hash = distributer_inner_most_tuple4(dist_object, mbufs[i], parser_results[i]); + if (likely(hash != 0)) + { + mbufs[i]->hash.usr = hash; + } } return 0; diff --git a/service/src/devmgr.c b/service/src/devmgr.c index 91230bc..4712661 100644 --- a/service/src/devmgr.c +++ b/service/src/devmgr.c @@ -610,6 +610,11 @@ int vhost_dev_setup(const char * virtio_sym) return RT_SUCCESS; } +static uint64_t rss_hf_all_field = RTE_ETH_RSS_ETH | RTE_ETH_RSS_VLAN | RTE_ETH_RSS_IP | RTE_ETH_RSS_TCP | + RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP | RTE_ETH_RSS_L2_PAYLOAD | + RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP | RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP | + RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_MPLS; + /* 用户参数解析:网卡参数设置 */ static int gen_dpdk_dev_ethconf(struct dpdk_dev * dev, unsigned nr_rxq_use, struct rte_eth_conf * out_eth_conf) { @@ -631,13 +636,13 @@ static int gen_dpdk_dev_ethconf(struct dpdk_dev * dev, unsigned nr_rxq_use, stru } else if (dev->rssmode == MR_DEV_RSSMODE_4TUPLE_SYM) { - eth_conf.rx_adv_conf.rss_conf.rss_hf = RTE_ETH_RSS_IP | RTE_ETH_RSS_TCP | RTE_ETH_RSS_UDP; + eth_conf.rx_adv_conf.rss_conf.rss_hf = rss_hf_all_field; eth_conf.rx_adv_conf.rss_conf.rss_key = default_sym_rss_key; eth_conf.rx_adv_conf.rss_conf.rss_key_len = sizeof(default_sym_rss_key); } else if (dev->rssmode == MR_DEV_RSSMODE_4TUPLE_ASYM) { - eth_conf.rx_adv_conf.rss_conf.rss_hf = RTE_ETH_RSS_IP | RTE_ETH_RSS_TCP | RTE_ETH_RSS_UDP; + eth_conf.rx_adv_conf.rss_conf.rss_hf = rss_hf_all_field; eth_conf.rx_adv_conf.rss_conf.rss_key = NULL; } @@ -1853,6 +1858,12 @@ void devmgr_eal_args_generate(struct devmgr_main * devmgr_main, char * eal_argv[ unsigned int max_argc) { struct dpdk_dev_candidate * dev_can = NULL; + char * local_cfgfile = devmgr_main->sc->local_cfgfile; + + /* generate the mlx5 parameters */ + unsigned int mlx5_en_delay_drop = 0; + MESA_load_profile_uint_def(local_cfgfile, "eal", "mlx5_en_delay_drop", &mlx5_en_delay_drop, 0); + TAILQ_FOREACH(dev_can, &devmgr_main->dpdk_dev_candidate_list, next) { /* for now, all the candidate devices are PCI devices, @@ -1869,12 +1880,12 @@ void devmgr_eal_args_generate(struct devmgr_main * devmgr_main, char * eal_argv[ if (strcasecmp(dev_can->driver, "mlx5_core") == 0) { asprintf(&str_dev_option, "%s,%s", str_dev_option, + "rxq_cqe_comp_en=4,rxq_pkt_pad_en=1,txq_inline_max=128,txq_inline_mpw=128,allow_duplicate_pattern=0"); -#if 0 - "mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,allow_duplicate_pattern=0"); -#endif - - "rxq_pkt_pad_en=1,txq_inline_mpw=128,delay_drop=0x1,allow_duplicate_pattern=0"); + if (mlx5_en_delay_drop > 0) + { + asprintf(&str_dev_option, "%s,%s", str_dev_option, "delay_drop=0x1"); + } } eal_argv[(*eal_argc)++] = str_dev_option; |
