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/