From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 533ECA2F6B for ; Wed, 9 Oct 2019 06:30:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BAA601C0AF; Wed, 9 Oct 2019 06:29:59 +0200 (CEST) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by dpdk.org (Postfix) with ESMTP id 19B3D1C0AE for ; Wed, 9 Oct 2019 06:29:58 +0200 (CEST) Received: by mail-wr1-f66.google.com with SMTP id j18so858857wrq.10 for ; Tue, 08 Oct 2019 21:29:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=09LP2fTqXCBdLHVGfpxzRO5VdCMEPrbueV7mpaS7g60=; b=Fq8KJVizS4/VGV27Eqo4kInDHjfBNT4FF5WIBYyYNPQEJ79/fpItMncbA0cL49vyuu WJ7Q+o13NcxMoRDK8Mm9ZuaFivFev9c4CX7s5Z4aZzDLf7KuhbOGlORd1GpjTQ2ECRyw 2T5qwuvgJHDqOBv0uMnloe1JSPGYVVXJ71FaWDvpRezLPmj1gBBgvay8zZrNI8lT5dvd zINZa/VAmh5wwSLwMNSgqyZFFUR9UmLMemMoiAzkibmfRUREJqbniZT74ViqKt7ghhC+ SU0La219BcvMnhywLldz+t4do9ToVbDP72B6QVW6aNAhf2ko04RXCrPEocwR0sJiYfZk ijUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=09LP2fTqXCBdLHVGfpxzRO5VdCMEPrbueV7mpaS7g60=; b=GZeCEloJN3acsDztNfq6oDD6zkU/HvFHtp8py9/z5M9Fdy4EcFyABKN85o+v9iVTr2 BiYSYDZPOi6S8ZJIgxssptqmO63HopY6+gCVLGUcnnX77x2SS9zVdhbR64DP4U2C3XBM LncoVmPQ2ituv6TPr8l0BLCs0lATrz5XIwr+3o9qPqxmN+L5e4q72SccNvD+eGBCm9hF Awp/Vh3tDp56IxbuSYh4TT8BsUg8sWOXCIIOcsMOuQ62DiZ+qKQqAJI/zZY0Iiq+8L+s oQVzrGomrhY+rldvA3vcJqrMT9LyBybmQ33YWUo7jDfUzF1YxNclJSab4vRg6YsGsLWF ZxiA== X-Gm-Message-State: APjAAAWQ6LNHseGhrTlb1zhkEAlb0ppiRA/P5GDblIvEs0WoAGUFdTtM ZRZggnuD9a3vCgOzE78NMahs5IzVCISUjAhioddzuTgw X-Google-Smtp-Source: APXvYqyp9x6auUsgENiQT0ElchFHmTYFgy4FRHhwsWUj/0R+YYVkqAWHhMi9iv00NYuhRnd0uMYUiD/Lmm6F+7QoR8g= X-Received: by 2002:adf:dc83:: with SMTP id r3mr1031556wrj.335.1570595396835; Tue, 08 Oct 2019 21:29:56 -0700 (PDT) MIME-Version: 1.0 References: <20191008201224.083c9625@hermes.lan> In-Reply-To: <20191008201224.083c9625@hermes.lan> From: Jun Gan Date: Tue, 8 Oct 2019 21:29:46 -0700 Message-ID: To: Stephen Hemminger Cc: Asaf Penso , "users@dpdk.org" , Technical Support Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-users] Same 5 tuple UDP packets have been delivered to different queues. X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org Sender: "users" Hi Stephen, Thanks for the suggestion, I actually tried both, but no difference, the problem for me is that same src&dsp ip&port udp packets, will be delivered to different queues. That breaks my assumption that the packet from some session will be processed by the same thread on the server. so besides rx_adv_conf, is there any other things I have to configure? Thanks, Jun Gan On Tue, Oct 8, 2019 at 8:12 PM Stephen Hemminger wrote: > On Tue, 8 Oct 2019 18:56:31 -0700 > Jun Gan wrote: > > > Hi Asaf, > > > > Thank you so much for your help! > > > > I tend to think there is something missing in my code, do you have any > code > > example how to enable RSS? > > > > I did following setup: > > > > eth_conf.rxmode.mq_mode = ETH_MQ_RX_RSS; > > eth_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | ETH_RSS_UDP > > eth_conf..rx_adv_conf.rss_conf.rss_hf &= dev_info.flow_type_rss_offloads; > > > > I also tried to add a flow rule, and I found mlx5 doesn't support > > "rte_eth_dev_rss_hash_conf_get"? > > > > Here is the action, all the UDP packets applied this action: > > > > struct rte_flow_action_rss action_rss = { > > .types = ETH_RSS_IP | ETH_RSS_UDP, > > .key_len = 40, > > .queue_num = 4, > > .key = rss_key, > > .queue = queue, > > }; > > > > > > And I use spdk reactor to launch multiple threads polling different > queue. > > > > > > Thanks, > > Jun Gan > > > > > > > > > > On Tue, Oct 8, 2019 at 4:52 AM Asaf Penso wrote: > > > > > Hello Jun Gan, > > > > > > Thanks for reaching out and posting this query. > > > I'm adding here our support team for further assistance. > > > > > > Regards, > > > Asaf Penso > > > > > > > -----Original Message----- > > > > From: users On Behalf Of Jun Gan > > > > Sent: Monday, October 7, 2019 6:13 AM > > > > To: users@dpdk.org > > > > Subject: [dpdk-users] Same 5 tuple UDP packets have been delivered to > > > > different queues. > > > > > > > > Hi All, > > > > > > > > I just added multiple queues and enabled RSS in our application, I > set > > > > "rss_hf" to "ETH_RSS_IP | ETH_RSS_UDP", but I can see that same 5 > tuple > > > > packets, will be delivered to different queues. Do I miss something? > > > > > > > > Here is the code: > > > > > > > > eth_conf.rxmode.mq_mode = ETH_MQ_RX_RSS; > > > > eth_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | ETH_RSS_UDP > > > > eth_conf..rx_adv_conf.rss_conf.rss_hf &= > > > > dev_info.flow_type_rss_offloads; > > > > > > > > > > > > I actually have two queues, and two different threads(lcore) busy > > > > polling(rx_burst) on these two queues, I also met other weird > issues > > > like: > > > > > > > > dpdk-stable-18.11.2/drivers/net/mlx5/mlx5_rxtx_vec_sse.h:743: > > > > rxq_burst_v: > > > > Assertion `rxq->rq_pi == rxq->cq_ci' failed. > > > > > > > > I don't understand what does this means, I think rx_burst on the > same nic > > > > different queue should be thread-safe, isn't it? > > > > > > > > I'm using dpdk 18.11.2, OS is centos 7.6 and NIC is MLX CX-5. > > > > > > > > I really appreciate it if anyone can help!! > > I think you might have confused base RSS and rte_flow RSS. > The base RSS is about spreading incoming across all receive queues. > This is the part in rx_add_conf. > > The flow RSS is about spreading matching flows (based on pattern) across a > restricted subset of queues. > > My recommendation is use one or the others. Don't use base RSS and rte_flow > at the same time (it doesn't make sense). > -- Jun Gan