Messages in this thread | | | Date | Wed, 8 Sep 2004 15:07:53 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [RFC][PATCH] Put size in array to get rid of barriers in grow_ary() |
| |
On Wed, Sep 08, 2004 at 04:39:43PM +0100, Hugh Dickins wrote: > On Tue, 7 Sep 2004, Paul E. McKenney wrote: > > > > The grow_ary() code has a number of explicit memory barriers, as does > > ipc_lock(). This patch gets rid of the need for some of these by > > placing the array size in the same block of memory containing the > > array itself, so that the array and the size cannot possibly get out > > of sync. Also uses rcu_assign_pointer() to get rid of the remaining > > smp_wmb(). > > But Paul, if you keep removing all these examples of memory barriers, > how can I be expected to learn how to use them properly?
But Hugh, I left quite a few smp_wmb()s in there just for you! ;-)
> Seriously, good, yes, the fewer "mb"s the better. > I could always educate myself from the older source.
Agreed!
> > Untested, therefore probably broken. > > Agreed ;)
Any specifics greatly appreciated, as always...
> > Thoughts? > > Wouldn't it be a little nicer to start ipc_ids off pointing to a > const ipc_id_ary of size 0, to avoid the various entries == NULL > tests you had to add?
I like this one!!! Will put a patch together. Manfred's recent patch applied a refcount, which negates the const part, but should be no problem to put a size-zero structure in the struct ipc_ids. (Having a separately allocated structure puts me back to checking NULL pointers due to possibility of allocation failure.)
Thanx, Paul - 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/
| |