Home > episodes > 2010/07/04 Linux Kernel Podcast

2010/07/04 Linux Kernel Podcast

Audio: COMING SOON

For the weekend of the 4th of July 2010, I’m Jon Masters with a summary of today’s LKML traffic.

In today’s issue: Linux 2.6.35-rc4, Btrfs, Defconfig kernel configs, GDB, Timekeeping, and the VM.

*). Linux 2.6.35-rc4. Linus Torvalds announced the release of Linux 2.6.35-rc4 on July 4th 2010 at 8:44pm Best Coast Time (PDT). Linus says he’s been back online for a week and is happy at the relatively small number of changes building up, “having been strict for -rc3″, in his absence. He obviously sees the increased rigidity in enforcing the merge window has been a success, and considers that there will likely be an on time 2.6.35 release, “despite my vacation”. Linus says his vacation was very enjoyable and was the longest time away from the kernel in many years – apparently he did take a cellphone for email, but didn’t do any compiles while he was having “a great time under water.”

*). Btrfs. Edward Shishkin posted a rather scathing technical review of btrfs internal design, criticising variable record size allocations, file system utilization, the balancing algorithms used, and even suggesting that engineers leave the algorithm design up to academics, rather than re-inventing things for their programs. Edward performed various benchmarks and published his results in a thread entitled (variously), “Unbound(?) Internal fragmentation in Btrfs”, “Btrfs: broken file system design”, and “Balancing leaves when walking from top to down”. For his part, Chris Mason was very civil in his reply on a number of occasions, saying that he didn’t see a fundamental design problem existing in Btrfs. Edward “NACKed” Btrfs anyway for enterprise use (even though it’s been in tree for a while).

*). Defconfig kernel configs. Linus Torvalds (in a thread renamed to “ARM defconfig files”) essentially conveyed his discomfort with the continued existance of many dozens (or perhaps hundreds) of “defconfig” files in the architecture directories. These are reference files which are based upon copies of “known good” configuration files. They worked well back in the day, but as Linus says, times have changed and nobody is really making these files by hand any more without using Kconfig. So he proposes replacing them – eating the pain – with single config files per machine type that use Kconfig and source in particulars for the various chip and architecture family particulars. Russell King pointed out that this is basically what already happens, but the point of the defconfig files is to also handle stuff outside of the architecture – for example, choosing not to use certain “IDE” options on particular boards or systems – as Daniel Walker also pointed out. Daniel noted that those setting up e.g. a BeagleBoard or a Nexus One don’t really want to troll through thousands of possible kernel options if a good reference set is available to begin with. Daniel also point out a previous posting for a boolean SATisfiability solver in the kernel config. Linus thought that was interesting but ‘At the same time, “SAT solver” does scream “over-engineering failure” to me’. Linus later explained that he was looking to either kill the defconfigs or replace them with some templates and a means to generate them, but otherwise prefered them to live some place outside of the kernel.

*). GDB. David Howells posted a patch implementing GDB remote protocol support for the “p” command on FRV. The “p” command is used to transfer information about a single register, as opposed to the “g” command, that transfers data on several. But when a gdb client connects, it will attempt to use “p” or “g” and will then stick with that choice without varying. For this reason, Linus wondered aloud if using single reads would actually slow down clients connecting (since they usually will request a number of registers at a time). Jason Wessel said he had actualy done some fairly detailed benchmarking and would share his findings at a later point.

*). Timekeeping. Oleg Nesterov posted a thread entitled “Q: sys_futex() && timespec_valid()”, in which he attempted to summarize some concerns that the glibc folks were having with the Linux implementation of timespec timeouts. Ulrich Drepper replied, explaining that his point was that a negative value for tv_sec in the case of an absolute timeout should not return -EINVAL, but instead -ETIMEDOUT. He contends that a negative relative time in the 1960s is not an invalid time. Linus strongly disagreed, saying, “Ulrich – you’re wrong. Go away.” and then clarified, ‘In the end, it’s quite simple: the kernel doesn’t accept invalid timevals. And negative tv_secs are invalid. It’s that simple. If somebody gives the kernel a timeout from before the epoch [January 1st 1970], that somebody is being a total idiot. We know it’s not a valid absolute timeout, since there’s no way somebody is “waiting” for something that happened in the sixties. Yeah, yeah, maybe you’re waiting for flower power and and free sec. Good for you. But if you are, don’t ask the Linux kernel to wait with you. Ok?’ This author wonders what those still waiting for Elvis will do now that this is clarified.

*). VM. Larry Woodman posted a patch entitled “Call cond_resched() at bottom of main loo[sic: s/k/p/] in balance_pgdat()”, which handles a situation on small single CPU systems wherein a task should OOM (Out Of Memory) and call the OOM-killer, but it does not because kswapd is constantly running due to at least one system RAM zone being below the high page watermark. Larry adds a single cond_resched() call that will allow the watchdog, tasks, and OOM killer to run, freeing up the affected resources. Andrew Morton didn’t like this approach – implying he prefered something more specific than a cond_resched and waiting for the OOM killer to get chance to run – but he could live with it if there were a giant FIXME and/or some documentation at least explaining the essential nature of the specific cond_resched() call as opposed to a regular point of voluntary kernel preemption.

In today’s miscellaneous items:

*). Patrick Pannuto proposed a usleep API for the kernel to augment the existing msleep one, and be used as an alternative to udelay so as to allow the CPU to go into lower power C-states. After some dialogue between Patrick and Daniel Walker, in which Walker pointed out that some stats were needed to prove that this was power beneficial for small delays, it seemed that there was a small improvement for 50us delay values.

*). Ronny Tschuter had some issues with tracing power_start events when using the cpuidle framework with a menu governor and an cpi-based driver to handle idle states. There wer no instrumentation points in the processor_idle code, so he posted a patch, but Arjan van de Ven pointed out that the ACPI STATE type is pretty much “useless random garbage” so the posted should set their system to use mwait idle.

*). Dave Jones raised a concern with crypto and device-mapper. A potential regression was introduced somewhere between 2.6.32 and now, and the details are available in Red Hat Bugzilla 610278. Nobody replied to the posting on the list, but the Bugzilla says that one should be using LUKS, and in the case of not using it the default encryption options were changed due to a vulnerability. It is possible to mount the existing device using the instructions provided.

In today’s announcements:

*). Jeff Merkey announced the latest version of his MDB “Merkey’s Kernel Debugger” x86_64 2.6.34 07-01-2010 Release 4. It’s available on googlecode.com. There has been no community discussion thereof. Jeff also posted his Open Cworthy Libraries 07-01-2010.

*). Junio C Hamano announced Git version 1.7.1.1 is now available at: http://www.kernel.org/pub/software/scm/git/ He also announced Git 1.7.2.rc1 is available for review.

*). Karel Zak announced the latest stable release of util-linux-ng 2.18 is now available: http://www.kernel.org/pub/linux/utils/util-linux-ng/

*). Subrata Modak announced that the Linux Test Project for June 2010 has been released. http://ltp.sourceforge.net/

The latest kernel release is 2.6.35-rc4.

That’s a summary of today’s Linux Kernel Mailing List traffic, for further information visit www.kernel.org. I’m Jon Masters.

  • Print this article!
  • del.icio.us
  • Facebook
  • TwitThis
  • Identi.ca
  • Digg
  • Google Bookmarks
  • Slashdot
  • RSS
Categories: episodes Tags:
  1. No comments yet.
  1. No trackbacks yet.