3.15 Merge window, part 2
Faster resume
Arguably the most interesting change is a significant speedup in resume-from-suspend time on systems with SATA disk controllers. Over the years, various efforts have been made to parallelize the bootstrap and resume processes in order to reduce the wall-clock time needed to get to a working system. These attempts have often run into difficulties as the problem space proved to be more complex than originally understood. So full parallelism remains an elusive goal.
Recently, though, some developers realized that there was a piece of especially low-hanging fruit waiting to be picked: much of the time spent waiting for a system to resume goes into waiting for the ATA controllers to power up and get into a working state. Dan Williams put together a pair of patches (one to the ATA controller driver, one to the SCSI "sd" driver) to change their behavior a bit: rather than waiting for the controller to return to a working state, the drivers start the process and return immediately. That allows the rest of the kernel to continue working toward resuming the system while the controller powers up.
Of course, some of that work is likely to involve disk I/O. Any I/O requests that are submitted while the controllers are still waking up simply wait until they can be serviced. In the worst case, the system will block on I/O and fail to resume any faster than before, but, in practice, it is generally possible to get back to the window system without the need to wait for disk I/O. The results, as documented in this page describing the patches, are impressive. Resume time on a drive-heavy system dropped from 11.6 seconds to 1.1 seconds. On a couple of different single-drive systems, resume time went from over five seconds to less than one second. It is clearly a worthwhile improvement, especially since it requires little in the way of added complexity overall.
Elsewhere in the kernel
A set of patches to enable building the kernel with the LLVM compiler suite has been merged. This goal has not yet been achieved; there is another set of patches required that, possibly, will show up in 3.16. But this goal is getting closer to being achieved after some years of sporadic effort.
In a change that has a small possibility of breaking user-space code, the x86 architecture will no longer allow the creation of 16-bit segments when running in the 64-bit mode. Use of 16-bits can lead to a kernel information leak on 64-bit systems that could lead to potential security issues. Since running 16-bit code on these systems does not work all that well anyway and it's not clear that there are any users of it, this is probably a safe change to make. If users do exist, they might want to make their presence known during this development cycle so that their concerns can be addressed.
A handful of new drivers has been merged; these add support for Qualcomm SDHCI controllers, Armada 380 and 385 Marvell SoC-based SDHCI controllers, Energymicro efm32 i2c controllers, Qualcomm QUP-based I2C controllers, Cadence I2C controllers, Freescale enhanced direct memory access (eDMA) controllers, Renesas R-Car audio DMAC peripheral controllers, QCOM bus access manager (BAM) DMA controllers, Alienware AlienFX WMI-based platform features, and CPU frequency controllers on IBM POWERNV hardware,
In the 3.15-rc1 announcement, Linus let it be known that he is even less
inclined than usual to add any more feature work outside of the merge
window. Enough code has already found its way in to keep developers busy
for the rest of the cycle, it seems. That work can be expected to be
completed sometime right around the end of May if the usual pattern holds.
Index entries for this article | |
---|---|
Kernel | Releases/3.15 |
Kernel | Software suspend |
Posted Apr 17, 2014 10:57 UTC (Thu)
by intgr (subscriber, #39733)
[Link] (12 responses)
Would this affect DOS emulators like DOSBox?
Posted Apr 17, 2014 11:55 UTC (Thu)
by DSMan195276 (guest, #88396)
[Link] (1 responses)
At the same time, I'm no expert. If there is a program you're concerned about you could always ask and link them back to this article or the patch.
Posted Apr 17, 2014 13:58 UTC (Thu)
by smorovic (guest, #52892)
[Link]
Posted Apr 17, 2014 15:37 UTC (Thu)
by mstefani (guest, #31644)
[Link] (9 responses)
DOS apps on the other hand will continue to work just fine in Wine as it integrates with DOSBox to run those.
Posted Apr 17, 2014 18:04 UTC (Thu)
by cesarb (subscriber, #6266)
[Link]
Posted Apr 17, 2014 19:22 UTC (Thu)
by viiru (subscriber, #53129)
[Link]
Indeed. I saw a Windows XP machine once where the Win16 emulator wasn't working correctly. It was nearly unusable until reinstallation since almost nothing would install. The install wizards for 32-bit software were 16-bit for a surprisingly long time, making this a big problem for Wine users.
Posted Apr 18, 2014 6:58 UTC (Fri)
by lkundrak (subscriber, #43452)
[Link] (5 responses)
http://forum.winehq.org/viewtopic.php?f=2&t=17701
Posted Apr 19, 2014 4:33 UTC (Sat)
by dlang (guest, #313)
[Link] (4 responses)
Posted Apr 22, 2014 9:36 UTC (Tue)
by mstefani (guest, #31644)
[Link] (3 responses)
Posted Apr 23, 2014 20:22 UTC (Wed)
by dlang (guest, #313)
[Link] (2 responses)
Posted Apr 23, 2014 21:08 UTC (Wed)
by mstefani (guest, #31644)
[Link] (1 responses)
Posted Apr 23, 2014 21:25 UTC (Wed)
by dlang (guest, #313)
[Link]
It's very possible that this happened before 2009.
Posted Apr 24, 2014 14:13 UTC (Thu)
by ssokolow (guest, #94568)
[Link]
I guess I'll stay on kernel 3.14 or lower until Wine comes up with a solution and undoes whatever regression broke it under post 1.2.x Wine versions then.
Posted Apr 17, 2014 16:25 UTC (Thu)
by djbw (subscriber, #78104)
[Link]
https://01.org/suspendresume/blogs/tebrandt/2013/hard-dis...
Posted Apr 19, 2014 17:53 UTC (Sat)
by giraffedata (guest, #1954)
[Link] (1 responses)
Posted Apr 19, 2014 18:26 UTC (Sat)
by magila (guest, #49627)
[Link]
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
https://lkml.org/lkml/2014/4/11/514
And it not only breaks those but it breaks some Win 32-bit apps too because prior to Win64 showing up a lot of installers where still 16-bit...
3.15 Merge window, part 2
3.15 Merge window, part 2
> because prior to Win64 showing up a lot of installers where still
> 16-bit...
3.15 Merge window, part 2
http://forum.xda-developers.com/showthread.php?t=1258506
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
3.15 Merge window, part 2
It takes 10 seconds for the ATA controllers to power up and get into a working state? What are they doing? And there are multiple ATA controllers?
Resume time and ATA controllers powering up
Resume time and ATA controllers powering up