From: Kevin Hilman on
Linus Torvalds <torvalds(a)linux-foundation.org> writes:

> On Wed, 2 Jun 2010, Daniel Walker wrote:
>>
>> Don't forget about this one! Or was something wrong with it?
>
> I got a bit frustrated with ten different ARM pulls per day at one point.
>
> There's something wrong with ARM development. The amount of pure noise in
> the patches is incredibly annoying. Right now, ARM is already (despite me
> not reacting to some of the flood) 55% of all arch/ changes since 2.6.34,
> and it's all pointless churn in
>
> arch/arm/configs/
> arch/arm/mach-xyz
> arch/arm/plat-blah
>
> and at a certain point in the merge window I simply could not find it in
> me to care about it any more.
>
> Do you guys at all talk about this problem? Have any of the ARM people
> bothered to look at the arch/arm diffs and see how mind-deadening they
> are? I try to look through these kinds of things when I pull, but after a
> million lines of pure noise, it gets old pretty quickly.
>
> Somehow, I can't believe that you need thousands of lines for each random
> arch/arm/mach-xyz (yeah, some very few of them are smaller).

As one of the sub-arch maintainers (arch/arm/mach-davinci), I can
attempt to answer for some of the churn.

There indeed has been lots of change in mach-davinci, but I wouldn't
consider it noise. In that one mach directory, I support ~10 SoCs in
the same family and for each SoC there is at least one board
supported. I'm also a core developer for mach-omap*, and the number
of SoCs/boards supported there is equally large.

Each time we add support for a new SoC in the family some changes are
needed to generalize existing code to work on the existing SoCs as
well as the new ones. This generalizing is actually reducing the size
of the diff compared to what it would be if it were added using
copy-paste, but I understand why it might look like churn.

I certainly understand why this would be mind-numbing to anyone who
doesn't care about davinci, or ARM-based devices. Indeed, even other
ARM sub-arches developers don't need to care about most of what is in
my mach dir and would consider it mind-numbing as well.

The fact is that ARM-based devices multiply like rabbits, and there is
a huge amount of diversity between the various derivatives. Also,
support most of these devices has lived out of tree for a long time.
Now that we have a relatively direct path which doesn't require any
single person to have to understand all the mind-numbing details of
all of these ARM-based platforms, it has allowed us to significantly
improve the support for these devices upstream. Anything that is
common to all devices still goes through RMK.

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Linus Torvalds on


On Wed, 2 Jun 2010, Kevin Hilman wrote:
>
> There indeed has been lots of change in mach-davinci, but I wouldn't
> consider it noise. In that one mach directory, I support ~10 SoCs in
> the same family and for each SoC there is at least one board
> supported. I'm also a core developer for mach-omap*, and the number
> of SoCs/boards supported there is equally large.

The problem with this is that it's just not maintainable to keep on adding
random stuff, especially since I doubt any of it ever gets aged away
either.

arch/arm as-is is already about 800k lines. Compare that to arch/x86,
which is less than a third of that. Now, what is the difference?

- x86 has its drivers elsewhere, and they are _discoverable_ and not
hardcoded to some platform. They have often also been useful (to say
the least) to other architecture platforms. That's not always true for
all of them (we do have drivers/platform/x86, but at least that's
maintained separately and is nowhere near the mess that is ARM)

- in contrast, ARM seems to be a mess. I realize it's largely because the
hardware companies are so f*cked up, but guys, we need to have some
handle on it too. I was willing to take the direct merges, and I still
am, but I'm willing to do it only if I have a feeling that things are
under control. And I'm not getting that feeling.

- TWO HUNDRED THOUSAND lines of arch/arm is just pure garbage, namely the
defconfig files. Quite frankly, anybody who calls that anything but
pure "noise" is just misguided and being stupid.

So yes, I do consider a lot of it "noise". When there's two hundred
thousand lines of garbage, and it keeps growing without bounds, something
needs to be done.

Now, I'm actually considering just getting rid of all the 'defconfig'
files entirely. The x86 model is sane (there's two of them, nobody likely
uses them), but ARM and POWERPC (and to a lesser config SH and MIPS) have
turned the whole concept into a disgusting mess.

But while POWERPC has abused that thing too, in _other_ respects it has
been much less egregious.

So I can largely fix the defconfig mess on my own (by just using a simple
oneliner shell script to deletes them all) but that really only fixes one
particularly annoying symptom - not the underlying issue. We do need
somebody to maintain the arm platform mess, and actually tries to get some
infrastructure or something in place so that it doesn't explode.

> The fact is that ARM-based devices multiply like rabbits, and there is
> a huge amount of diversity between the various derivatives. Also,
> support most of these devices has lived out of tree for a long time.
> Now that we have a relatively direct path which doesn't require any
> single person to have to understand all the mind-numbing details of
> all of these ARM-based platforms, it has allowed us to significantly
> improve the support for these devices upstream. Anything that is
> common to all devices still goes through RMK.

