David:
On Wed, Aug 24, 2011 at 6:55 PM, david@lang.hm wrote:
ARM is currently in worse shape than the PC market ever was in this aspect, but in this case it's less a matter of getting the hardware guys to change what they do than it is to get better documentation of what the hardware is really doing and not duplicating drivers for cases where the right answer is just replacing a constant with a variable (just as an example of the very common case where the same component is wired to a different address)
I agree.
Maybe Linaro or an equivalent organization could provide a "ARM kernel janitor" service to the community, where they refactor existing ARM platform/driver code to make it more common. This is something that's difficult for a single person with experience in only one or two SoCs to do, but it would be pretty straightforward work for a team of three or four people with broad coverage of the SoC devices the kernel supports now.
As such refactoring consolidated larger and larger chunks of kernel code, new designs would gravitate towards those consolidated implementations because they would be the dominant references.
b.g.
On Fri, Aug 26, 2011 at 11:11:41AM -0500, Bill Gatliff wrote:
As such refactoring consolidated larger and larger chunks of kernel code, new designs would gravitate towards those consolidated implementations because they would be the dominant references.
Don't bet on it. That's not how it works (unfortunately.)
Just look at the many serial port inventions dreamt up by SoC designers - everyone is different from each other. Now consider: why didn't they use a well established standard 16550A or later design?
Also consider why ARM Ltd designed the PL010 and PL011 primecells which are different from the 16550A.
This "need to be different" is so heavily embedded in the mindset of the hardware people that I doubt "providing consolidated implementations" will make the blind bit of difference. I doubt that hardware people coming up with these abominations even care one bit about what's in the kernel.
Russell:
On Fri, Aug 26, 2011 at 11:35 AM, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Aug 26, 2011 at 11:11:41AM -0500, Bill Gatliff wrote:
As such refactoring consolidated larger and larger chunks of kernel code, new designs would gravitate towards those consolidated implementations because they would be the dominant references.
Don't bet on it. That's not how it works (unfortunately.)
I wasn't being clear.
The Linux community isn't large enough to dictate to ARM SoC designers how their hardware should work--- mostly because the "Linux community" doesn't buy chips, corporations do. And it has been my experience that the parts of corporations that negotiate deals for the hardware aren't populated with the developers of the drivers for said hardware.
What I meant was that as new hardware becomes available, if we have strong driver models then driver authors will adopt those APIs rather than inventing their own.
I'm thinking about GPIO before gpiolib, for example. Or the current state of PWM.
This "need to be different" is so heavily embedded in the mindset of the hardware people that I doubt "providing consolidated implementations" will make the blind bit of difference. I doubt that hardware people coming up with these abominations even care one bit about what's in the kernel.
I don't routinely see a "need to be different" as existing strictly for its' own sake, even with the hardware guys. Rather, I see a lot of developers (hardware and software) that are so consumed with their own requirements and deadlines that they don't get the chance to step back and see the bigger picture. The resulting fragmentation is a symptom, not the disease itself.
And honestly, some of the fragmentation is a really good thing. I love how Atmel does their GPIO controllers on the SAM-series parts, for example. The SODR and CODR registers are a godsend for concurrent code. We wouldn't have such treats if everybody did things the same way.
So I'm generally ambivalent to the hardware situation. But that doesn't mean that the software has to be equally fragmented. In fact, I think the hardware situation necessitates that we pay particular attention to NOT fragmenting the drivers for said hardware. Gpiolib proves that is possible, something I didn't think I would find myself saying when David Brownell started his effort. I'm glad he proved me wrong.
b.g.
russell, good to hear from you.
can i recommend, that although this is a really wide set of cross-posting on a discussion that underpins pretty much everything (except gnu/hurd and minix) because it's linux kernel, that, just as steve kindly advised, we keep this to e.g. cross-distro@lists.linaro.org? i'll be doing that from now on [after this] perhaps including arm-netbooks as well, but will be taking off all the distros.
so - folks, let's be clear: please move this discussion to cross-distro@lists.linaro.org, and, if it's worthwhile discussing in person, please do contact steve, so he can keep the slot open at the Plumbers 2011 summit.
On Fri, Aug 26, 2011 at 5:35 PM, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Aug 26, 2011 at 11:11:41AM -0500, Bill Gatliff wrote:
As such refactoring consolidated larger and larger chunks of kernel code, new designs would gravitate towards those consolidated implementations because they would be the dominant references.
Don't bet on it. That's not how it works (unfortunately.)
Just look at the many serial port inventions dreamt up by SoC designers - everyone is different from each other. Now consider: why didn't they use a well established standard 16550A or later design?
*sigh* because they wanted to save power. or pins. or... just be bloody-minded.
This "need to be different" is so heavily embedded in the mindset of the hardware people that I doubt "providing consolidated implementations" will make the blind bit of difference.
i think... russell... after they are told, repeatedly, "no, you can't have that pile of junk in the mainline linux kernel, Get With The Programme", you'd think that, cumulatively if they end up having to maintain a 6mb patch full of such shit, they _might_ get with the programme?
and if they don't, well.... who honestly cares? if they don't, it's not *your* problem, is it? _they_ pay their employees to continue to main a pile of junk, instead of spongeing off of _your_ time (and linus's, and everyone else's in the Free Software Community).
I doubt that hardware people coming up with these abominations even care one bit about what's in the kernel.
then don't f******g make it _your_ problem, or anyone else's, upstream!! :)
this is the core of the proposal that i have been advocating: if it's "selfish", i.e. as bill and many many others clearly agree with "if the bang-per-buck ratio is on the low side" then keep it *out* the mainline linux kernel...
... and that really is the end of the matter.
the sensible people that i've been talking to about this are truly puzzled as to why the principles of "cooperation and collaboration" behind free software are just being... completely ignored, in something as vital as The Linux Kernel, and they feel that it's really blindingly obvious that the "bang-per-buck" ratio of patches to mainline linux kernel need to go up.
so the core of the proposal that is the proposed "selfish-vs-cooperation patch policy" is quite simple: if the patch has _some_ evidence of collaboration, cooperation, refactoring, sharing - *anything* that increases the bang-per-buck ratio with respect to the core fundamental principles of Free Software - it goes to the next phase [which is technical evaluation etc. etc.]. otherwise, it's absolutely out, regardless of its technical correctness, and that's the end of it.
the linux kernel mainline source tree should *not* be a dumping-ground for a bunch of selfish self-centred pathological profit-mongering corporations whose employees end up apologising in sheer embarrassment as they submit time-pressured absolutely shit non-cooperative and impossible-to-maintain code.
you're not the only one, russell, who is pissed off at having to tidy up SoC vendors' patches. there's another ARM-Linux guy, forget his name, specialises in samsung: two years ago he said that he was getting fed up with receiving yet another pile of rushed junk... and that's *just* him, specialising in samsung ARM SoCs!
we're just stunned that you, the recipient of _multiple_ SoC vendors piles of shite, have tolerated this for so long!
anyway - i've endeavoured to put together some examples, in case that's not clear: i admit it's quite hard to create clear examples, and would greatly appreciate help doing so. i've had some very much appreciated help from one of the openwrt developers (thanks!) clarifying by creating another example that's similar to one which wasn't clear.
http://lkcl.net/linux/linux-selfish.vs.cooperation.html
this should be _fun_, guys. it shouldn't be a chore. if you're not enjoying it, and not being paid, tell the people who are clearly taking the piss to f*** off!
but - i also would like to underscore this with another idea: "lead by example" (which is why i've kept the large cross-distro list) we - the free software community - are seeing tons of nice lovely android tablets, tons of nice lovely expensive bits of big iron and/or x86 laptops, and only in very small areas (OpenRD Ultimate, GuruPlug, Pandaboard, IMX53QSB, Origen) are our needs for actual hardware which _we_ want (and i'm *not* being presumptious here - i'm inviting people to *say* what they want) just aren't being met.
who wants a bloody 800x600 VIA VunnnderMedia ARM9 350mhz tablet, to do linux kernel and gnu/linux distribution development on, _anyway_??? and who the hell wants only 512mb of RAM (iMX51). and who in their right fucking mind dreamed up that 1024x600 LCD panel size?
so here's what i propose:
we, The Free Software Community, want Our Figureheads (linus, bruce, alan, russell) to call us to arms (so to speak), to band together a la KickStarter http://kickstarter.org (or other), so that we can create the hardware platform(s) that *we* want, and, in the process, can take the opportunity to sort out the Linux Kernel mainline tree in the process (learning by doing, doing by leading, leading by example etc. etc.)
apart from anything - and this goes to you, linus and russell - i think that you would be much happier taking a break from doing git patch conflict management, _actually_ getting down and dirty with some real device driver writing, and i think you'd be much happier doing that knowing that the device you were writing those kernel drivers for was something that actual real free software developers really really wanted.
now, as i said above: i don't _dare_ to presume that i know what actual real free software developers want, in terms of hardware, but there's a small sampling on the debian-arm mailing list... let me drop you roughly in the middle of it, here: http://lists.debian.org/debian-arm/2011/08/msg00045.html mostly that was focussed around those little engineering boards (panda, IMX53QSB, origen etc.) but my aim here is to get people to think:
what hardware, which is fully free-software-compliant, that you would buy and recommend to others, that could also be attractive in mass-volume, do _you_ want to see, that would be useful to _you_?
i'm getting fed up of seeing stuff come out of factories that's completely useless. or gpl-violating. and/or requires reverse-engineering. http://lkcl.net/linux/ideal-vs-reality.of.product.development.html for some background.
as a free software developer, what hardware do YOU want?
answers on this one to arm-netbooks@lists.phcomp.co.uk (subscription required, please remember)
and, lastly - linus, russell, alan, bruce: there are people out there who would really appreciate if you could take up this call. not just me. we'd like to see you using your skills, and actually be happy and enjoy doing nitty-gritty linux kernel development, to the benefit of the free software community, instead of turning into patch junkies^H^H^H^H^H^Hmonkeys^H^H^H^H^H^H^Hmanagers.
l.
I would relly like the dscussion to go on widely as it is now. Otherwise I would probably not follow this interesting discussion.
best regards keld
On Fri, Aug 26, 2011 at 10:02:09PM +0100, Luke Kenneth Casson Leighton wrote:
russell, good to hear from you.
can i recommend, that although this is a really wide set of cross-posting on a discussion that underpins pretty much everything (except gnu/hurd and minix) because it's linux kernel, that, just as steve kindly advised, we keep this to e.g. cross-distro@lists.linaro.org? i'll be doing that from now on [after this] perhaps including arm-netbooks as well, but will be taking off all the distros.
so - folks, let's be clear: please move this discussion to cross-distro@lists.linaro.org, and, if it's worthwhile discussing in person, please do contact steve, so he can keep the slot open at the Plumbers 2011 summit.
On Fri, Aug 26, 2011 at 5:35 PM, Russell King - ARM Linux linux@arm.linux.org.uk wrote:
On Fri, Aug 26, 2011 at 11:11:41AM -0500, Bill Gatliff wrote:
As such refactoring consolidated larger and larger chunks of kernel code, new designs would gravitate towards those consolidated implementations because they would be the dominant references.
Don't bet on it. ??That's not how it works (unfortunately.)
Just look at the many serial port inventions dreamt up by SoC designers - everyone is different from each other. ??Now consider: why didn't they use a well established standard 16550A or later design?
*sigh* because they wanted to save power. or pins. or... just be bloody-minded.
This "need to be different" is so heavily embedded in the mindset of the hardware people that I doubt "providing consolidated implementations" will make the blind bit of difference.
i think... russell... after they are told, repeatedly, "no, you can't have that pile of junk in the mainline linux kernel, Get With The Programme", you'd think that, cumulatively if they end up having to maintain a 6mb patch full of such shit, they _might_ get with the programme?
and if they don't, well.... who honestly cares? if they don't, it's not *your* problem, is it? _they_ pay their employees to continue to main a pile of junk, instead of spongeing off of _your_ time (and linus's, and everyone else's in the Free Software Community).
??I doubt that hardware people coming up with these abominations even care one bit about what's in the kernel.
then don't f******g make it _your_ problem, or anyone else's, upstream!! :)
this is the core of the proposal that i have been advocating: if it's "selfish", i.e. as bill and many many others clearly agree with "if the bang-per-buck ratio is on the low side" then keep it *out* the mainline linux kernel...
... and that really is the end of the matter.
the sensible people that i've been talking to about this are truly puzzled as to why the principles of "cooperation and collaboration" behind free software are just being... completely ignored, in something as vital as The Linux Kernel, and they feel that it's really blindingly obvious that the "bang-per-buck" ratio of patches to mainline linux kernel need to go up.
so the core of the proposal that is the proposed "selfish-vs-cooperation patch policy" is quite simple: if the patch has _some_ evidence of collaboration, cooperation, refactoring, sharing - *anything* that increases the bang-per-buck ratio with respect to the core fundamental principles of Free Software - it goes to the next phase [which is technical evaluation etc. etc.]. otherwise, it's absolutely out, regardless of its technical correctness, and that's the end of it.
the linux kernel mainline source tree should *not* be a dumping-ground for a bunch of selfish self-centred pathological profit-mongering corporations whose employees end up apologising in sheer embarrassment as they submit time-pressured absolutely shit non-cooperative and impossible-to-maintain code.
you're not the only one, russell, who is pissed off at having to tidy up SoC vendors' patches. there's another ARM-Linux guy, forget his name, specialises in samsung: two years ago he said that he was getting fed up with receiving yet another pile of rushed junk... and that's *just* him, specialising in samsung ARM SoCs!
we're just stunned that you, the recipient of _multiple_ SoC vendors piles of shite, have tolerated this for so long!
anyway - i've endeavoured to put together some examples, in case that's not clear: i admit it's quite hard to create clear examples, and would greatly appreciate help doing so. i've had some very much appreciated help from one of the openwrt developers (thanks!) clarifying by creating another example that's similar to one which wasn't clear.
http://lkcl.net/linux/linux-selfish.vs.cooperation.html
this should be _fun_, guys. it shouldn't be a chore. if you're not enjoying it, and not being paid, tell the people who are clearly taking the piss to f*** off!
but - i also would like to underscore this with another idea: "lead by example" (which is why i've kept the large cross-distro list) we - the free software community - are seeing tons of nice lovely android tablets, tons of nice lovely expensive bits of big iron and/or x86 laptops, and only in very small areas (OpenRD Ultimate, GuruPlug, Pandaboard, IMX53QSB, Origen) are our needs for actual hardware which _we_ want (and i'm *not* being presumptious here - i'm inviting people to *say* what they want) just aren't being met.
who wants a bloody 800x600 VIA VunnnderMedia ARM9 350mhz tablet, to do linux kernel and gnu/linux distribution development on, _anyway_??? and who the hell wants only 512mb of RAM (iMX51). and who in their right fucking mind dreamed up that 1024x600 LCD panel size?
so here's what i propose:
we, The Free Software Community, want Our Figureheads (linus, bruce, alan, russell) to call us to arms (so to speak), to band together a la KickStarter http://kickstarter.org (or other), so that we can create the hardware platform(s) that *we* want, and, in the process, can take the opportunity to sort out the Linux Kernel mainline tree in the process (learning by doing, doing by leading, leading by example etc. etc.)
apart from anything - and this goes to you, linus and russell - i think that you would be much happier taking a break from doing git patch conflict management, _actually_ getting down and dirty with some real device driver writing, and i think you'd be much happier doing that knowing that the device you were writing those kernel drivers for was something that actual real free software developers really really wanted.
now, as i said above: i don't _dare_ to presume that i know what actual real free software developers want, in terms of hardware, but there's a small sampling on the debian-arm mailing list... let me drop you roughly in the middle of it, here: http://lists.debian.org/debian-arm/2011/08/msg00045.html mostly that was focussed around those little engineering boards (panda, IMX53QSB, origen etc.) but my aim here is to get people to think:
what hardware, which is fully free-software-compliant, that you would buy and recommend to others, that could also be attractive in mass-volume, do _you_ want to see, that would be useful to _you_?
i'm getting fed up of seeing stuff come out of factories that's completely useless. or gpl-violating. and/or requires reverse-engineering. http://lkcl.net/linux/ideal-vs-reality.of.product.development.html for some background.
as a free software developer, what hardware do YOU want?
answers on this one to arm-netbooks@lists.phcomp.co.uk (subscription required, please remember)
and, lastly - linus, russell, alan, bruce: there are people out there who would really appreciate if you could take up this call. not just me. we'd like to see you using your skills, and actually be happy and enjoy doing nitty-gritty linux kernel development, to the benefit of the free software community, instead of turning into patch junkies^H^H^H^H^H^Hmonkeys^H^H^H^H^H^H^Hmanagers.
l. _______________________________________________ lsb-discuss mailing list lsb-discuss@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/lsb-discuss
On Fri, Aug 26, 2011 at 10:36 PM, keld@keldix.com wrote:
I would relly like the dscussion to go on widely as it is now. Otherwise I would probably not follow this interesting discussion.
keld, the encouragement is appreciated, and i do follow the reasoning (which is that, given that gnu/linux distros are at such an interesting threshold point, there's simply been no need for such a large cross-posting before).
but, i have to keep my word, and i said i wouldn't interrupt people on such a large scale, preferring instead that those people who are *actively* interested participate. if, however, *you* - or anybody else feels that this topic still needs to reach a wider audience, in order to help things reach critical mass, please do actively bring it to their attention.
i have another write-up, done today, which brings together both the software and this time hardware strategic design concepts that i believe will help put control firmly back into the hands of Free Software Developers:
http://lkcl.net/linux/modular.computing.architecture.html
linus: if you're happiest doing device driver development, then for goodness sake stop complaining about how bad ARM development is going, and get involved in a real-world ARM embedded project. not just _any_ old ARM embedded project, but a "Meta-"Project that would help future Linux Kernel Development through large-scale code re-use. and, through that, you'd actually really _really_ begin to appreciate why Russell's getting so pissed off.
russell: i realise that this is going to sound strange, but if you're actually _happy_ continuing to get pissed off and disillusioned with being nothing more than a Git Patch Conflict Manager, please feel free to completely ignore the entirety of this message _and_ the link above. you _can_ tell people to piss off: you're perfectly within your rights as a Free Software Developer to do so. take a busman's holiday: lead by example and help spearhead this project.
everyone else: if you feel that you want to see happen a project to put the kind of hardware that is desirable *to you* into *your* hands (because it was, like the OpenPandora, developed with open involvement from its community, rather than developed in secret and presented as a fait-accomplit), then make yourself known - especially to those people whom *you* believe should spearhead the project.
also it has to be said that if you believe that there is someone else whom you feel would be more suitable to spearhead the project, please do say so - and help campaign to bring them in.
OpenPandora was - is - a *success*, despite vast sums of money - 4,000 preorderers *up-front* money held in escrow - being spent on casework and on making mistakes such as paying an ex-TI employee $50k to fail to get the 1251 WIFI module PCB area right.
learning from these mistakes, it *is* possible to drastically cut the cost of hardware development, by leveraging existing designs and adapting them.
now, it has to be said that if, after hitting such a large audience i _still_ don't get any traction on this project, then that's it, i'm "dun spammin". as an experienced Free Software Developer with ARM-embedded HTC Reverse-Engineering experience, i _will_ continue as best i can to play "guess what kind of hardware that Free Software Developers would want", and i _will_ continue to fit this into ongoing negotiations with PCB Factories in China, with whom i have been working hard to get them to respect and understand the importance of GPL Compliance *up-front*.
a translation of that paragraph is: you, The Free Software Community, are being presented with an OpenPandora-like opportunity, to leverage negotiations for the production of mass-volume products, to actually really REALLY get that decent ARM Laptop with a pre-loaded GNU/Linux Distro of YOUR choice (*), or that decent Desktop PC with a pre-loaded GNU/Linux Distro of your choice - whatever it is, you need to speak up NOW.
and the reason you need to speak up right now is because then i can justify going to the factory to say "yes, there are NN people who want this", and it goes from there.
but, of course, it goes without saying, that if you would prefer that there be other figureheads leading this project, for them to choose appropriate factories and to negotiate them into GPL compliance, please feel free to do so, and take this opportunity to speak up and to campaign for such figureheads to back this project.
i don't mind that happening: all i want is my damn 1280x800 12in (and importantly $160) ARM-based laptop, damnit :)
l.
(*) instead of a laptop with only 512mb of RAM. or a 1024x600 LCD (Toshiba AC100, Genesi Efika, AlwaysInnovating, etc.). or being vapourware (too numerous and pointless to enumerate). or being an R&D model which was so expensive to develop that no retailer could touch it (e.g. the Pegatron Netbook). or being effectively closed-source (almost every Android product in existence). or GPL-violating (almost every Android Tablet in existence). or requiring reverse-engineering (the Toshiba AC100).
On Sat, Aug 27, 2011 at 7:55 PM, Luke Kenneth Casson Leighton lkcl@lkcl.net wrote:
On Fri, Aug 26, 2011 at 10:36 PM, keld@keldix.com wrote:
I would relly like the dscussion to go on widely as it is now. Otherwise I would probably not follow this interesting discussion.
keld, the encouragement is appreciated, and i do follow the reasoning (which is that, given that gnu/linux distros are at such an interesting threshold point, there's simply been no need for such a large cross-posting before).
but, i have to keep my word, and i said i wouldn't interrupt people on such a large scale, preferring instead that those people who are *actively* interested participate. if, however, *you* - or anybody else feels that this topic still needs to reach a wider audience, in order to help things reach critical mass, please do actively bring it to their attention.
i have another write-up, done today, which brings together both the software and this time hardware strategic design concepts that i believe will help put control firmly back into the hands of Free Software Developers:
ok, so: follow-up:
is anyone interested to know what the costs would be, of an engineering board conforming to the above strategy, using a low-end Cortex A9 CPU such as the AML-8726-M? (for reference, the 8726 is known to be between $13 to $15 depending on volume)
does anyone have any questions, comments or suggestions regarding the strategy to place cooperation and collaboration back at the heart of linux kernel development?
any ideas on how to improve the software development tools (such as git) to help make that strategy easy to be part of the day-to-day development process?
perhaps most importantly, does anyone have any _better_ ideas than what's being proposed?
or, is everyone happy with the way that things are, and thinks that they should continue as-is (perhaps until russell quits completely, or linus bans ARM patches entirely from the mainline linux kernel)
what is it going to take for people to engage on these issues?
does anyone want to take responsibility for making sure that there is some progress?
l.