All of lore.kernel.org
 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: [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: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03 10:58 [PATCH 0/8] Dynamic RSS Configuration for Bonding Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 1/8] bond: dynamic rss configuration Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 2/8] ring: " Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 3/8] test: " Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 4/8] bond: queue stats mapping Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 5/8] ring: queue stats mapping set dummy implementation Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 6/8] examples: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 7/8] doc: fixed spellings and typos Tomasz Kulasek
2015-06-03 10:59 ` [PATCH 8/8] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-12  5:36 ` [PATCH 0/8] Dynamic RSS Configuration for Bonding Xu, HuilongX
2015-06-25  9:20   ` Kulasek, TomaszX [this message]
2015-06-19 14:13 ` [PATCH v2 " Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 1/8] bond: rss dynamic configuration Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 2/8] ring: dynamic rss configuration Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 3/8] test: " Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 4/8] bond: queue stats mapping Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 5/8] ring: queue stats mapping set dummy implementation Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 6/8] examples: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 7/8] doc: fixed spellings and typos Tomasz Kulasek
2015-06-19 14:13   ` [PATCH v2 8/8] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-06-26  7:33   ` [PATCH v2 0/8] Dynamic RSS Configuration for Bonding Doherty, Declan
2015-06-28 21:54     ` Thomas Monjalon
2015-06-29 14:50   ` [PATCH v3 " Tomasz Kulasek
2015-06-29 14:50     ` [PATCH v3 1/8] bonding: rss dynamic configuration Tomasz Kulasek
2015-06-29 14:50     ` [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     ` [PATCH v3 3/8] test: " Tomasz Kulasek
2015-06-29 14:50     ` [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     ` [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     ` [PATCH v3 6/8] examples: dynamic rss configuration for bonding Tomasz Kulasek
2015-07-13 11:20       ` Thomas Monjalon
2015-06-29 14:50     ` [PATCH v3 7/8] doc: fixed spellings and typos Tomasz Kulasek
2015-06-29 14:50     ` [PATCH v3 8/8] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-07-01 10:05     ` [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     ` [PATCHv4 0/9] " Tomasz Kulasek
2015-07-15 17:26       ` [PATCHv4 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-07-15 17:26       ` [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       ` [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       ` [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       ` [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       ` [PATCHv4 6/9] test: dynamic rss configuration Tomasz Kulasek
2015-07-15 17:26       ` [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       ` [PATCHv4 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-07-15 17:26       ` [PATCHv4 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-09-25 10:16       ` [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       ` [PATCH v5 " Tomasz Kulasek
2015-09-30 14:04         ` [PATCH v5 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-09-30 14:04         ` [PATCH v5 2/9] null: fix segfault when null_pmd added to bonding Tomasz Kulasek
2015-10-14  1:34           ` Tetsuya Mukawa
2015-09-30 14:04         ` [PATCH v5 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-10-14  1:34           ` Tetsuya Mukawa
2015-09-30 14:05         ` [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         ` [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         ` [PATCH v5 6/9] test: dynamic rss configuration Tomasz Kulasek
2015-09-30 14:05         ` [PATCH v5 7/9] bonding: per queue stats Tomasz Kulasek
2015-09-30 14:05         ` [PATCH v5 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-09-30 14:05         ` [PATCH v5 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-10-16 10:00         ` [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Tomasz Kulasek
2015-10-16 10:00           ` [PATCH v6 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-10-16 10:00           ` [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           ` [PATCH v6 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-10-16 10:00           ` [PATCH v6 4/9] null: export eth_dev_null_create Tomasz Kulasek
2015-10-16 10:00           ` [PATCH v6 5/9] null: virtual dynamic rss configuration Tomasz Kulasek
2015-10-16 10:00           ` [PATCH v6 6/9] test: " Tomasz Kulasek
2015-10-27 17:34             ` Thomas Monjalon
2015-10-16 10:00           ` [PATCH v6 7/9] bonding: per queue stats Tomasz Kulasek
2015-10-16 10:00           ` [PATCH v6 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-10-16 10:00           ` [PATCH v6 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-10-19 13:22           ` [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Declan Doherty
2015-10-30 14:25           ` [PATCH v7 " Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 1/9] bonding: rss dynamic configuration Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 2/9] null: fix segfault when null_pmd added to bonding Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 3/9] null: extend number of virtual queues Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 4/9] null: export eth_dev_null_create Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 5/9] null: virtual dynamic rss configuration Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 6/9] test: " Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 7/9] bonding: per queue stats Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 8/9] doc: fixed spellings and typos Tomasz Kulasek
2015-10-30 14:25             ` [PATCH v7 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
2015-11-01 17:29             ` [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.