mbox series

[ovs-dev,0/5] Rxq scheduling updates.

Message ID 20210604211856.915563-1-ktraynor@redhat.com
Headers show
Series Rxq scheduling updates. | expand

Message

Kevin Traynor June 4, 2021, 9:18 p.m. UTC
The first two patches do not provide new functionality for the user
(except the logs are reworked). They are reworking to make the
rxq scheduling and PMD auto load balance code more modular for cleanup
and to be used by subsequent patches. They are also removing the code
duplication between them by having some common functions they can both use.

1/5 reworks the current rxq scheduling code to make it more modular
and reusable.

2/5 makes PMD auto load balance reuse the common rxq scheduling code
and removes the duplication of the rxq scheduling code in PMD auto load
balance for making a dry run.

3/5 adds a new option to assign rxqs to pmds that incorporates the
estimated load of the PMD and removes the restriction for trying to
equally distribute the number of rxqs across the PMDs. This means it
is solely load based so will help optimize balancing the processing
load across the PMDs. With this method, a group of low loaded rxqs
may be on one PMD, while another PMD could have just one highly loaded
rxq.

4/5 provides a fallback for if the user tries to pin an rxq to a PMD with
pmd-rxq-affinity but the PMD is not in the pmd-cpu-mask. Previously it was
not polled.

5/5 adds an option to non-isolate the PMD when it is pinned with an rxq
using pmd-rxq-affinity.

Kevin Traynor (5):
  dpif-netdev: Rework rxq scheduling code.
  dpif-netdev: Make PMD auto load balance use common rxq scheduling.
  dpif-netdev: Add group rxq scheduling assignment type.
  dpif-netdev: Assign PMD for failed pinned rxqs.
  dpif-netdev: Allow pin rxq and non-isolate PMD.

 Documentation/topics/dpdk/pmd.rst |   41 +-
 lib/dpif-netdev.c                 | 1121 ++++++++++++++++++-----------
 tests/pmd.at                      |    7 +-
 vswitchd/vswitch.xml              |   24 +-
 4 files changed, 781 insertions(+), 412 deletions(-)

Comments

David Marchand June 24, 2021, 3:42 p.m. UTC | #1
On Fri, Jun 4, 2021 at 11:19 PM Kevin Traynor <ktraynor@redhat.com> wrote:
>
> The first two patches do not provide new functionality for the user
> (except the logs are reworked). They are reworking to make the
> rxq scheduling and PMD auto load balance code more modular for cleanup
> and to be used by subsequent patches. They are also removing the code
> duplication between them by having some common functions they can both use.
>
> 1/5 reworks the current rxq scheduling code to make it more modular
> and reusable.
>
> 2/5 makes PMD auto load balance reuse the common rxq scheduling code
> and removes the duplication of the rxq scheduling code in PMD auto load
> balance for making a dry run.
>
> 3/5 adds a new option to assign rxqs to pmds that incorporates the
> estimated load of the PMD and removes the restriction for trying to
> equally distribute the number of rxqs across the PMDs. This means it
> is solely load based so will help optimize balancing the processing
> load across the PMDs. With this method, a group of low loaded rxqs
> may be on one PMD, while another PMD could have just one highly loaded
> rxq.
>
> 4/5 provides a fallback for if the user tries to pin an rxq to a PMD with
> pmd-rxq-affinity but the PMD is not in the pmd-cpu-mask. Previously it was
> not polled.
>
> 5/5 adds an option to non-isolate the PMD when it is pinned with an rxq
> using pmd-rxq-affinity.
>
> Kevin Traynor (5):
>   dpif-netdev: Rework rxq scheduling code.
>   dpif-netdev: Make PMD auto load balance use common rxq scheduling.
>   dpif-netdev: Add group rxq scheduling assignment type.
>   dpif-netdev: Assign PMD for failed pinned rxqs.
>   dpif-netdev: Allow pin rxq and non-isolate PMD.

Overall, this series lgtm with the comments I sent.
It is worth adding some point in the NEWS file to advertise the new feature.
Kevin Traynor July 1, 2021, 11:24 p.m. UTC | #2
On 24/06/2021 16:42, David Marchand wrote:
> On Fri, Jun 4, 2021 at 11:19 PM Kevin Traynor <ktraynor@redhat.com> wrote:
>>
>> The first two patches do not provide new functionality for the user
>> (except the logs are reworked). They are reworking to make the
>> rxq scheduling and PMD auto load balance code more modular for cleanup
>> and to be used by subsequent patches. They are also removing the code
>> duplication between them by having some common functions they can both use.
>>
>> 1/5 reworks the current rxq scheduling code to make it more modular
>> and reusable.
>>
>> 2/5 makes PMD auto load balance reuse the common rxq scheduling code
>> and removes the duplication of the rxq scheduling code in PMD auto load
>> balance for making a dry run.
>>
>> 3/5 adds a new option to assign rxqs to pmds that incorporates the
>> estimated load of the PMD and removes the restriction for trying to
>> equally distribute the number of rxqs across the PMDs. This means it
>> is solely load based so will help optimize balancing the processing
>> load across the PMDs. With this method, a group of low loaded rxqs
>> may be on one PMD, while another PMD could have just one highly loaded
>> rxq.
>>
>> 4/5 provides a fallback for if the user tries to pin an rxq to a PMD with
>> pmd-rxq-affinity but the PMD is not in the pmd-cpu-mask. Previously it was
>> not polled.
>>
>> 5/5 adds an option to non-isolate the PMD when it is pinned with an rxq
>> using pmd-rxq-affinity.
>>
>> Kevin Traynor (5):
>>   dpif-netdev: Rework rxq scheduling code.
>>   dpif-netdev: Make PMD auto load balance use common rxq scheduling.
>>   dpif-netdev: Add group rxq scheduling assignment type.
>>   dpif-netdev: Assign PMD for failed pinned rxqs.
>>   dpif-netdev: Allow pin rxq and non-isolate PMD.
> 
> Overall, this series lgtm with the comments I sent.
> It is worth adding some point in the NEWS file to advertise the new feature.
> 

Ack, I added a NEWS items for group and non-isolate.

Thanks for reviewing and testing.

Kevin.

>