Re: [PATCH 1/5] pid: Implement task references.

From: Eric W. Biederman
Date: Mon Jan 30 2006 - 15:44:50 EST


Eric Dumazet <dada1@xxxxxxxxxxxxx> writes:

> Greg KH a écrit :
>> On Mon, Jan 30, 2006 at 06:19:35AM +0100, Eric Dumazet wrote:
>>> Example of improvement in kref_put() :
>>>
>>> [PATCH] kref : Avoid an atomic operation in kref_put() when the last
>>> reference is dropped. On most platforms, atomic_read() is a plan read of the
>>> counter and involves no atomic at all.
>> No, we wat to decrement and test at the same time, to protect against
>> any race where someone is incrementing right when we are dropping the
>> last reference.
>
> Sorry ? Me confused !

Largely I think you have the right of it, that the optimization is
correct. My biggest complaint is that the common case is going to be
several references to the data structure. Releasing the references
will always be slow. To do the read you need to get the value into
the cache line.

So it looks to me like you are optimizing the wrong case and
bloating the icache with unnecessary code.

Eric


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/