On Apr 29, 2014, at 2:55 PM, Jarno Rajahalme <jrajaha...@nicira.com> wrote:

> 
> On Apr 24, 2014, at 9:18 AM, Ben Pfaff <b...@nicira.com> wrote:
> 
>> On Thu, Apr 24, 2014 at 09:09:03AM -0700, Jarno Rajahalme wrote:
>>> rule_dpif_is_internal is among the top ten OVS internal functions in
>>> recent perf reports.  Inline it and some other equally trivial
>>> functions.
>>> 
>>> This change removes rule_is_internal(), since the fact that a table is
>>> an internal one is defined within ofproto-dpif, not ofproto.
>>> 
>>> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>
>> 
>> I'd prefer to have this assumption that struct rule_dpif begins with
>> struct rule in just one place, if we can.  In fact, it looks like you
>> had the same idea, but didn't follow through:
>> 
>>   /* rule_cast() depends on this. */
>>   BUILD_ASSERT_DECL(offsetof(struct rule_dpif, up) == 0);
>> 
> 
> You are right, I went back and forth with this. I’ll check this a 
> rule_cast__() inline used for all the casting.
> 

I changed my mind a bit. I’d like to use a macro (RULE_CAST(RULE)) instead, so 
that I can undef it right after the inlines. This way the rest of the code 
can’t start depending on the offset of struct rule within the struct rule_dpif 
by accident.

  Jarno

>> Otherwise I'm happy with this, thanks!
> 
> Thanks!
> 
>  Jarno
> 

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to