mbox series

[ovs-dev,v2,0/5] pflow_output and ct_zone engine improvements.

Message ID 20210716114158.1895109-1-numans@ovn.org
Headers show
Series pflow_output and ct_zone engine improvements. | expand

Message

Numan Siddique July 16, 2021, 11:41 a.m. UTC
From: Numan Siddique <numans@ovn.org>

This patch series attempts to improve the handling of runtime_data
changes in the engine nodes - ct_zones and pflow_output.
It also attempts to improve the handling of ct_zones change in
pflow_output engine.


After this patch series,  the amount of full recomputes of pflow_output
engine is reduced drastically.  This helps in scaled environments.

For example with the simple ovn-scale-test which creates 20 logical
ports (10 each in one logical switch) and binds it equally on two chassis,
reduces the number of physical_run() calls from around 30 to around 8.

v1 -> v2
----
  * Rebased to resolve the conflct.

Numan Siddique (5):
  controller: Move 'struct local_datapath' to a separate file.
  binding: Add the localport port binding in the binding_lport
    information.
  binding: Track the changes of container lport when it's parent
    changes.
  I-P: Handle runtime data changes for plow_output engine.
  controller: Improve ct zone handling.

 controller/automake.mk      |   4 +-
 controller/binding.c        | 565 ++++++++++++++----------------------
 controller/binding.h        |  36 ++-
 controller/ldata.c          | 537 ++++++++++++++++++++++++++++++++++
 controller/ldata.h          | 164 +++++++++++
 controller/lflow.c          |   6 +-
 controller/lflow.h          |   1 +
 controller/lport.c          |  40 +++
 controller/lport.h          |   7 +-
 controller/ovn-controller.c | 251 +++++++++++-----
 controller/ovn-controller.h |  42 ---
 controller/patch.c          |   1 +
 controller/physical.c       | 382 ++++++------------------
 controller/physical.h       |  13 +-
 controller/pinctrl.c        |   1 +
 lib/inc-proc-eng.h          |   4 +
 tests/ovn-controller.at     |  35 ++-
 tests/ovn.at                |   2 +-
 18 files changed, 1320 insertions(+), 771 deletions(-)
 create mode 100644 controller/ldata.c
 create mode 100644 controller/ldata.h

Comments

Mark Michelson July 22, 2021, 8:37 p.m. UTC | #1
Hi Numan,

Looking at this series, I realize that this section of the OVN code is 
not exactly my wheelhouse. While I don't spot anything obviously 
incorrect (e.g. memory leaks, failing tests), I think to properly give 
this the scrutiny it needs, it would require me to study the code again 
to ensure I understand all the ins and outs. I will do this in my free 
time so that I can give better reviews in the future, but for now in the 
interest of expediency, I will put:

Reviewed-by: Mark Michelson <mmichels@redhat.com>

I'm going to unassign myself from this review so that someone else can 
give a better review.

