Re: [ovs-dev] [PATCH net-next v8 1/1] net: openvswitch: reduce cpu_used_mask memory

From: Eelco Chaudron
Date: Mon Feb 06 2023 - 06:22:55 EST




On 5 Feb 2023, at 2:35, Eddy Tao wrote:

> Use actual CPU number instead of hardcoded value to decide the size
> of 'cpu_used_mask' in 'struct sw_flow'. Below is the reason.
>
> 'struct cpumask cpu_used_mask' is embedded in struct sw_flow.
> Its size is hardcoded to CONFIG_NR_CPUS bits, which can be
> 8192 by default, it costs memory and slows down ovs_flow_alloc.
>
> To address this:
> Redefine cpu_used_mask to pointer.
> Append cpumask_size() bytes after 'stat' to hold cpumask.
> Initialization cpu_used_mask right after stats_last_writer.
>
> APIs like cpumask_next and cpumask_set_cpu never access bits
> beyond cpu count, cpumask_size() bytes of memory is enough.
>
> Signed-off-by: Eddy Tao <taoyuan_eddy@xxxxxxxxxxx>

The changes look good to me. Hopefully this is the last revision ;)

Acked-by: Eelco Chaudron <echaudro@xxxxxxxxxx>