From: Kirill Korotaev <dev@sw.ru>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Kirill Korotaev <dev@openvz.org>, Andrew Morton <akpm@osdl.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
frankeh@watson.ibm.com, clg@fr.ibm.com, haveblue@us.ibm.com,
greg@kroah.com, alan@lxorguk.ukuu.org.uk, serue@us.ibm.com,
arjan@infradead.org, Rik van Riel <riel@redhat.com>,
Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
Andrey Savochkin <saw@sawoct.com>,
devel@openvz.org, Pavel Emelianov <xemul@sw.ru>
Subject: Re: [RFC][PATCH 1/5] Virtualization/containers: startup
Date: Fri, 03 Feb 2006 20:22:34 +0300 [thread overview]
Message-ID: <43E3915A.2080000@sw.ru> (raw)
In-Reply-To: <Pine.LNX.4.64.0602030905380.4630@g5.osdl.org>
Linus,
Not a problem and fully agree with you.
Just had to better review patch before sending.
Do you have any other ideas/comments on this?
I will send additional IPC/filesystems virtualization patches a bit later.
Kirill
> On Fri, 3 Feb 2006, Kirill Korotaev wrote:
>> This patch introduces some abstract container/VPS kernel structure and tiny
>> amount of operations on it.
>
> Please don't use things like "vps_t".
>
> It's a _mistake_ to use typedef for structures and pointers. When you see
> a
>
> vps_t a;
>
> in the source, what does it mean?
>
> In contrast, if it says
>
> struct virtual_container *a;
>
> you can actually tell what "a" is.
>
> Lots of people think that typedefs "help readability". Not so. They are
> useful only for
>
> (a) totally opaque objects (where the typedef is actively used to _hide_
> what the object is).
>
> Example: "pte_t" etc opaque objects that you can only access using
> the proper accessor functions.
>
> NOTE! Opaqueness and "accessor functions" are not good in themselves.
> The reason we have them for things like pte_t etc is that there
> really is absolutely _zero_ portably accessible information there.
>
> (b) Clear integer types, where the abstraction _helps_ avoid confusion
> whether it is "int" or "long".
>
> u8/u16/u32 are perfectly fine typedefs.
>
> NOTE! Again - there needs to be a _reason_ for this. If something is
> "unsigned long", then there's no reason to do
>
> typedef long myflags_t;
>
> but if there is a clear reason for why it under certain circumstances
> might be an "unsigned int" and under other configurations might be
> "unsigned long", then by all means go ahead and use a typedef.
>
> (c) when you use sparse to literally create a _new_ type for
> type-checking.
>
> Maybe there are other cases too, but the rule should basically be to NEVER
> EVER use a typedef unless you can clearly match one of those rules.
>
> In general, a pointer, or a struct that has elements that can reasonably
> be directly accessed should _never_ be a typedef.
>
> Linus
>
next prev parent reply other threads:[~2006-02-03 17:24 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-03 16:58 [RFC][PATCH 1/5] Virtualization/containers: startup Kirill Korotaev
2006-02-03 17:03 ` [RFC][PATCH 2/5] Virtualization/containers: UIDs Kirill Korotaev
2006-02-03 17:06 ` [RFC][PATCH 3/5] Virtualization/containers: UTSNAME Kirill Korotaev
2006-02-06 8:21 ` Eric W. Biederman
2006-02-06 8:53 ` Kirill Korotaev
2006-02-03 17:15 ` [RFC][PATCH 1/5] Virtualization/containers: startup Linus Torvalds
2006-02-03 17:22 ` Kirill Korotaev [this message]
2006-02-03 17:49 ` Linus Torvalds
2006-02-03 18:34 ` Dave Hansen
2006-02-03 18:55 ` Jeff Garzik
2006-02-03 19:18 ` Hubertus Franke
2006-02-03 19:56 ` Hubertus Franke
2006-02-03 20:19 ` Greg KH
2006-02-03 20:34 ` Hubertus Franke
2006-02-05 15:11 ` Kirill Korotaev
2006-02-05 15:39 ` Hubertus Franke
2006-02-06 9:08 ` Kirill Korotaev
2006-02-06 22:31 ` Cedric Le Goater
2006-02-07 12:28 ` Kirill Korotaev
2006-02-05 15:10 ` Kirill Korotaev
2006-02-05 15:05 ` Kirill Korotaev
2006-02-06 16:35 ` Dave Hansen
2006-02-06 16:51 ` Kirill Korotaev
2006-02-06 16:56 ` Linus Torvalds
2006-02-06 17:21 ` Kirill Korotaev
2006-02-07 0:28 ` Sam Vilain
2006-02-07 12:21 ` Kirill Korotaev
2006-02-07 22:21 ` Sam Vilain
2006-02-20 11:56 ` Kirill Korotaev
2006-02-03 18:36 ` Summary: PID virtualization , Containers, Migration Hubertus Franke
2006-02-03 18:36 ` [RFC][PATCH 1/5] Virtualization/containers: startup Rik van Riel
2006-02-05 14:52 ` Kirill Korotaev
2006-02-06 8:39 ` Eric W. Biederman
2006-02-06 9:00 ` Kirill Korotaev
2006-02-06 9:19 ` Eric W. Biederman
2006-02-06 16:37 ` Dave Hansen
2006-02-06 18:37 ` Eric W. Biederman
2006-02-06 19:32 ` Kirill Korotaev
2006-02-06 22:40 ` Cedric Le Goater
2006-02-07 1:57 ` Eric W. Biederman
2006-02-08 21:54 ` swsusp done by migration (was Re: [RFC][PATCH 1/5] Virtualization/containers: startup) Pavel Machek
2006-02-09 18:20 ` Eric W. Biederman
2006-02-10 0:21 ` Kyle Moffett
2006-02-10 4:31 ` Sam Vilain
2006-02-10 6:23 ` [Devel] " Vasily Averin
2006-02-11 2:38 ` Sam Vilain
2006-02-11 17:29 ` Vasily Averin
2006-02-12 23:29 ` Sam Vilain
2006-02-10 8:29 ` Kyle Moffett
2006-02-10 5:40 ` [RFC][PATCH 1/5] Virtualization/containers: startup Nigel Cunningham
2006-02-10 6:01 ` Eric W. Biederman
2006-02-06 10:16 ` Jes Sorensen
2006-02-05 20:13 ` Andi Kleen
2006-02-06 9:04 ` Kirill Korotaev
2006-02-06 0:56 ` Benjamin Herrenschmidt
2006-02-06 9:03 ` [Devel] " Kirill Korotaev
2006-02-06 8:31 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43E3915A.2080000@sw.ru \
--to=dev@sw.ru \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=clg@fr.ibm.com \
--cc=dev@openvz.org \
--cc=devel@openvz.org \
--cc=frankeh@watson.ibm.com \
--cc=greg@kroah.com \
--cc=haveblue@us.ibm.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=riel@redhat.com \
--cc=saw@sawoct.com \
--cc=serue@us.ibm.com \
--cc=torvalds@osdl.org \
--cc=xemul@sw.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox