Jiri Pirko a écrit : > Fri, Apr 17, 2009 at 05:33:15PM CEST, shemminger@xxxxxxxxxx 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 _______________________________________________ Bridge mailing list Bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/bridge