Hello everyone! Let’s start this week’s and month’s
– a patch from Mel Gorman regarding kswapd eating up 100%
CPU time when highest zone is small :
During allocator-intensive workloads, kswapd will be woken frequently causing free memory to oscillate between the high and min watermark. This is expected behaviour. Unfortunately, if the highest zone is small, a problem occurs. This seems to happen most with recent sandybridge laptops but it's probably a co-incidence as some of these laptops just happen to have a small Normal zone. The reproduction case is almost always during copying large files that kswapd pegs at 100% CPU until the file is deleted or cache is dropped. The problem is mostly down to sleeping_prematurely() keeping kswapd awake when the highest zone is small and unreclaimable and compounded by the fact we shrink slabs even when not shrinking zones causing a lot of time to be spent in shrinkers and a lot of memory to be reclaimed. Patch 1 corrects sleeping_prematurely to check the zones matching the classzone_idx instead of all zones. Patch 2 avoids shrinking slab when we are not shrinking a zone. Patch 3 notes that sleeping_prematurely is checking lower zones against a high classzone which is not what allocators or balance_pgdat() is doing leading to an artifical believe that kswapd should be still awake. Patch 4 notes that when balance_pgdat() gives up on a high zone that the decision is not communicated to sleeping_prematurely() This problem affects 3.0-rc4 and 18.104.22.168 for certain and is expected to affect 2.6.39 as well. If accepted, they need to go to -stable to be picked up by distros. This series is against 3.0-rc4. I've cc'd people that reported similar problems recently to see if they still suffer from the problem and if this fixes it.
-Next, Shawn Guo proposes a 5-piece patch for imx51 babbage boards
support, John W. Linville has a wireless pull request (well,
wireless-related :P ) – mostly fixes for wi-fi and bluetooth- ,
Keith Packard has a few minor fixes for drm-intel in the
form of a pull request, Takashi Iwai also has a pull request,
but for the sound subsystem and Thomas Gleixner has timer
fixes for 3.0 (3 fixes – pull request) .
-Paul Gortmaker announces the release of kernel 22.214.171.124
(longterm), Rafael J. Wysocki lists the reported regressions
3.0-rc4 -> 2.6.39 , a list of which you can find here :
Martin Schwidefsky has s390 updates in the form of a
pull request and Stefan Bader announces 126.96.36.199+drm33.18
-Jiri Kosina updates hid (pull request), Alex Elder announces
an xfs update for 3.0-rc5 (git pull), Lars-Peter Clausen
has a patchset adding Analog Devices ADAV801 and ADAV803
audio codec support, Chris Ball has a pull request announcing
small regression fixes for mmc, intended for -rc5 and Linus
announces 3.0-rc5 :
Nothing terribly exciting here. The most noteworthy thing may be that only about a quarter of the changes are in drivers, filesystem changes actually account for more (40%): btrfs, cifs, ext4, jbd2, nfs are all present and accounted for. On the driver side, there's some gpu updates, infiniband, mmc, sound and some SCSI target fixes. And the normal random smattering of changes all around. Like some long-standing compile failure (admittedly you need to enable some esoteric resource counting options and disable NUMA to trigger it, but still). I think there's a few more lurking in staging, with fixes yet to be merged. The appended shortlog is fairly readable. Linus
-Keng-Yu Lin adds a patch for the ideapads regarding a pm issue,
Vivek Goyal has a 8-piece patchset solving cgroups issues in blk-throttle,
Greg Kroah-Hartman has pull requests for tty/serial, usb and driver-core,
Keith Packard comes again with drm-intel fixes (git pull), Mimi Zohar
has ecryptfs-keys fixes in a pull request, Alan Cox has a 29-piece
patchset for GMA500 and Jean Delvare has a small i2c fixset (pull).
-Avi Kivity comes with a pull request for kvm (just one fix :),
Wu Fengguang has improvements to fs-writeback (patch), Philipp Reisner
targets -rc6 with his pull request for drbd and Mimi Zohar has
16 piece patchset related to EVM :
Discretionary Access Control(DAC) and Mandatory Access Control(MAC) can protect the integrity of a running system from unauthorized changes. When these protections are not running, such as when booting a malicious OS, mounting the disk under a different operating system, or physically moving the disk to another system, an "offline" attack is free to read and write file data/metadata. Extended Verification Module(EVM) detects offline tampering of the security extended attributes (e.g. security.selinux, security.SMACK64, security.ima), which is the basis for LSM permission decisions and, with the IMA-appraisal patchset, integrity appraisal decisions. This patchset provides the framework and an initial method to detect offline tampering of the security extended attributes. The initial method maintains an HMAC-sha1 across a set of security extended attributes, storing the HMAC as the extended attribute 'security.evm'. To verify the integrity of an extended attribute, EVM exports evm_verifyxattr(), which re-calculates the HMAC and compares it with the version stored in 'security.evm'. Other methods of validating the integrity of a file's metadata will be posted separately (eg. EVM-digital-signatures). Although an offline attack can bypass DAC/MAC protection mechanisms and write file data/metadata, if the disk, or VM, is subsequently remounted under the EVM + DAC/MAC (+ IMA-appraisal) protected OS, then the TPM-calculated HMAC of the file's metadata won't be valid. Therefore, IMA + MAC/DAC + EVM (+ IMA-appraisal) can protect system integrity online, detect offline tampering, and prevent tampered files from being accessed. While this patchset does authenticate the security xattrs, and cryptographically binds them to the inode, coming extensions will bind other directory and inode metadata for more complete protection. To help simplify the review and upstreaming process, each extension will be posted separately (eg. IMA-appraisal, IMA-digital-signatures (including module checking), IMA-appraisal-directory). For a general overview of the proposed Linux integrity subsystem, refer to Dave Safford's whitepaper: http://downloads.sf.net/project/linux-ima/linux-ima/Integrity_overview.pdf. Much appreciation to Dave Hansen, Serge Hallyn, and Matt Helsley for reviewing the original patches.
-Dave Airlie has a single radeon fix, Mark Brown has a 8-piece patchset
with regmap fixes, as explained below :
[This revision of the series has some minor updates to the SPI code.] Many I2C and SPI based devices implement register maps on top of the raw wire interface. This is generally done in a very standard fashion by devices, resulting in a lot of very similar code in drivers. For some time now ASoC has factored this code out into the subsystem but that's only useful for audio devices. The intention with this series is to generalise the concept so that it can be used throughout the kernel. It's not intended that this be suitable for all devices - some devices have things that are hard to generalise like registers with variable size and paging which are hard to support genericly. At the minute the code is focused on the common cases. It is likely that the same code could be used with other buses with similar properties to I2C and SPI. Currently only physical I/O is handled, the intention is that once this support has been reviewed and merged the generic register cache code that ASoC includes will also be factored out too. For devices with read heavy workloads (especially those that need a lot of read/modify/write cycles) or which don't support read at all this can provide a useful performance improvement and for sparse register maps there's a lot of benefit in relatively complex cache code. I'm not entirely happy with the implementation currently but am fairly happy with the external interfaces. A semi-random set of driver conversions have been included in the series with various degrees of testing including the subsystem wide ASoC code. Far more drivers could use the code, these have mostly just been done as samples in a minimally invasive fashion. There's a git branch at: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git for-next but due to various -next dependencies this does not currently include all of the patches posted here. I've also created a regmap-asoc branch there which merges current ASoC code with the regmap code.
, Paul Mundt has rmobile and sh fixes for 3.0-rc6, Wim Van Sebroeck
updates watchdog (pull request), David Miller updates networking
(“1) Bridge flooding fix from Herbert Xu.
2) ip_rt_bug can trigger in certain TPROXY situations, fix
from Julian Anastasov.
3) Fix bluetooth L2CAP security check, from Luiz Augusto von Dentz.
4) zlib inflate buffer alloc can result in order-4 allocation, use
5) ipv6 UDP checks wrong variable for non-blocking condition, fix
from Xufeng Zhang.
6) If UDP recvmsg ends up retrying, we need to clear the MSG_TRUNC
flag as the next packet we’re going to try might fit. Fix
from Xufeng Zhang.
7) Fix OOPS in rionet_remove, from Yinglin Luan.
8) Packet length calculation fixes in the ipv4 output path from
9) Fix Kconfig deps for netconsole, from Randy Dunlap.
10) CAN Kconfig files were using “default Y” instead of “default y”,
fix from marc Kleine-Budde. “) and John W. Linville has
wireless updates :
Here is a batch of fixes intended for 3.0. Arik gives us a fix for a potential NULL dereference in mac80211. Emmanuel gives us a fix for a regression introduced by "iwlagn: support multiple TBs per command" that can corrupt memory. Eugene (and Bob) gives a memory leak fix for ath5k. Evgeni gives us a preprocessor-related fix that makes modinfo output make more sense for iwlagn. Johannes gives us a trio of fixes, all isolated to the bowels of iwlagn. I overlayed a fixup on top of one of Johannes's patches, since there was some confusion between DMA and PCI API usage. Finally, Rajkumar gives us an ath9k fix to ensure the chip is properly awakened even if there is no active interface when the resume occurs.
-That’s all folks! See you next week!