[ovs-dev] [PATCH v4 03/12] classifier: Support table versioning

Ben Pfaff blp at nicira.com
Wed Jun 10 22:57:10 UTC 2015


On Wed, Jun 10, 2015 at 03:51:05PM -0700, Ben Pfaff wrote:
> On Tue, Jun 09, 2015 at 05:24:10PM -0700, Jarno Rajahalme wrote:
> > This patch allows classifier rules to become visible and invisible in
> > specific versions.  A 'version' is defined as a positive monotonically
> > increasing integer, which never wraps around.
> > 
> > The new 'visibility' attribute replaces the prior 'to_be_removed' and
> > 'visible' attributes.
> > 
> > When versioning is not used, the 'version' parameter should be passed
> > as 'CLS_MIN_VERSION' when creating rules, and 'CLS_MAX_VERSION' when
> > looking up flows.
> > 
> > This feature enables the support for atomic OpenFlow bundles without
> > significant performance penalty on 64-bit systems. There is a
> > performance decrease in 32-bit systems due to 64-bit atomics used.
> > 
> > Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> 
> The two comments
> 
>     /* clang does not want to read from a const atomic. */
> 
> stand out to me a little, because they imply that this is a special
> property of Clang.  I don't think that's true; rather, it's a
> consequence of the C standard definition, which defines atomic "load"
> operations as taking plain types, not const-qualified ones.  I think
> that goes back, historically, to the definition of a "side effect" in C:
> 
>     Accessing a volatile object, modifying an object, modifying a file,
>     or calling a function that does any of those operations are all side
>     effects, which are changes in the state of the execution
>     environment.
> 
> That is, *any* access to a volatile object (not just a write) is a side
> effect (and thus cannot be optimized out by the compiler).  I get the
> impression that a lot of behavior for atomic types in C11 is related to
> volatile types.
> 
> Anyway, personally I'd either drop the comments or just s/clang/C11/.
> 
> Acked-by: Ben Pfaff <blp at nicira.com>

This patch adds an XXX, is that removed in some later patch?



More information about the dev mailing list