[Devel] Re: [RFC][PATCH] rename 'struct pid'
Pavel Emelianov
xemul at sw.ru
Tue Apr 10 23:59:44 PDT 2007
Dave Hansen wrote:
> On Tue, 2007-04-10 at 22:52 -0600, Eric W. Biederman wrote:
>> Dave Hansen <hansendc at us.ibm.com> writes:
>>>> A pid (pid_t or
>>>> struct pid) isn't just an identfier it is a handle to processes.
>>>> struct pid just does so more directly because it is inside the kernel.
>>> Let's face it, "pid" has a meaning. It's a number. It's what you
>>> kill(1). The meaning has been there for a long, long time. 'struct
>>> pid' is a completely different concept, and it's certainly more than
>>> "just a number".
>> Yes. "pid" has a meaning. The meaning is old and well established.
>> That meaning is not just a number, just like a file descriptor is not
>> just a number.
>
> That's a great example. Userspace fds are to 'struct file' as pids are
> to 'struct pid', right?
>
> I actually think 'struct file' is a pretty good name. Think of what
> do_sys_open() might look like if we called 'struct file' 'struct fd'
> instead and 'fdp' instead of 'filp'.
>
> We end up with lines like:
>
> fd_install(fd, fdp);
>
> Which makes it confusing which fd we're dealing with or what the 'fd_'
> in the name refers to, the 'fd' or the 'fdp'. It makes quite a bit of
> sense to have 'fd' and 'struct file' named quite distinctly.
Agree. int fd is a *file* descriptor, i.e. a number that describes
a file, which is a struct file essentially. That's the way pids must
be represented. E.g. the pid_t is a number, that references some
kernel-space object. This object is to be called somehow more
descriptive than just struct pid.
Maybe it's worth renaming struct pid into struct pid_struct to
represent the fact, that this is a pid, but also a structure?
>>> So, please consider that there are actual kernel developers hacking on
>>> this stuff who are having problem with it. The function of 'struct pid'
>>> is great, it's a wonderful concept. It just needs a slightly different
>>> name in order to more easily relate that concept to those that are
>>> trying to use it.
>>>
>>> If anyone can think of some more incremental ways to do this, or has
>>> other suggestions on how to make it more clear, I'm all ears.
>> So what I have seen are examples down in the guts of the pid hash
>> table that are problematic. And a few complaints about pid_nr.
>>
>> However the conversions I have done and I have looked at have just
>> been a drop in replacement for pid_t except for reference counting
>> issues. That to me at least is rather convincing.
>
> I think this is more indicative of the great design of 'struct pid' in
> concept. It truly is a drop-in replacement for how things were used in
> the past. The concept is *great*.
>
>> So I'm not convinced there is a fundamental problem. Just a bit of a
>> problem in the guts of things where everything seems to have the
>> same name. I'm not at all certain how a different prefix would
>> sort that out.
>
> I agree that there's no fundamental problem with the structure. Its
> function is quite ideal. The issue for me comes in the ability for
> people to update, enhance and review what is going on. There's no
> fundamental barrier here, as Suka demonstrated getting some of his
> pidspace code to work. It just crossed my pain threshold as I was
> trying to debug some of it.
>
> Once we get pidspaces fully working, the hacking in the guts will
> certainly be reduced. But, there are always bugs, and this is a common
> enough code area that people are bound to touch it as time goes on. I
> just want to make that as easy as possible.
>
>> My feeling is that changing this just caters to people who are not
>> going to be able to understand what is going on no matter what the
>> structure is named, and is going to make it harder for me to update
>> the code when I find the time to do it.
>
> I'm completely sure that you'll grasp the entire concept, no matter to
> what we change the names. The mess that you've unraveled so far in
> there makes has given me supreme confidence in this. :)
>
> My worry is the ramp-up time for people who want to understand it enough
> hack it or just audit the code, but who won't grasp it on quite the same
> level that you have.
>
> -- Dave
>
> _______________________________________________
> Containers mailing list
> Containers at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
>
> _______________________________________________
> Devel mailing list
> Devel at openvz.org
> https://openvz.org/mailman/listinfo/devel
>
More information about the Devel
mailing list