It was expected that we would find commonalities and duplications of effort. What was astounding was that we also found de-facto collaboration. The problem is that this collaboration is not happening inside the normal transparent Linux development process.
Massive duplication of effort
- Each vendor is undertaking essentially the same work to bring in support for CPU architectures and individual hardware drivers. Example
There is an emergent common ground
- Lack of a recognized common ground leads, as a necessity, to consumer electronics vendors and chipset manufacturers inadvertently and unintentionally creating informal integration points. We coin the term sidestream to describe this. Example
Inevitable integration effort
- Informal nature of the sidestreams means that you have to integrate patches yourself. This is a significant effort and comes with a risk of introducing unintentional bugs. Further (worse) it significantly diverges code away from upstream/mainline with the result that future maintenance is vastly complicated. Example
The objective of the Yaminabe study was to see if evidence supported the imperative to establish a supported tree for the embedded industry. We anticipate such a process improvement, now announced as the Long Term Support Initiative, will benefit all CE vendors:
Reduce code fragmentation
- Can we reduce the massive fragmentation of driver code? Yes: LTSI would help by providing a common integration point and, just as importantly, a quality standard.
Concentrate integration activity
- At present, integration is being undertaken at great cost by individual device production teams, and regrettably this is done with varying quality. So, Yes, the LTSI staging concept wills help. Better yet, encouraging chip manufacturers (SoC, BSP, etc) to upstream their code will reduce the merge friction the are encountering.
Support vendors’ engineers
- Vendors need to be encouraged to share issues and fixes and supported in doing so. Many vendor changes are done in an ad-hoc fashion, are not ready for upstream, and/or contain signs of work-in-progress still in the code. A big reason for this is simply that engineers making the changes are not expecting anyone to ever look at their code. So, Yes, LTSI will offer vendors a formal process for their engineers to participate in. Further, the explicit connection of production team developers to company experts and on to upstream community maintainers will enable a significant degree of mentoring to occur.
The LTSI staging tree will be of great value as a commonly accepted integration point. We encourage vendors, manufacturers, and the broader community to support its adoption.