On 23/08/2022 00:10, Pablo Neira Ayuso wrote:
Hi Paul,
On Sun, Aug 21, 2022 at 12:23:39PM +0300, Paul Blakey wrote:
Hi!
The only functional difference here (for HW table) is your patches call
flush just for the del workqueue instead of del/stats/add, right?
Because in the end you do:
cancel_delayed_work_sync(&flow_table->gc_work);
nf_flow_table_offload_flush(flow_table);
nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL);
nf_flow_table_gc_run(flow_table);
nf_flow_table_offload_flush_cleanup(flow_table);
resulting in the following sequence (after expending flush_cleanup()):
cancel_delayed_work_sync(&flow_table->gc_work);
nf_flow_table_offload_flush(flow_table);
nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL);
nf_flow_table_gc_run(flow_table);
flush_workqueue(nf_flow_offload_del_wq);
nf_flow_table_gc_run(flowtable);
Where as my (and Volodymyr's) patch does:
cancel_delayed_work_sync(&flow_table->gc_work);
nf_flow_table_offload_flush(flow_table);
nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL);
nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, NULL);
nf_flow_table_offload_flush(flow_table);
nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, NULL);
so almost identical, I don't see "extra reiterative calls to flush" here,
but I'm fine with just your patch as it's more efficient, can we take yours
to both gits?
Yes, I'll submit them. I'll re-use your patch description.
Maybe I get a Tested-by: tag from you?
Thanks!
Sure I'll test and post.
Thanks.