On 7/16/21 7:41 AM, numans@ovn.org wrote:
> From: Numan Siddique <numans@ovn.org>
> 
> This patch series attempts to improve the handling of runtime_data
> changes in the engine nodes - ct_zones and pflow_output.
> It also attempts to improve the handling of ct_zones change in
> pflow_output engine.
> 
> 
> After this patch series,  the amount of full recomputes of pflow_output
> engine is reduced drastically.  This helps in scaled environments.
> 
> For example with the simple ovn-scale-test which creates 20 logical
> ports (10 each in one logical switch) and binds it equally on two chassis,
> reduces the number of physical_run() calls from around 30 to around 8.
> 
> v1 -> v2
> ----
>    * Rebased to resolve the conflct.
> 
> Numan Siddique (5):
>    controller: Move 'struct local_datapath' to a separate file.
>    binding: Add the localport port binding in the binding_lport
>      information.
>    binding: Track the changes of container lport when it's parent
>      changes.
>    I-P: Handle runtime data changes for plow_output engine.
>    controller: Improve ct zone handling.
> 
>   controller/automake.mk      |   4 +-
>   controller/binding.c        | 565 ++++++++++++++----------------------
>   controller/binding.h        |  36 ++-
>   controller/ldata.c          | 537 ++++++++++++++++++++++++++++++++++
>   controller/ldata.h          | 164 +++++++++++
>   controller/lflow.c          |   6 +-
>   controller/lflow.h          |   1 +
>   controller/lport.c          |  40 +++
>   controller/lport.h          |   7 +-
>   controller/ovn-controller.c | 251 +++++++++++-----
>   controller/ovn-controller.h |  42 ---
>   controller/patch.c          |   1 +
>   controller/physical.c       | 382 ++++++------------------
>   controller/physical.h       |  13 +-
>   controller/pinctrl.c        |   1 +
>   lib/inc-proc-eng.h          |   4 +
>   tests/ovn-controller.at     |  35 ++-
>   tests/ovn.at                |   2 +-
>   18 files changed, 1320 insertions(+), 771 deletions(-)
>   create mode 100644 controller/ldata.c
>   create mode 100644 controller/ldata.h
>
Han Zhou July 22, 2021, 11:18 p.m. UTC | #2
On Thu, Jul 22, 2021 at 1:37 PM Mark Michelson <mmichels@redhat.com> wrote:
>
> Hi Numan,
>
> Looking at this series, I realize that this section of the OVN code is
> not exactly my wheelhouse. While I don't spot anything obviously
> incorrect (e.g. memory leaks, failing tests), I think to properly give
> this the scrutiny it needs, it would require me to study the code again
> to ensure I understand all the ins and outs. I will do this in my free
> time so that I can give better reviews in the future, but for now in the
> interest of expediency, I will put:
>
> Reviewed-by: Mark Michelson <mmichels@redhat.com>
>
> I'm going to unassign myself from this review so that someone else can
> give a better review.

Thanks Mark. I assigned to myself, and I will try to send feedback by next
Monday.

Han
>
> On 7/16/21 7:41 AM, numans@ovn.org wrote:
> > From: Numan Siddique <numans@ovn.org>
> >
> > This patch series attempts to improve the handling of runtime_data
> > changes in the engine nodes - ct_zones and pflow_output.
> > It also attempts to improve the handling of ct_zones change in
> > pflow_output engine.
> >
> >
> > After this patch series,  the amount of full recomputes of pflow_output
> > engine is reduced drastically.  This helps in scaled environments.
> >
> > For example with the simple ovn-scale-test which creates 20 logical
> > ports (10 each in one logical switch) and binds it equally on two
chassis,
> > reduces the number of physical_run() calls from around 30 to around 8.
> >
> > v1 -> v2
> > ----
> >    * Rebased to resolve the conflct.
> >
> > Numan Siddique (5):
> >    controller: Move 'struct local_datapath' to a separate file.
> >    binding: Add the localport port binding in the binding_lport
> >      information.
> >    binding: Track the changes of container lport when it's parent
> >      changes.
> >    I-P: Handle runtime data changes for plow_output engine.
> >    controller: Improve ct zone handling.
> >
> >   controller/automake.mk      |   4 +-
> >   controller/binding.c        | 565 ++++++++++++++----------------------
> >   controller/binding.h        |  36 ++-
> >   controller/ldata.c          | 537 ++++++++++++++++++++++++++++++++++
> >   controller/ldata.h          | 164 +++++++++++
> >   controller/lflow.c          |   6 +-
> >   controller/lflow.h          |   1 +
> >   controller/lport.c          |  40 +++
> >   controller/lport.h          |   7 +-
> >   controller/ovn-controller.c | 251 +++++++++++-----
> >   controller/ovn-controller.h |  42 ---
> >   controller/patch.c          |   1 +
> >   controller/physical.c       | 382 ++++++------------------
> >   controller/physical.h       |  13 +-
> >   controller/pinctrl.c        |   1 +
> >   lib/inc-proc-eng.h          |   4 +
> >   tests/ovn-controller.at     |  35 ++-
> >   tests/ovn.at                |   2 +-
> >   18 files changed, 1320 insertions(+), 771 deletions(-)
> >   create mode 100644 controller/ldata.c
> >   create mode 100644 controller/ldata.h
> >
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev