Linux police offer deviant Android return from exile
Google, you have three options...
OSCON Linux kernel maintainers have offered Google three ways of returning Android into their good graces.
Google's options for re-admission to the kernel are: put the stubs of Android's wait locks into the main kernel, introduce Android's wait locks as PMQOS constraints, or adopt a patch written by a Linux kernel maintainer that would re-implement wait locks in a "socially acceptable way".
Android was booted from the Linux kernel when its drivers were deleted last year. It was claimed that nobody cared about the Android kernel code and that Google had made kernel integration difficult with a "sometimes bizarre" security model.
Linux kernel SCSI subsystem maintainer James Bottomley told The Reg that it's up to Google to decide which of the three ways back it prefers. "We need their feedback on the three options," Bottomley told us at the O'Reilly Open-Source Convention in Portland, Oregon.
Google said it has offered Android code for inclusion in the next version of the Linux kernel – version 2.6.34 – but these failed to materialize in the first release candidate.
Google open source programs manager Chris DiBona told The Reg that Google is now "hanging" and the fact its changes didn't make RC1 makes him doubt they'll be included in the final version of 2.6.34 at all.
DiBona said at OSCON: "We are still talking to them [kernel maintainers] – we'll see what happens. We want to be in there. It will open up a lot of devices to the kernel."
He's right to be doubtful. It seems Google's fix was shot down by kernel maintainers in the PMQOS sub system. They objected to hacking the kernel to facilitate changes designed for mobile devices.
The fix appears to have been the result of talks between Google and kernel maintainers at this year's Linux Collaboration Summit in San Francisco, California.
Google had proposed a set of suspend locks – actions that intervened in the race around the phone's system during shut down process in response to an incoming call. The suspend locks were designed to stop shut down so that the user doesn't miss their call.
"Although the sleep and suspend is very elegant, it introduced wait locks to get around the race problem and the kernel developers were not happy with the fact it's a hack around for a lot of races that got introduced into the infrastructure," Bottomley said.
Now, there are the three options on the table awaiting Google's approval.
Stubs would be a temporary measure that could do more harm than good. Developers could compile code to either the main kernel or the Android kernel, creating confusion. Stubs are used in programming to simulate functionality and are used when targeting different platforms.
In a further twist, stubs would be removed from Linux after a period of nine months if there's no permanent fix adding to the confusion.
"Stubs is a bit more dangerous because if nothing happens after a certain time the period stubs approach will get thrown out," Bottomley said.
Bottomley favored the PMQOS or full patch options. Modifications have already been written for the PMQOS subsystem that tackles locks so code's ready to go. The patch, meanwhile, would also perform locks but using what Bottomley called a more "socially acceptable way" – presumably keeping maintainers happy. Android would need to accept these changes, though.
"I'd like to see it sorted out fully... but we need Google to comment fully [on the proposals]," Bottomley said. ®
I'm not sure what the story is here . . .
Isn't this just two groups trying to work out the best solution for both of them? Am I missing something?
I respectfully disagree.
In the end if, if a phone CPU does not share its owner's attitude to missing a phone call, the phone will fail as a product. This is an issue which will have to be resolved somehow if Linux is to be a serious player in this market. I do not know the technical rights or wrongs of it, but it is good to see that at least some people involved see the sense in coming to some agreement. Let's hope that little spat is soon to become history.
The scale of Linux (Kernel) is enormous
It will be resolved. Google is a part of the greater Linux world, it is just having a hard time keeping pace.
The Kernel of Linux is the largest, fastest moving software project, in the history of computers.
That pace is awesome. Most people not involved are simply unaware of the scale of it. Technically speaking... it is history in the making.
speaking at/with Google:
It is the kernel... Google needs to keep up, forking is not an option, they know that if they do, it will not be long before they are just left behind.
Run Google / Android, run fast.