DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Kulasek, TomaszX" <tomaszx.kulasek@intel.com>
To: "Xu, HuilongX" <huilongx.xu@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding
Date: Thu, 25 Jun 2015 09:20:21 +0000	[thread overview]
Message-ID: <3042915272161B4EB253DA4D77EB373A019FA74B@IRSMSX102.ger.corp.intel.com> (raw)
In-Reply-To: <DF2A19295B96364286FEB7F3DDA27A4601123394@SHSMSX101.ccr.corp.intel.com>


There's a bug in bonding itself, which prevents the bonding, made of Fortville NICs, start and is not related to Dynamic RSS Configuration.

This problem solves separate patch "bond: fix check initial link status of slave".

-----Original Message-----
From: Xu, HuilongX 
Sent: Friday, June 12, 2015 07:36
To: Kulasek, TomaszX; dev@dpdk.org
Subject: RE: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding

Tested-by: huilong xu <huilongx.xu@intel.com>
- Tested Commit: 1a1109404e702d3ad1ccc1033df55c59bec1f89a + PATCH
- OS: Linux dpdk-fedora20 3.11.10-301.fc20.x86_64
- GCC: gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC)
- CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
- NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb]
- NIC: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ [8086:1583]
- Default x86_64-native-linuxapp-gcc configuration
- Total 4 cases, 2 passed, 2 failed. Niantic NIC case all passed, but Fortville NIC case all failed.


   First case:
           This is a unit test case, not need NIC
           1. build dpdk driver and insmod driver
           2. set 1024*2M hugepage
           3. compile test app in app/test
           4. run test
               ./test -c f -n 4 
           5. exec dynamic rss confif unit test
              link_bonding_rssconf_autotest
           6. print "test ok"
           7. this case passed
    Second case:
           This is a function test case, used Fortville NIC(8086:1583)
            1. build dpdk driver and insmod driver
            2. bind dpdk driver to Fortville nic
            3. set 1024*2M hugepage
            4. run test pmd
                  ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4  -- -i --txqflags=0x2 --mbcache=128 --burst=32 --txfreet=32 --rxfreet=64 --rxq=4 --txq=4
            5. exec testpmd cmd
               a) create bonded device 0 0
               b) add bonding slave 0 3
               c) add bonding slave 1 3
               d) port start 3
                port can start, and link stats is down, so this case failed.
     Thirdly case:
           This is a function test case, used Fortville NIC(8086:1583)
            1. build dpdk driver and insmod driver
            2. bind dpdk driver to Fortville nic
            3. set 1024*2M hugepage
            4. run test pmd
                  ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4  -- -i --txqflags=0x2 --mbcache=128 --burst=32 --txfreet=32 --rxfreet=64 --rxq=4 --txq=4
            5. exec testpmd cmd
               a) create bonded device 0 0
               b) add bonding slave 0 3
               c) add bonding slave 1 3
               d) port config all rss ip
               e) show port 3 rss-hash
                  printf: 
                          RSS functions:
                          ipv4-frag ipv4-other ipv6-frag ipv6-other
               f) show port 0 rss-hash
                  printf:
                         RSS disabled
                  Slave rss not enable, so this case failed
       Fourthly case:
              This is a function test case, used Niantic NIC(8086:10fb)
              1. build dpdk driver and insmod driver
              2. bind dpdk driver to Fortville nic
              3. set 1024*2M hugepage
              4. run test pmd
                  ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4  -- -i --txqflags=0x2 --mbcache=128 --burst=32 --txfreet=32 --rxfreet=64 --rxq=4 --txq=4
              5. exec testpmd cmd
                a) create bonded device 0 0
                b) add bonding slave 0 3
                c) add bonding slave 1 3
                d) port start 3
                e) port stop all
                f) set verbose 8
                g) set fwd rxonly
                h) set stat_qmap 3 0 0
                i) set stat_qmap 3 1 1             
                j) set stat_qmap 3 1 1
                k) set stat_qmap 3 1 1
                l) port config all rss ip
                m) port start all
                n)start
               6. send 50 ip packages to salve 0 by ixia, the package config as below
                  a) dst mac: bond device (port 3) mac address.
                  b) src mac: 00:00:00:12:34:56
                  c) package type:0800
                  e) dst ip: 192.168.1.1 
                  f) src ip: from 192.168.1.2 to 192.168.1.51, one package, this ip add 1
                7. stop 
                    Port 3 queue 0 received 9 packages
                    Port 3 queue 1 received 9 packages
                    Port 3 queue 2 received 16 packages
                    Port 3 queue 3 received 16 packages
                8. send 50 ip packages to slave 1 by ixia, the package config as same
                9. stop and check port 3 received packages again
               Form slave 0 and slave 1 the rss are some, the test passed

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Tomasz Kulasek
> Sent: Wednesday, June 03, 2015 6:59 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding
> 
> OVERVIEW
> --------
> 1) Setting .rxmode.mq_mode for bonding device to ETH_MQ_RX_RSS makes 
> bonding device fully RSS-capable, so all slaves are synchronized with 
> its configuration.
> This mode is intended to provide RSS configuration as known from 
> "dynamic RSS configuration for one port" and made slaves transparent 
> for client application implementation.
> 
> 2) If .rxmode.mq_mode for bonding device isn't ETH_MQ_RX_RSS, slaves 
> are not synchronized. That provides an ability to configure them 
> manually. This mode may be useful when application wants to manage RSS 
> in an unusual way and the consistency of RSS configuration for slaves 
> isn't required.
> 
> Turning on/off RSS mode for slaves when bonding is started is not possible.
> Other RSS configuration is propagated over slaves, when bonding device 
> API is used to do it.
> 
> Tomasz Kulasek (8):
>   bond: dynamic rss configuration
>   ring: dynamic rss configuration
>   test: dynamic rss configuration
>   bond: queue stats mapping
>   ring: queue stats mapping set dummy implementation
>   examples: dynamic rss configuration for bonding
>   doc: fixed spellings and typos
>   doc: dynamic rss configuration for bonding
> 
>  app/test/Makefile                                  |    1 +
>  app/test/test_link_bonding_rssconf.c               |  674 ++++++++++++++
>  .../prog_guide/link_bonding_poll_mode_drv_lib.rst  |   40 +-
>  drivers/net/bonding/rte_eth_bond_api.c             |   22 +
>  drivers/net/bonding/rte_eth_bond_pmd.c             |  222 ++++-
>  drivers/net/bonding/rte_eth_bond_private.h         |   11 +
>  drivers/net/ring/rte_eth_ring.c                    |  133 ++-
>  examples/bond_rss/Makefile                         |   59 ++
>  examples/bond_rss/bondrss.c                        |  293 +++++++
>  examples/bond_rss/bondrss.h                        |  163 ++++
>  examples/bond_rss/config.c                         |  251 ++++++
>  examples/bond_rss/ui.c                             |  915
> ++++++++++++++++++++
>  12 files changed, 2759 insertions(+), 25 deletions(-)  create mode 
> 100644 app/test/test_link_bonding_rssconf.c
>  create mode 100644 examples/bond_rss/Makefile  create mode 100644 
> examples/bond_rss/bondrss.c  create mode 100644 
> examples/bond_rss/bondrss.h  create mode 100644 
> examples/bond_rss/config.c  create mode 100644 examples/bond_rss/ui.c
> 
> --
> 1.7.9.5

  reply	other threads:[~2015-06-25  9:20 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03 10:58 Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 1/8] bond: dynamic rss configuration Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 2/8] ring: " Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 3/8] test: " Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 4/8] bond: queue stats mapping Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 5/8] ring: queue stats mapping set dummy implementation Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 6/8] examples: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 7/8] doc: fixed spellings and typos Tomasz Kulasek
