This patch series is the first attempt of ovn-controller multi-threading. The intention is to avoid flow re-computing being triggered by unrelated input. An obvious example is that packet-in message from vswitchd to ovn-controller will trigger full round of flow computing before processing the actual packet-in message, such as DHCP request. This becomes a serious problem in large scale environment where each ovn-controller has large amount of flows to compute and install. It will be even worse considering in the future we use ovn-controller packet-in for packet logging.
An alternative approach has been tried but didn't go well, which was discussed in the link below: https://mail.openvswitch.org/pipermail/ovs-dev/2017-May/331813.html Han Zhou (4): ovn-controller: decouple localnet_port update from patch_run ovn-controller: readonly mode binding_run and get_br_int ovn-controller: refactor and abstract ovs_idl registering ovn-controller: Use separate thread for packet-in processing. ovn/controller/binding.c | 54 ++++++++++++++++-- ovn/controller/binding.h | 2 +- ovn/controller/ovn-controller.c | 121 ++++++++++++++++++++++++---------------- ovn/controller/ovn-controller.h | 33 +++++++++++ ovn/controller/patch.c | 30 +--------- ovn/controller/patch.h | 2 +- ovn/controller/pinctrl.c | 96 +++++++++++++++++++++++++++++++ ovn/controller/pinctrl.h | 1 + 8 files changed, 257 insertions(+), 82 deletions(-) -- 2.1.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
