2009/09/29 Linux Kernel Podcast
Audio: COMING SOON
For Tuesday, September 29th, 2009, I’m Jon Masters with a summary of today’s LKML traffic.
In today’s issue: Consoles, IO bandwidth throttling, and VMI.
Consoles. Alan Stern raised the issue of console device naming, especially as pertains to removable devices, such as those using a USB interface. He feels that these devices should acquire a name (e.g. ttyUSB0 exposed through /dev/ttyUSB0) that the name should be persistent even beyond the device being removed from the system, and that the kernel should open each console device immediately upon it being registered as a console in order to prevent undelying data structures from being released upon device removal. He has raised this issue on several occasions prior to this. In response, Alan Cox posted how he had originally invesigned something like this could eventually be achieved (fixing the lifetime issue of console devices).
IO bandwidth throttling. Nauman Rafique posted to let Vivek Goyal (and everyone else) know that he and others had discussed the topic of Vivek’s IO controller patches with Jens Axboe at this year’s Linux Plumber’s Conference. In particular, they had discussed Jens’ concerns about the patch sizes, and the soft requirement that the patches work with all existing IO schedulers. Nauman proposes incremental addition of bits of the existing patches. Vivek is on board with just supporting CFQ initially if needed, but wonders whether this will really fly – in other words, whether the implementation shouldn’t be at a level above the IO scheduler (as favored by Andrew Morton). Jens Axboe concurred that he was not in favor of the direct expansion of the CFQ IO scheduler for this support because “some enterprise storages are better performed with NOOP rather than CFQ, and I think bandwidth control is needed much more for such storage system”. Jens suggests making throttling policy user selectable, at a higher layer, like IO scheduler selection today.
VMI. Ongoing discussion continued on the fate of VMWare’s VMI support in the kernel. This is a para-virtualization optimization that is no longer needed for performance reasons and will no longer be supported in future product releases from VMWare. But, as Peter Anvin, Gerd Hoffmann, and others had noted, there are many using VMI on existing systems so the code should not be “zapped” quite so quickly. Instead, Alok Kataria (of VMWare itself) suggested that the intention to remove support be noted in the feature-removal file and recommended that all distributions disable VMI going forward in order for seemless “Live Migration” to work for their customers and users. Arjan van de Ven took the opportunity to also note that vendors have a habbit of ignoring the “default” Kconfig options, so VMWare should not just assume that having an option disabled in Kconfig would automatically be picked up by Linux distros. Chris Wright liked the deprecation idea and suggested a runtime warning.
In today’s pull requests: some percpu fixes from Tejun Heo, some DRM updates from Dave Airlie (including support for video= KMS mode setting on the kernel command line) which were sent twice due to a missing subject on the first attempt, and some networking fixes from David Miller.
In today’s miscellaneous items: a note that the Vmalloc area figures in /proc/meminfo are correct (just refering to the theoretical address space of very many terrabytes) from Kamezawa Hiroyuki, another “lumpy” page writeback patch from Fengguang Wu, a trivial Intel TXT bug warning fix from Shane Wang, a series of hotplug and TSC cleanup patches for dynamic structure allocation and removal at KVM module load and unload from Zachary Amsden, some RCU patches from Paul E. McKenney simplifying rcu_barrier() with the goal of ensuring that offlined CPUs never have RCU callbacks queued, a vsprintf format string option for pretty-printing UUID and GUID values from Joe Perches, the latest version of the “permission masking security module” formerly known as “dpriv” from Andy Spencer, a fix for a mutex locking problem in a previous BKL (Big Kernel Lock) removal patch from Frederic Weisbecker, some fatfs-2.6 patches resent from Ogawa Hirofumi (who also replied to the “Simon and Garfunkel” corruption reported previously), some CPU affinity problems with KVM reported by Haneef Syed, some SCSI header cleanup patches from Michael S. Tsirkin, a suggestion from Arjan van de Ven that GFP_NOWAIT memory allocations are what one poster (who seemed to be partially re-implemeting “perf” due to being unaware of it) wanted in requesting ZONE_NORMAL allocations that might not be available immediately but without using a GFP_ATOMIC flag (which can cause system emergency pools to be used and exhausted and should not be used in general for large allocations), a NULL pointer fix in the swap core from Suresh Jayaraman, some NOHZ performance optimization patches from Martin Schwidefsky, some patches implementing full NAT support for IPVS from Hannes Eder, general discussion of multiple simultaneous port support in virtio_console, some connector permission checking patches from Philipp Reisner, ongoing discussion of Taro Okumichi’s dynamic kernel source browser, and a question from Robert P. J. Day as to whether he should modify his scripts that look for broken Kconfig references to also detect and inform the community about unreferenced header files throughout the kernel tree.
Finally today, a detailed analysis of a hard lockup and ext4 corruption from Ted T’so along with sympathy from Ted surrounding the experience (though of course he was in no way responsible for it). From the sound of it, Ted fingers hardware literally writing to the wrong location on disk (it was an USB drive of some kind according to the original poster, Andy Isaacson, who posted some dumpe2fs output online for Ted – and anyone else – to take a look at).
In today’s announcements: Userspace RCU. Mathieu Desnoyers followed up to previous discussion of the feasibility of a userspace RCU implementation (for doing RCU in application level code) with an implementation called “urcu”. He posted it on the LTTng website and says version 0.1 should work on both x86 32/64 and PowerPC. More information is at http://lttng.org/urcu.
The latest kernel release was 2.6.32-rc1 (remember that EXTRAVERSION unintentionally got set to “rc2″).
Eric Dumazet tracked down a problem in the cmpxchg() function, which doesn’t handle 64-bit values on X86_32 and doesn’t generate an error. He suggests either replacing a use of cmpxchg() in a problem-triggering patch from Peter Zijlstra with cmpchg64(), fixing xmpxchg() to handle 64-bit values, or reverting Peter’s patch. Linus noted the potential for “very nasty silent failure” and really wanted to fix use of cmpxchg() – even if it just generates a warning or link-time failure when used with 64-bit types. Arjan van de Ven suggested using the alternatives() implementation to patch according to the type of CPU found at runtime, for which Linus posted an “untested” patch.
Stephen Rothwell posted a linux-next tree for September 29th. Since Monday, the linux-next fixes tree still contains a powerpc/kvm fix, there is still a reverted scsi commit causing a build failure and there is still a removed patch that had caused various includes of autoconf.h to go away and break various people’s builds. So, very similar to the previous day’s tree. The total subtree count remained steady at 139 trees in Tuesday’s compose.
That’s a summary of today’s Linux Kernel Mailing List traffic, for further information visit www.kernel.org. I’m Jon Masters.

