diff options
author | Kevin Traynor <ktraynor@redhat.com> | 2021-07-16 17:02:09 +0100 |
---|---|---|
committer | Ian Stokes <ian.stokes@intel.com> | 2021-07-16 16:51:47 +0100 |
commit | 3dd050909a74229f024da30ae4800ede79883248 (patch) | |
tree | 129cc8b9426ed20a9552fa7d44a98efee8b7eca5 /vswitchd | |
parent | 4fb54652e010c4fc3d4e2d310c64465ffcad2c23 (diff) | |
download | openvswitch-3dd050909a74229f024da30ae4800ede79883248.tar.gz |
dpif-netdev: Add group rxq scheduling assignment type.
Add an rxq scheduling option that allows rxqs to be grouped
on a pmd based purely on their load.
The current default 'cycles' assignment sorts rxqs by measured
processing load and then assigns them to a list of round robin PMDs.
This helps to keep the rxqs that require most processing on different
cores but as it selects the PMDs in round robin order, it equally
distributes rxqs to PMDs.
'cycles' assignment has the advantage in that it separates the most
loaded rxqs from being on the same core but maintains the rxqs being
spread across a broad range of PMDs to mitigate against changes to
traffic pattern.
'cycles' assignment has the disadvantage that in order to make the
trade off between optimising for current traffic load and mitigating
against future changes, it tries to assign and equal amount of rxqs
per PMD in a round robin manner and this can lead to a less than optimal
balance of the processing load.
Now that PMD auto load balance can help mitigate with future changes in
traffic patterns, a 'group' assignment can be used to assign rxqs based
on their measured cycles and the estimated running total of the PMDs.
In this case, there is no restriction about keeping equal number of
rxqs per PMD as it is purely load based.
This means that one PMD may have a group of low load rxqs assigned to it
while another PMD has one high load rxq assigned to it, as that is the
best balance of their measured loads across the PMDs.
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Sunil Pai G <sunil.pai.g@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Diffstat (limited to 'vswitchd')
-rw-r--r-- | vswitchd/vswitch.xml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index 5105614b9..cf6937501 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -523,7 +523,7 @@ <column name="other_config" key="pmd-rxq-assign" type='{"type": "string", - "enum": ["set", ["cycles", "roundrobin"]]}'> + "enum": ["set", ["cycles", "roundrobin", "group"]]}'> <p> Specifies how RX queues will be automatically assigned to CPU cores. Options: @@ -533,6 +533,9 @@ before being assigned to CPU cores.</dd> <dt><code>roundrobin</code></dt> <dd>Rxqs will be round-robined across CPU cores.</dd> + <dt><code>group</code></dt> + <dd>Rxqs will be sorted by order of measured processing cycles + before being assigned to CPU cores with lowest estimated load.</dd> </dl> </p> <p> |