For the weekend of May 16th and 17th 2009, I'm Jon Masters with a summary of the weekend's LKML traffic.
In today's issue: Expedited RCU, mod_timer() helper functions, CAN, version numbering, and performance regressions.
Expedited RCU. Paul E. McKenney posted version 5 of his "big hammer" RCU grace period RFC patch set. This patch series introduces the synchronize_rcu_expedited and synchronize_rcu_bh_expedited functions that are designed to force the RCU grace period as quickly as possible. According to Paul, the patch series passes light rcutorture testing with grace periods taking around 45 microseconds on an 8-CPU POWER machine, which he believes is good enough from a performance standpoint. Under 'Shortcomings' Paul notes that 'CPU hotplug testing would probably cause it to die horribly'.
mod_timer() helper functions. Chris Peterson pointed out that most of the approximately 1,000 in-kernel calls to mod_timer() perform one of three things: multi-second timeouts, millisecond timeouts, or +1 jiffie ASAP events. He noted that few calls use mod_timer()'s 'expires' deadline time without manually calculating 'jiffies + delay' and so posted a series of simpler helper functions to make life easier for the common use cases. These functions are named mod_timer_seconds, mod_timer_msecs, and mod_timer_yield. This caused Andrew Morton to ponder why multi-jiffie timeouts don't hit a potential bug that would cause us to wait much longer than anticipated. Thomas Gleixner responded with a description of exactly what does happen.
CAN. Wolfgang Grandegger posted a 7 part patch series containing a generic CAN network device driver interface, as part of the Socket-CAN project hosted on the BerliOS web-server. He noted that, 'The PF_CAN protocol family for the Controller Area Network is available in the kernel since version 2.6.25 but drivers for real CAN devices are still missing'. CAN is a simple network protocol very popular with embedded device makers, and has been for a long time. You might know it from it's use in your vehicle - since 2008 all new cars sold in the United States are required to contain a variant of CAN as part of their on board diagnostics (ODBI-II) interface through ISO 15765-4.
Version numbering. Jeff Garzik pointed out that 2.6.30-rc6 contained a bug in the generation of the kernel version string, resulting in modules being installed under a '2.6.30-rc6-00000-rc6' directory, rather than the regular '2.6.30-rc6' expected naming. Someone else suggested that this has happened since rc5. Sam Ravnborg asked Nico to take a look, and a patch was posted.
In today's announcements: Regressions. Rafael J. Wysocki responded to Linus' announcement email for 2.6.30-rc6, in which Linus had said he missed Rafael's regression summary mails, with a series of postings and summaries of outstanding regressions in the 2.6.30 kernel, as well as regressions introduced between 2.6.29 and 2.6.30. A total of 81 regressions in the 2.6.30-rc6 kernel were identifed as of May 16th, many were unresolved. Rafael has begun automated poking of those identified as being responsible.
Andrew Morton released an mm-of-the-moment in 2009-05-17-10-57. It contains dozens of patches against 2.6.30-rc6, including a large set of KSM patches, the experimental page-allocator changes and vmscan chagnes (for example, the patch to vmscan that favors evicting use-once pages first), and much more.
The latest kernel release is 2.6.30-rc6, which was released by Linus on Friday evening. There are already a number of fixes pending.
That's a summary of today's LKML traffic. For further information visit kernel.org. I'm Jon Masters.