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. ®