Re: [PATCH net-next v12 5/5] openvswitch: Add support for unique flow IDs.

From: Joe Stringer
Date: Fri Jan 16 2015 - 15:54:00 EST


On 16 January 2015 at 00:07, Pravin Shelar <pshelar@xxxxxxxxxx> wrote:
>> @@ -213,13 +223,15 @@ struct flow_stats {
>>
>> struct sw_flow {
>> struct rcu_head rcu;
>> - struct hlist_node hash_node[2];
>> - u32 hash;
>> + struct {
>> + struct hlist_node node[2];
>> + u32 hash;
>> + } flow_table, ufid_table;
>> int stats_last_writer; /* NUMA-node id of the last writer on
>> * 'stats[0]'.
>> */
>> struct sw_flow_key key;
>> - struct sw_flow_key unmasked_key;
>> + struct sw_flow_id *id;
>> struct sw_flow_mask *mask;
>> struct sw_flow_actions __rcu *sf_acts;
>> struct flow_stats __rcu *stats[]; /* One for each NUMA node. First one
>> @@ -243,6 +255,16 @@ struct arp_eth_header {
>> unsigned char ar_tip[4]; /* target IP address */
>> } __packed;
>>
> In last round we agreed on following struct flow-id which saves around
> four hundred bytes per flow and kmalloc per flow add operation for
> common case. Is there any reason for not doing it?
>
> struct {
> u32 ufid_len;
> union {
> u32 ufid[MAX_UFID_LENGTH / 4];
> struct sw_flow_key *unmasked_key;
> }
> } id;

Ah, I thought I had addressed this before the holidays but it's
clearly not we had discussed. Thanks for bringing this up, I'll make
this change and repost.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/