DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v7 9/9] doc: dynamic rss configuration for bonding
@ 2015-10-30 13:56 Tomasz Kulasek
  0 siblings, 0 replies; 2+ messages in thread
From: Tomasz Kulasek @ 2015-10-30 13:56 UTC (permalink / raw)
  To: dev

Date: Fri, 30 Oct 2015 14:56:04 +0100
Message-Id: <1446213364-11856-10-git-send-email-tomaszx.kulasek@intel.com>
X-Mailer: git-send-email 2.1.4
In-Reply-To: <1446213364-11856-1-git-send-email-tomaszx.kulasek@intel.com>
References: <1444989651-6236-1-git-send-email-tomaszx.kulasek@intel.com>
 <1446213364-11856-1-git-send-email-tomaszx.kulasek@intel.com>

Documentation update about implementation details and requirements for

Dynamic RSS Configuration for Bonding.



Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>

Acked-by: Declan Doherty <declan.doherty@intel.com>

---

 .../prog_guide/link_bonding_poll_mode_drv_lib.rst  |   34 ++++++++++++++++++--

 1 file changed, 32 insertions(+), 2 deletions(-)



diff --git a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst

index 03baf90..46f0296 100644

--- a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst

+++ b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst

@@ -1,5 +1,5 @@

 ..  BSD LICENSE

-    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.

+    Copyright(c) 2010-2015 Intel Corporation. All rights reserved.

     All rights reserved.

 

     Redistribution and use in source and binary forms, with or without

@@ -173,7 +173,28 @@ After a slave device is added to a bonded device slave is stopped using

 ``rte_eth_dev_stop`` and then reconfigured using ``rte_eth_dev_configure``

 the RX and TX queues are also reconfigured using ``rte_eth_tx_queue_setup`` /

 ``rte_eth_rx_queue_setup`` with the parameters use to configure the bonding

-device.

+device. If RSS is enabled for bonding device, this mode is also enabled on new

+slave and configured as well.

+

+Setting up multi-queue mode for bonding device to RSS, makes it fully

+RSS-capable, so all slaves are synchronized with its configuration. This mode is

+intended to provide RSS configuration on slaves transparent for client

+application implementation.

+

+Bonding device stores its own version of RSS settings i.e. RETA, RSS hash

+function and RSS key, used to set up its slaves. That let to define the meaning

+of RSS configuration of bonding device as desired configuration of whole bonding

+(as one unit), without pointing any of slave inside. It is required to ensure

+consistency and made it more errorproof.

+

+RSS hash function set for bonding device, is a maximal set of RSS hash functions

+supported by all bonded slaves. RETA size is a GCD of all its RETA's sizes, so

+it can be easily used as a pattern providing expected behavior, even if slave

+RETAs' sizes are different. If RSS Key is not set for bonded device, it's not

+changed on the slaves and default key for device is used.

+

+All settings are managed through the bonding port API and always are propagated

+in one direction (from bonding to slaves).

 

 Link Status Change Interrupts / Polling

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@@ -207,6 +228,15 @@ these parameters.

 A bonding device must have a minimum of one slave before the bonding device

 itself can be started.

 

+To use a bonding device dynamic RSS configuration feature effectively, it is

+also required, that all slaves should be RSS-capable and support, at least one

+common hash function available for each of them. Changing RSS key is only

+possible, when all slave devices support the same key size.

+

+To prevent inconsistency on how slaves process packets, once a device is added

+to a bonding device, RSS configuration should be managed through the bonding

+device API, and not directly on the slave.

+

 Like all other PMD, all functions exported by a PMD are lock-free functions

 that are assumed not to be invoked in parallel on different logical cores to

 work on the same target object.

-- 

1.7.9.5

^ permalink raw reply	[flat|nested] 2+ messages in thread
* [dpdk-dev] [PATCH v6 0/9] Dynamic RSS Configuration for Bonding
@ 2015-10-16 10:00 Tomasz Kulasek
  2015-10-30 14:25 ` [dpdk-dev] [PATCH v7 " Tomasz Kulasek
  0 siblings, 1 reply; 2+ messages in thread
From: Tomasz Kulasek @ 2015-10-16 10:00 UTC (permalink / raw)
  To: dev

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.

v6 changes:
 - patchset reordered
 - fixed forward dependency between patch 4/9 and 5/9

v5 changes:
 - updated to DPDK 2.2
 - removed copyright change from null device source
 - removed queue_stats_mapping_set from eth_dev_ops of bonding device
 - null pmd cleanups (removed unnecessary malloc, replaced memcpy with
   rte_memcpy)
 - fixed queues number configuration in null pmd

v4 changes:
 - fixed copy-paste error,
 - removed example application as too complex and introducing a new
   dependency,
 - addapted null pmd to be used as testing device for dynamic RSS configuration,
 - addapted test units to use null pmd instead of ring pmd,
 - ring pmd is not used and changed in this patchset

v3 changes:
 - checkpatch cleanups

v2 changes:
 - added support for keys other than 40 bytes long,
 - now, if RSS key is not set for bonding, it is not set also for slaves,
 - fix - full initial RSS configuration before any slave is added was not
   possible due to the initially zeroed flow_type_rss_offloads for bonding,
 - fix - changed error to warning when slave is synchronizing due to the
   bonding's initial configuration (to allow use slaves' drivers not supporting
   dynamic RSS configuration in bonding),
 - some code cleanups,
 - updated documentation,

Tomasz Kulasek (9):
  bonding: rss dynamic configuration
  null: fix segfault when null_pmd added to bonding
  null: extend number of virtual queues
  null: export eth_dev_null_create
  null: virtual dynamic rss configuration
  test: dynamic rss configuration
  bonding: per queue stats
  doc: fixed spellings and typos
  doc: dynamic rss configuration for bonding

 app/test/Makefile                                  |    8 +
 app/test/test_link_bonding_rssconf.c               |  679 ++++++++++++++++++++
 .../prog_guide/link_bonding_poll_mode_drv_lib.rst  |   42 +-
 drivers/net/bonding/rte_eth_bond_api.c             |   28 +
 drivers/net/bonding/rte_eth_bond_pmd.c             |  216 ++++++-
 drivers/net/bonding/rte_eth_bond_private.h         |   12 +
 drivers/net/null/Makefile                          |    2 +-
 drivers/net/null/rte_eth_null.c                    |  149 ++++-
 drivers/net/null/rte_eth_null.h                    |   40 ++
 drivers/net/null/rte_pmd_null_version.map          |    7 +
 10 files changed, 1151 insertions(+), 32 deletions(-)
 create mode 100644 app/test/test_link_bonding_rssconf.c
 create mode 100644 drivers/net/null/rte_eth_null.h

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-10-30 14:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-30 13:56 [dpdk-dev] [PATCH v7 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek
  -- strict thread matches above, loose matches on Subject: below --
2015-10-16 10:00 [dpdk-dev] [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Tomasz Kulasek
2015-10-30 14:25 ` [dpdk-dev] [PATCH v7 " Tomasz Kulasek
2015-10-30 14:25   ` [dpdk-dev] [PATCH v7 9/9] doc: dynamic rss configuration for bonding Tomasz Kulasek

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).