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

From: Eric W. Biederman
Date: Sun Jan 29 2006 - 16:58:49 EST


Greg KH <greg@xxxxxxxxx> writes:

> On Sun, Jan 29, 2006 at 12:22:34AM -0700, Eric W. Biederman wrote:
>> +struct task_ref
>> +{
>> + atomic_t count;
>
> Please use a struct kref here, instead of your own atomic_t, as that's
> why it is in the kernel :)
>
>> + enum pid_type type;
>> + struct task_struct *task;
>> +};
>
> thanks,

I would rather not. Whenever I look at struct kref it seems to be an over
abstraction, and as such I find it confusing to work with. I know
whenever I look at the sysfs code I have to actively remind myself
that the kref in the structure is not a pointer to a kref.

What does the kref abstraction buy? How does it simplify things?
We already have equivalent functions in atomic_t on which it is built.

It is a funny piece of code to come up in this thread where the
argument has been don't over abstract.... (with reference to pids).

If I can see where struct kref buys something or helps in some way
I will be willing to consider it.

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/