[ovs-dev] [RFC 1/3] ovn-controller: Count calls to lflow_run()
Han Zhou
zhouhan at gmail.com
Mon May 21 22:54:48 UTC 2018
On Fri, May 18, 2018 at 9:55 AM, Jakub Sitnicki <jkbs at redhat.com> wrote:
>
> lflow_run() is the main logical flows processing routine that we spend
> most of the CPU time in when testing at scale.
>
> With the switch to incremental processing approach in the controller,
> we will be trying to avoid calling to lflow_run() as much as possible.
>
> A counter lets us confirm that we are doing logical flow processing
> only when it's expected, without resorting to profiling under stress.
>
> It can also serve as a hint as to why ovn-controller process is
> consuming CPU time.
>
> Signed-off-by: Jakub Sitnicki <jkbs at redhat.com>
> ---
> ovn/controller/lflow.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/ovn/controller/lflow.c b/ovn/controller/lflow.c
> index d75e03ffb..171ee102d 100644
> --- a/ovn/controller/lflow.c
> +++ b/ovn/controller/lflow.c
> @@ -14,6 +14,7 @@
> */
>
> #include <config.h>
> +#include "coverage.h"
> #include "gchassis.h"
> #include "lflow.h"
> #include "lport.h"
> @@ -34,6 +35,8 @@
> #include "sset.h"
>
> VLOG_DEFINE_THIS_MODULE(lflow);
> +
> +COVERAGE_DEFINE(lflow_run);
>
> /* Symbol table. */
>
> @@ -553,6 +556,8 @@ lflow_run(struct ovn_desired_flow_table *flow_table,
> struct sset *local_lport_ids,
> uint32_t *conj_id_ofs)
> {
> + COVERAGE_INC(lflow_run);
> +
> add_logical_flows(flow_table, ctx, chassis_index, local_datapaths,
> group_table, meter_table, chassis, addr_sets,
> port_groups, active_tunnels, local_lport_ids,
> --
> 2.14.3
>
Jakub, thanks for adding the statistics for incremental processing!
Acked-by: Han Zhou <hzhou8 at ebay.com>
More information about the dev
mailing list