On Mon, Jun 24, 2019 at 10:39 PM Han Zhou <[email protected]> wrote:

>
>
> On Mon, Jun 24, 2019 at 3:59 AM <[email protected]> wrote:
> >
> > From: Numan Siddique <[email protected]>
> >
> > engine_node 'en_sb_port_binding' is added as input to engine nodes
> >   - 'en_runtime_data' with the handler
> runtime_data_sb_port_binding_handler() and
> >   - 'en_flow_output' with the handler
> flow_output_sb_port_binding_handler() nodes.
> >
> > Also 'en_runtime_data' is input to node 'en_flow_output'.
> >
> > The function 'engine_run()' returns immediately if the run_id param is
> same as
> > the engine_node->run_id. Because of which the handler
> 'flow_output_sb_port_binding_handler()'
> > is never called.
> >
> > This patch removes this check in engine_run().
> >
> > Signed-off-by: Numan Siddique <[email protected]>
> > ---
> >  ovn/lib/inc-proc-eng.c | 3 ---
> >  1 file changed, 3 deletions(-)
> >
> > diff --git a/ovn/lib/inc-proc-eng.c b/ovn/lib/inc-proc-eng.c
> > index 1ddea1a85..10ebd047b 100644
> > --- a/ovn/lib/inc-proc-eng.c
> > +++ b/ovn/lib/inc-proc-eng.c
> > @@ -124,9 +124,6 @@ engine_ovsdb_node_add_index(struct engine_node
> *node, const char *name,
> >  void
> >  engine_run(struct engine_node *node, uint64_t run_id)
> >  {
> > -    if (node->run_id == run_id) {
> > -        return;
> > -    }
> >      node->run_id = run_id;
> >
> >      node->changed = false;
> > --
> > 2.21.0
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
> I think this change causes problems. engine_run() is called recursively
> when traversing the DAG. The check for run_id is just to make sure each
> node is visited once only. When a node is visited, it will process each of
> its input, and none of the input change handlers will be missed (unless
> there is some input triggers recompute of this node already and the rest of
> inputs are omitted). You didn't see 'flow_output_sb_port_binding_handler()'
> called maybe because in en_runtime_data it is already triggering recompute?
> Please let me know if I missed anything.
>

I had a doubt about this patch. Nonetheless submitted to get your inputs.
Probably with the fix in patch 3, I should see
flow_output_sb_port_binding_handler() being called right ?
I will test it out again without this patch in the series and see if
flow_output_sb_port_binding_handler() is getting called or not.

Thanks
Numan
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to