[ovs-dev] sparse warnings in flow_table.c

Andy Zhou azhou at nicira.com
Tue Jun 24 06:08:31 UTC 2014


Sorry, I did not have "CONFIG_SPARSE_RCU_POINTER=y" with my running
kernel (stock 14.04 kernel), sparse did not generate this warning on
my system. Now I recompiled kernel, sparse works properly now.  I will
send out a patch soon.  Thanks for reporting it.

On Mon, Jun 23, 2014 at 10:54 AM, Ben Pfaff <blp at nicira.com> wrote:
> I get the following sparse warnings on current master:
>
>     datapath/linux/flow_table.c:289:26: error: incompatible types in comparison expression (different address spaces)
>     datapath/linux/flow_table.c:300:26: error: incompatible types in comparison expression (different address spaces)
>
> They appear to have been added by:
>
> commit 6ddb63134def5509640e5b7713eea39095e1d17f
> Author: Andy Zhou <azhou at nicira.com>
> Date:   Mon Jun 16 12:45:04 2014 -0700
>
>     datapath: keep mask array compact when deleting mask
>
>     When deleting a mask from the mask array, we always move the last entry
>     into its current location. Another approach can be NULL in its
>     current place, and periodically compact it.
>
>     The approach taken by this patch is more efficient during run
>     time.  During look up, fast path packet don't have to skip over NULL
>     pointers.
>
>     A more important advantage of this approach is that it tries to
>     keep the mask array index stable by avoiding periodic index
>     reshuffle.
>
>     This patch implements an optimization to further promote index
>     stability.  By leaving the last entry value intact when moving it
>     to a new location, the old cache index can 'fix' themselves, by noticing
>     the index in the cache is outside the valid mask array region. The
>     new index can be found by scanning the mask pointer within the valid
>     rtegion.
>
>     Signed-off-by: Andy Zhou <azhou at nicira.com>
>     Acked-by: Pravin B Shelar <pshelar at nicira.com>
>
> Thanks,
>
> Ben.



More information about the dev mailing list