2015-06-03 10:59 ` [dpdk-dev] [PATCH 8/8] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-12  5:36 ` [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding Xu, HuilongX
2015-06-25  9:20   ` Kulasek, TomaszX [this message]
2015-06-19 14:13 ` [dpdk-dev] [PATCH v2 " Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 1/8] bond: rss dynamic configuration Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 2/8] ring: dynamic rss configuration Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 3/8] test: " Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 4/8] bond: queue stats mapping Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 5/8] ring: queue stats mapping set dummy implementation Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 6/8] examples: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 7/8] doc: fixed spellings and typos Tomasz Kulasek
2015-06-19 14:13   ` [dpdk-dev] [PATCH v2 8/8] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-26  7:33   ` [dpdk-dev] [PATCH v2 0/8] Dynamic RSS Configuration for Bonding Doherty, Declan
2015-06-28 21:54     ` Thomas Monjalon
2015-06-29 14:50   ` [dpdk-dev] [PATCH v3 " Tomasz Kulasek
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 1/8] bonding: rss dynamic configuration Tomasz Kulasek
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 2/8] ring: dynamic rss configuration Tomasz Kulasek
2015-07-13 12:36       ` Thomas Monjalon
2015-07-13 14:43         ` Kulasek, TomaszX
2015-07-13 15:11           ` Thomas Monjalon
2015-07-16 13:02             ` Kulasek, TomaszX
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 3/8] test: " Tomasz Kulasek
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 4/8] bonding: queue stats mapping Tomasz Kulasek
2015-07-13 11:18       ` Thomas Monjalon
2015-07-13 12:00         ` Kulasek, TomaszX
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 5/8] ring: queue stats mapping set dummy implementation Tomasz Kulasek
2015-07-09  1:58       ` Thomas Monjalon
2015-07-09  9:55         ` Kulasek, TomaszX
2015-07-09 10:13           ` Thomas Monjalon
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 6/8] examples: dynamic rss configuration for bonding Tomasz Kulasek
2015-07-13 11:20       ` Thomas Monjalon
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 7/8] doc: fixed spellings and typos Tomasz Kulasek
2015-06-29 14:50     ` [dpdk-dev] [PATCH v3 8/8] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-07-01 10:05     ` [dpdk-dev] [PATCH v3 0/8] Dynamic RSS Configuration for Bonding Declan Doherty
2015-07-13 11:03       ` Thomas Monjalon
2015-07-13 11:18         ` Thomas Monjalon
2015-07-13 12:14           ` Kulasek, TomaszX
2015-07-15 17:26     ` [dpdk-dev] [PATCHv4 0/9] " Tomasz Kulasek
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 2/9] null: fix segfault when null_pmd added to bonding Tomasz Kulasek
2015-09-29  2:24         ` Tetsuya Mukawa
2015-09-29  9:39           ` Kulasek, TomaszX
2015-09-29 10:32             ` Tetsuya Mukawa
2015-09-29 11:29               ` Kulasek, TomaszX
2015-09-29 15:10               ` Kulasek, TomaszX
2015-09-30  1:24                 ` Tetsuya Mukawa
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-09-29  2:24         ` Tetsuya Mukawa
2015-09-29  9:46           ` Kulasek, TomaszX
2015-09-29 10:34             ` Tetsuya Mukawa
2015-09-29 11:56               ` Kulasek, TomaszX
2015-09-29 15:06                 ` Kulasek, TomaszX
2015-09-30  1:24                   ` Tetsuya Mukawa
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 4/9] null: virtual dynamic rss configuration Tomasz Kulasek
2015-09-29  2:24         ` Tetsuya Mukawa
2015-09-29 10:04           ` Kulasek, TomaszX
2015-10-12  9:05           ` Jastrzebski, MichalX K
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 5/9] null: export eth_dev_null_create Tomasz Kulasek
2015-09-25 10:11         ` Thomas Monjalon
2015-09-25 13:24           ` Kulasek, TomaszX
2015-09-25 13:43             ` Thomas Monjalon
2015-09-29  2:28         ` Tetsuya Mukawa
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 6/9] test: dynamic rss configuration Tomasz Kulasek
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 7/9] bonding: queue stats mapping Tomasz Kulasek
2015-09-25 10:14         ` Thomas Monjalon
2015-09-25 13:26           ` Kulasek, TomaszX
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-07-15 17:26       ` [dpdk-dev] [PATCHv4 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-09-25 10:16       ` [dpdk-dev] [PATCHv4 0/9] Dynamic RSS Configuration for Bonding Thomas Monjalon
2015-09-25 13:28         ` Kulasek, TomaszX
2015-09-25 13:44           ` Thomas Monjalon
2015-09-30 14:04       ` [dpdk-dev] [PATCH v5 " Tomasz Kulasek
2015-09-30 14:04         ` [dpdk-dev] [PATCH v5 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-09-30 14:04         ` [dpdk-dev] [PATCH v5 2/9] null: fix segfault when null_pmd added to bonding Tomasz Kulasek
2015-09-30 14:04         ` [dpdk-dev] [PATCH v5 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-10-14  1:34           ` Tetsuya Mukawa
2015-09-30 14:05         ` [dpdk-dev] [PATCH v5 4/9] null: virtual dynamic rss configuration Tomasz Kulasek
2015-10-14  1:34           ` Tetsuya Mukawa
2015-10-15  7:46           ` Tetsuya Mukawa
2015-10-15  8:42             ` Kulasek, TomaszX
2015-10-15  9:21               ` Tetsuya Mukawa
2015-09-30 14:05         ` [dpdk-dev] [PATCH v5 5/9] null: export eth_dev_null_create Tomasz Kulasek
2015-10-14  1:35           ` Tetsuya Mukawa
2015-10-14 12:42             ` Jastrzebski, MichalX K
2015-10-15  8:16               ` Tetsuya Mukawa
2015-10-15 10:35                 ` Jastrzebski, MichalX K
2015-09-30 14:05         ` [dpdk-dev] [PATCH v5 6/9] test: dynamic rss configuration Tomasz Kulasek
2015-09-30 14:05         ` [dpdk-dev] [PATCH v5 7/9] bonding: per queue stats Tomasz Kulasek
2015-09-30 14:05         ` [dpdk-dev] [PATCH v5 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-09-30 14:05         ` [dpdk-dev] [PATCH v5 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-10-16 10:00         ` [dpdk-dev] [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 2/9] null: fix segfault when null_pmd added to bonding Tomasz Kulasek
2015-10-27 16:58             ` Thomas Monjalon
2015-10-28 13:43               ` Kulasek, TomaszX
2015-10-29  7:19                 ` Tetsuya Mukawa
2015-10-30 13:50                   ` Kulasek, TomaszX
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 4/9] null: export eth_dev_null_create Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 5/9] null: virtual dynamic rss configuration Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 6/9] test: " Tomasz Kulasek
2015-10-27 17:34             ` Thomas Monjalon
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 7/9] bonding: per queue stats Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-10-16 10:00           ` [dpdk-dev] [PATCH v6 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-10-19 13:22           ` [dpdk-dev] [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Declan Doherty
2015-10-30 14:25           ` [dpdk-dev] [PATCH v7 " Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 2/9] null: fix segfault when null_pmd added to bonding Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 4/9] null: export eth_dev_null_create Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 5/9] null: virtual dynamic rss configuration Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 6/9] test: " Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 7/9] bonding: per queue stats Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-10-30 14:25             ` [dpdk-dev] [PATCH v7 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-11-01 17:29             ` [dpdk-dev] [PATCH v7 0/9] Dynamic RSS Configuration for Bonding Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3042915272161B4EB253DA4D77EB373A019FA74B@IRSMSX102.ger.corp.intel.com \
    --to=tomaszx.kulasek@intel.com \
    --cc=dev@dpdk.org \
    --cc=huilongx.xu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).