2009/09/09 Linux Kernel Podcast
Audio: http://media.libsyn.com/media/jcm/linux_kernel_podcast_20090909.mp3
For Wednesday, September 9th, 2009, I’m Jon Masters with a summary of today’s LKML traffic.
In today’s issue: Linux 2.6.31, Compache, MMAP, and unreachable code.
More on Linux 2.6.31 in a moment, but first these other top stories.
Compcache. Nitin Gupta posted version 2 of his “compcache” compressed in-memory swap device. This is used preferentially prior to a backing disk since it is faster and can store more data in a compressed form than would be the case in simply having more free memory in the system pagecache. Since the previous release Nitin has switched to using struct page references rather than 32-bit PFNs (to make the code 64-bit safe), and a variety of other cleanups. Testing shows up to a 33% performance improvement in certain idealized test conditions. Presumably this is now targeting 2.6.32.
MMAP. Lee Schermerhorn noticed some “very erratic behavior” affecting certain (AIM7) workloads on a distribution and mainline kernels, chiefly larger systems such as on an 8-socket, 32-core 256GB of RAM x86_64 platform. Lee notices a coment in mm/mmap.c:vma_adjust suggesting that there isn’t a need to take the anon_vma lock when only adjusting the end of a vma (as with brk()). The comment “questions whether it’s worth[while] to optimize for this case” but “apparently, on the newer, larger, x86_64 platforms, with interesting NUMA topologies, it is worth[while]“. The patch is a one-liner, but can double performance for the test workload, or at least stabilize the results.
Unreachable code. Roland McGrath posted a two part patch series introducing an UNREACHABLE macro that can be used to inform GCC that a particular code path cannot be reached in normal code execution. Although GCC itself has heuristics to determine when this is the case, it cannot catch assembly level impacts or certain other side-effects. Roland suggests folks begin looking for infinite for loops in the kernel and start to replace them since it takes a bit of enlightened reasoning to make the changes beyond a simple find/replace. He starts off in patching the BUG() macro to use his UNREACHABLE macro.
In today’s miscellaneous items: an update to the documentation for procfs covering the additional “time spent by a cpu servicing a guest” in /proc/stat from Eric Dumazet, an update concerning hid in 2.6.32 from Jiri Kosina (including mention of a rewrite of the debugging stub), a question about turning off ext4’s delayed allocation features from Clemens Eisserer, a trivial aoe fix from Jens Axboe, updated support for the “switch” command within compliant SD cards from Wolfgang Mues, some writeback fixes from Fengguang Wu, some updates concerning the sound tree in 2.6.32 (chiefly these will comprise driver updates, and many users won’t notice that), a trivial fix freeing the old name within kobject_set_name in the case of ENOMEM from Sebastian Ott, some internal PCI interface cleanups from Alex Chiang, some Xen bugfixes addressing spinlock bugs and stackprotector support from Jeremy Fitzhardinge, some cleanups to trace.h from Li Zefan, a fix to an unintended behavioral change in net_device_ops from Martin Decky, a fix for paravirt ops alternatives patching on 486 systems (prevously failing in text_poke_early) from Ben Hutchings, and a fix to ensure the raw_time clocksource is updated in timekeeping_suspend from Janboe Ye.
Finally today, Ingo Molnar replied to the “Epic regression in throughput since v2.6.23″ thread from Serge Belyshev with an asertion that he believes he has found the issue and has a fix in -tip that should be of interest. He would like folks to re-test and see if these improve scheduler performance.
In today’s announcements: Linux 2.6.31. Linus Torvalds announced the release of version 2.6.31 of the Linux kernel. In pointing to the kernelnewbies.org website for the full breakdown of changes, Linus took the opportunity to call out a few specifics. Amongst these were the “painful” changes to the new fsnotify backend to both inotify and dnotify, ongoing work on KMS, debug and performance counters work, and much much more. Linus announced the opening of the 2.6.32 merge window, but with the caveat that folks really should wait a few days to test and play with 2.6.31 before moving on to 2.6.32.
Greg-Kroah Hartman announced stable kernel release 2.6.30.6 and 2.6.27.32, both containing a raft of updates, followed later in the day by 2.6.27.33, which contains a fix for building ocfs2 that some folks were hitting.
The latest kernel release is 2.6.31, released at 16:06 (BCT).
David Miller noticed that __hw_perf_counter_init on x86 systems might be leaking active_counters on error condtions, causing the LAPIC NMI watching to never get re-enabled even after all performance counters users go away.
Stephen Rothwell posted a linux-next tree for September 9th. Since Tuesday, the acpi, rr, security-testing, and scsi-post-merge trees had issues, while the async_tx, wireless, drm, tip and tty trees lost their issues. The total sub-tree count remains steady at 140 trees in this compose.
That’s a summary of today’s Linux Kernel Mailing List traffic, for further information visit www.kernel.org. I’m Jon Masters.










