2009/08/24 Linux Kernel Podcast
Audio: http://media.libsyn.com/media/jcm/linux_kernel_podcast_20090824.mp3
For Monday, August 24th, 2009, I’m Jon Masters with a summary of today’s LKML traffic.
In today’s issue: Compcache, Git, Lazy workqueues, O_NONSTD, and races in copy_process vs. de_thread.
Compcache. Nitin Gupta posted the latest version of the compcache patches. These implement a compressed, RAM backed block device upon which one can mount a swap device. Nitin cites this as a big win over regular swap to disk because disks are far slower than RAM (even with compression), and can be damaged by excessive swap activity (for flash drives). Even systems not using swap are improved because they can run more applications with the same RAM installed. The patchset creates a series of /dev/ramzswapX files, which can each have an additional backing swap disk device for use whenever an incompressible page is found or a memory limt for a given device is reached. Nitin includes some performance metrics and makes a variety of claims regarding improvement.
Git. Peter Zijlstra brought up the fact that git send-email and similar commands don’t always do the right thing (especially with threading) by default without some custom configuration. He had asked before and wondered why Junio C Hamano hadn’t yet affected any changes to the defaults. Junio replied that he previously thought that nobody was objecting to the existing behavior, but that a forthcoming 1.7.0 version of the git tools will make various changes to the defaults for those just tuning in.
Lazy workqueues. Jens Axboe posted version 2 of his lazy workqueues patchset. The patchset aims to reduce the dramatic number of kernel threads created on modern (multi-processor) Linux systems by selectively creating kernel threads on demand, as they are needed to handle work, rather than registering a workqueue per processor that sits mostly idle. These threads then stick around until a configurable period of idleness has elapsed, before being reaped. It’s like having the existing kernel threads, but they are only ever fully created if they are going to be used. Linux Weekly News has a more detailed writeup.
O_NONSTD. Eric Blake, fed up with the legacy behavior of e.g. dup, open, pipe2, and so forth (which will always assign the lowest available file descriptor, even if it is one of the special 0-2 range), posted a patch adding a new O_NOSTD flag that will cause newly opened file descriptors not to have values lower than three. This means that, if a task intentionally closes its file descriptors prior to forking, the child can insist that those file descriptors not be immediately recylced without having to sanity check the values of every descriptor returned. Linux Weekly News has a more detailed writeup on this issue also, so refer to that for further detail.
Races in copy_process vs. de_thread. Hiroshi Shimamoto noticed that copy_process uses signal->count as a reference counter, but it is not in fact a protected reference count. If copy_process(CLONE_THREAD) races with de_thread() then this count logic in signal->notify_count breaks, with the execing thread hung forever in kernel space. The more general problem was discovered when debugging some issues surrounding the GFS code locking up.
In today’s miscellaneous items: some lockdep fixes for reiserfs (related to killing BKL usage) from Frederic Weisbecker, a fix for an infinite loop regression in the NFSv4 implementation from Trond Myklebust, some syscall tracing fixes (moving callbacks for syscall tracepoints to the definition site and adding generic TRACE_EVENTs which capture syscall arguments) from Josh Stone, a conversion on x86/x86-64 to define and use NR_syscalls, especially in syscall event tracing from Jason Baron, some OCFS2 fixes for 2.6.31-rc7 (including a quote file corruption bugfix, and a fix for an oops on failed mounts) from Joel Becker, some inotify and idr race fixes from Eric Paris, some temporary (until a pending rework is actually completed) RCU fixes for notrace and hotplug CPU from Paul McKenney, some error and documentation fixes for ext3 from Jan Kara, some tracing documentation updates to tracepoint-analysis.txt from Mel Gorman, some ARM subarch submissions for the forthcoming merge window from Kevin Hilman, a fix for inverted handling of SNAT netfilter targets in 2.6.30 from Maximilian Engelhardt, some documentation updates for ext2/ext3 on block devices where reliable operation may not be guaranteed from Pavel Machek, some HTC Dream updates from Pavel Machek, some AVR32 updates (fixing unaligned use of memcpy) for 2.6.31 from Haavard Skinnemoen, ongoing discussion of build fixes for x86 building with older binutils releases including Peter Anvin, some input updates from Dmitry Torokhov (who also noted some potential issues with cancal_delayed_work()’s use of del_timer_sync), some networking fixes from David Miller, a fix from Li Zefan that handles a race within the tracing code when a module is unloaded before ftrace_profile_disable() is called, and Ryo Tsuruta posted version 11 of his blkio-cgroup patchset.
The latest kernel release is 2.6.31-rc7, which was released last week.
Andrew Morton released an mm-of-the-moment for 2009-08-24-16-24. It contains a number of patches against 2.6.31-rc7.
Ravikiran G Thirumalai discovered a 2.6.31-rc7 regression on vSMPowered systems due to a buggy flat_phys_pkg_id as the scheduling domains appear to build incorrectly. He found the faulty commit and provided a three line fix.
Harald Dunkel reported a crash in reiserfs mounted over NFS on 2.6.30.5 under a Linux-HA clustering stress test, for which he posted a backtrace.
Stephen Rothwell posted a linux-next tree for August 24th. Since Friday, a new kconfig tree was added (which might be the source of the following issue that Steven Rostedt reported), the configfs, nfs, and suspend trees lost conflicts and build failures, and the kconfig, rr, voltage, and tip trees gained conflicts and/or build failures for which Stephen took avasive action. The total number of subtrees now increases to 141 due to the new kconfig tree.
Steven Rostedt discovered a problem building on the linux-next master branch in the module stage 2 due to crc16 not being available in net/bluetooth/l2cap.ko, which suggests config dep. issues.
That’s a summary of today’s Linux Kernel Mailing List traffic, for further information visit www.kernel.org. I’m Jon Masters.