The thing is, I bet there is way more commonality still to be taken
advantage of. And even if there isn't, we need somebody who cares, and
doesn't just mindlessly aggregate all the crud. Somebody with the taste to
say "ok, that's just too effin ugly, you need to fix things up"
occasionally.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Michael Ellerman on
On Wed, 2010-06-02 at 18:20 -0700, Linus Torvalds wrote:
>
> Now, I'm actually considering just getting rid of all the 'defconfig'
> files entirely. The x86 model is sane (there's two of them, nobody likely
> uses them), but ARM and POWERPC (and to a lesser config SH and MIPS) have
> turned the whole concept into a disgusting mess.

I agree that the defconfig mechanism is broken (ie. carrying the full
text in tree), but the concept is sane IMHO.

What'd be nice is if the defconfig could just be a delta against a base
config for the architecture - that would make most of them reasonably
small, just turning on/off a few options.

You can sort of do that today, by just storing a delta, but oldconfig
will silently turn off things you have enabled if prereqs change, so
that doesn't really work I think.

cheers
From: Linus Torvalds on


On Thu, 3 Jun 2010, Michael Ellerman wrote:
>
> You can sort of do that today, by just storing a delta, but oldconfig
> will silently turn off things you have enabled if prereqs change, so
> that doesn't really work I think.

I think you can do it today with various hacks. Up to and including
basically doing something that just selects the options you want.

IOW, you could likely have a human-written Kconfig.<platform> file that
just does

define_bool MYPLATFORM y
select .. everything I need ..

include Kconfig.main

or a number of other tricks.

Ingo and the x86 folks (who I really think have done a very good job, and
there really aren't any crazy defconfig files there) have this "make
randconfig" together with scripted requirements so that you can actually
_boot_ the random config, just because the requirements make sure that the
things needed for booting on the test setup are selected.

I forget exactly what the build setup there is (Ingo described it to me
long time ago, but since I don't even want to have a build farm in my
home, I didn't care much).

But we certainly _can_ do a better job than the 'defconfig' thing that was
really never meant for the kind of use it sees in ARM/POWERPC/SH/MIPS, and
that really isn't appropriate for any manual editing (so people just run
"make oldconfig" with tweaking or something, and then use the newly
generated file).

And I suspect that it really is best to just remove the existing defconfig
files. People can see them in the history to pick up what the heck they
did, but no way will any sane model ever look even _remotely_ like them,
so they really aren't a useful basis for going forward.

But don't worry. It didn't happen this merge window, obviously.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Ben Dooks on
On Wed, Jun 02, 2010 at 06:20:09PM -0700, Linus Torvalds wrote:
>
> am, but I'm willing to do it only if I have a feeling that things are
> under control. And I'm not getting that feeling.
>
> - TWO HUNDRED THOUSAND lines of arch/arm is just pure garbage, namely the
> defconfig files. Quite frankly, anybody who calls that anything but
> pure "noise" is just misguided and being stupid.
>
> So yes, I do consider a lot of it "noise". When there's two hundred
> thousand lines of garbage, and it keeps growing without bounds, something
> needs to be done.
>
> Now, I'm actually considering just getting rid of all the 'defconfig'
> files entirely. The x86 model is sane (there's two of them, nobody likely
> uses them), but ARM and POWERPC (and to a lesser config SH and MIPS) have
> turned the whole concept into a disgusting mess.
>
> But while POWERPC has abused that thing too, in _other_ respects it has
> been much less egregious.

unfortunately there are so many different variants of the ARM
architecture that these defconfigs spring up to ensure that a base
compile for each one of them is performed. We run an autobuild which
runs through all these defconfigs and produces a report of what
happened to allow tracking of build regressions at the moment.

> So I can largely fix the defconfig mess on my own (by just using a simple
> oneliner shell script to deletes them all) but that really only fixes one
> particularly annoying symptom - not the underlying issue. We do need
> somebody to maintain the arm platform mess, and actually tries to get some
> infrastructure or something in place so that it doesn't explode.

Someone should defiently cull the older defconfigs for sepcific
machines, many of which probably don't get built for mainline.
~
> > The fact is that ARM-based devices multiply like rabbits, and there is
> > a huge amount of diversity between the various derivatives. Also,
> > support most of these devices has lived out of tree for a long time.
> > Now that we have a relatively direct path which doesn't require any
> > single person to have to understand all the mind-numbing details of
> > all of these ARM-based platforms, it has allowed us to significantly
> > improve the support for these devices upstream. Anything that is
> > common to all devices still goes through RMK.
>
> The thing is, I bet there is way more commonality still to be taken
> advantage of. And even if there isn't, we need somebody who cares, and
> doesn't just mindlessly aggregate all the crud. Somebody with the taste to
> say "ok, that's just too effin ugly, you need to fix things up"
> occasionally.

yes, there is that problem, and many of the big company players have
yet to really see the necessity in this... It has taken a while now to
convince the necessary people at Samsung that simply copying and
modifying existing driver/support is simply not going to fly.

--
Ben (ben(a)fluff.org, http://www.fluff.org/)

'a smiley only costs 4 bytes'
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/