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!