On Wed, 7 May 2008 22:25:08 +0100 (BST), Maciej W. Rozycki wrote:
> > i2c-foo.c is consistently used for i2c bus driver themselves so far.
> > It's somewhat confusing to see you name platform code that way. It's
> > also redundant, given that the file lives in the swarm platform
> > directory. May I suggest naming this file just
> > arch/mips/sibyte/swarm/i2c.c? Other architectures (cris, arm) are doing
> > this already.
> I can do that and I have considered it while preparing the change. What
> convinced me not to use a name that is already present elsewhere in the
> tree is the confusion that it sometimes causes. For example during a
> debugging session GDB only reports the file name and not the leading
> pathname (and some people do run GDB over the kernel). Of course the
> actual file can still be chased with some `find' and `grep' scriptery, but
> why to create a problem in the first place?
> I consider repeated file names throughout a tree of a single program a
> namespace pollution similar to one with repeated static symbol names.
> While syntactically valid and working, it asks for unnecessary confusion.
$ find linux-2.6.26-rc1 -name Kconfig | wc -l
$ find linux-2.6.26-rc1 -name Makefile | wc -l
Not to mention the 102 setup.c, 87 irq.c, 62 time.c... It is very
common to have duplicated file names in the kernel tree because it
supports so many architectures and platforms. In general, when you work
on a given architecture or platform, names become unique again. Taking
GDB as an example again, you definitely know what architecture you are
debugging, so there should be relatively little ambiguity on what files
(On top of that, I'd argue that we _should_ be able to display relative
paths to file names when debugging.)
Your point about the "single program namespace" is certainly valid for
small to medium-size programs, but in the case of something as big as
the kernel, it probably no longer holds.
> This is my point of view, but I can see others may not necessarily follow
> it. I am fine with changing the name to i2c.c as it is unlikely I will
> run GDB over it. ;-)
I don't have a strong opinion on this either, it is very unlikely that
I'll ever have to deal with this file personally. I'm only telling you
what the common practice is in the kernel tree.