![]() | |||||||||||||
Messages in this thread |
On Tue, Oct 29, 2002 at 08:41:19AM +1100, Rusty Russell wrote: > If all current uses are embedded, can we remove the "void > *arg" and reduce the size of struct rcu_head by 25%? Users can always > embed it in their own struct which has a "void *arg", but if that's > the uncommon case, it'd be nice to slim it a little. All current cases are not embedded, synchronize_kernel() needs "arg" :-) > > It'd also be nice to change the double linked list to a single > too: as far as I can tell the only issue is the list_add_tail in > call_rcu(): how important is this ordering? It can be done by keeping > a head as well as a tail pointer if required. I can't see how the ordering of the RCU updates matter, so we can trivially change things internally without affecting the interface. That said, I disagree about the bloat issue, I don't see a problem there, atleast not yet. All the uses that I have seen so far, the additional "prev" pointer is a very small fraction of the total memory allocated for the objects. And it is certainly not an issue with IPC - just look at the values for SHMMNI, SEMMNI etc. > We must be looking at different variants of the patch. This one does: > IPC_RMID -> freeary() -> ipc_rcu_free -> kmalloc. > Grr... I thought Mingming's patch modified only IPC common code and was looking at the mm6 tree directly. My earlier suggestion is valid only if RCU head allocation is limited to grow_ary(). Otherwise, rcu_head should be embedded. Thanks -- Dipankar Sarma <dipankar@in.ibm.com> http://lse.sourceforge.net Linux Technology Center, IBM Software Lab, Bangalore, India. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 12:30 [W:0.611 / U:1.240 seconds] ©2003-2008 Jasper Spaans | |||||||||||||