[lkml]   [2009]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 1/3] net: introduce a list of device addresses dev_addr_list (v3)
Jiri Pirko a écrit :
> Fri, Apr 17, 2009 at 05:33:15PM CEST, wrote:
> <snip>
>>> +struct netdev_hw_addr {
>>> + struct list_head list;
>>> + unsigned char addr[MAX_ADDR_LEN];
>>> + int refcount;
>>> + struct rcu_head rcu_head;
>>> +};
>> Minor nit, the ordering of elements cause holes that might not be
>> needed.
> Agree that ordering might be done better. Will do.
>> Space saving? is rcu_head needed or would using synchronize_net
>> make code cleaner and save space.
> Well I originaly had this done by synchronize_rcu(). Eric argued that it might
> cause especially __hw_addr_del_multiple_ii() to run long and suggested to use
> call_rcu() instead. I plan to switch this to kfree_rcu() (or whatever it's
> called) once it hits the tree.

Yes, and dont forget we wont save space, as we allocate a full
cache line to hold a 'struct netdev_hw_addr', since we dont want this
critical and read_mostly object polluted by a hot spot elsewhere in kernel...

Considering this, letting 'rcu_head' at the end of structure, even if we
have an eventual hole on 64 bit arches is not really a problem, and IMHO
the best thing to do, as rcu_head is only used at dismantle time.

And yes, maybe kfree_rcu() will makes its way in kernel, eventually :)

Thank you

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2009-04-18 09:39    [W:0.076 / U:57.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site