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 <[email protected]> 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 <[email protected]> > 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 <[email protected]> > Acked-by: Pravin B Shelar <[email protected]> > > Thanks, > > Ben. _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
