Archive

Archive for July 21st, 2009

2009/07/20 Linux Kernel Podcast

July 21st, 2009 jcm 1 comment

Audio: http://media.libsyn.com/media/jcm/linux_kernel_podcast_20090720.mp3

For Monday, July 20th, 2009, I’m Jon Masters with a summary of today’s LKML traffic.

In today’s issue: BIOS, closed source graphics, hardware breakpoints, LTTng, Microsoft releases GPL Hyper-V drivers, UIO, and VFAT (redux).

BIOS. Siarhei Liakh enthusiastically posted a patch modifying the BIOS support to be in-line with the “BIOS32″ specification. That specification says things like that at most two pages of memory per BIOS32 service should be set executable and that the other protections of physical memory on PC systems between 640k and 1MB are not needed. This is all well and good, but as Peter Anvin pointed out, there is a wild disconnect between what BIOS specifications say and what BIOS writers actually do in the field. Siarhei admitted that this patch had only had minimal testing, mostly under virtualization.

Closed source graphics. Thomas Hellstrom started a thread entitled “DRM drivers with closed source user-space” in which he suggested that a lot of politicking over open source graphics drivers that have closed source userspace clients is only hurting progress. He argues that one should not reject a driver posted for inclusion solely because it has a closed source userspace client, but that one should instead request enough information from those submitting such drivers so as to understand the uses and any risks. He argues that open documentation and a security analysis of the driver itself should be sufficient for considering such drivers for inclusion.

Hardware breakpoints. Frederic Weisbecker posted an RFC patch series implementing a generic API for hw-breakpoints and adding support for perfcounters into the mix. There are some issues with only part of the breakpoint events being recorded with the perf tools and he is going to develop the patches more to correct that, but requests comments.

LTTng. Mathieu Desnoyers posted to let everyone know that version 0.149 of LTTng includes an experimental ASCII output module. He gave an example of the kind of output that can be generated, and included some documentation updates.

Microsoft Hyper-V drivers for Linux (Hell finally froze over). “It’s getting cold in here” was how Greg Kroah-Hartman summarized the situation in his blog posting that followed his public announcement on LKML that Microsoft was releasing Hyper-V drivers for Linux. Apparently, many months of discussions have lead to this 54 part patch posting that is initially targeting the staging tree, and is obviously released under the GPLv2. Expect to see a lot of people playing up the significance of Microsoft releaing GPL code, and for Hyper-V at that, and likely an LWN article on the topic (one would expect). On a side note, the LKML filters initially managed to eat the Microsoft posting – perhaps they are smarter than anyone really knew.

UIO. Michael S. Tsirkin posted version 5 of a Userspace IO driver for PCI 2.3 devices. This generic driver allows userspace tasks to bind to a hardware PCI device without using a kernel driver, so long as the hardware supports the PCI 2.3 specification that includes a generic Interrupt Disable bit in the PCI command register and Interrupt Status bit in the PCI status register for each device. The first user of this driver will be KVM and other virtualization projects since they can now easily give guest OS access to PCI 2.3 devices.

VFAT. On another semi-Microsoft related note today, and as if we didn’t need reminding that they are not our friends, Andrew Trigell posted another version of his VFAT patches. These seem to have a number of cleanups, apparently work with Windows 98 (albeit with some ugliness in the 8.3 filenames displayed) and work with most of the devices available to Jan Engelhardt and himself. His posting has more detail on the legal topics that I won’t cover here.

In today’s miscellaneous items: Catalin Marinas continued to find and point out potential memory leaks detected using Catalin’s kmemleak detection tool, a new version of the “enable x2APIC without interrupt remapping under KVM” patch (Gleb Natapov), a request from Lai Jiangshan that the “simplify sysrq-c handler” patch be reverted as it breaks tools like kdump, a fix replacing use of for_each_zone in the hibernation code with for_each_populated_zone (Gerald Schaefer) so that unpopulated ZONE_MOVABLEs don’t cause a BUG_ON on resume, some kbuild fixes (Sam Ravnborg), some tracing fixes (Steven Rostedt), some ponderings from Eric Paris about the need for a second mmap_min_addr_lsm, and Jason Wessel posted some earlyprintk reliability improvements for debugging using a USB device connected to an EHCI debug controller.

The latest kernel release is: 2.6.31-rc3, which was released by Linus over a week ago now.

Greg Kroah-Hartman released Linux 2.6.27.27 and 2.6.30.2 just before going off on some vacation. These were based upon the review patches posted previously.

Willy Tarreau released Linux 2.4.27.3. This contained a number of fixes, including one (CVE-2009-1389) that affected the r8169 driver that is used by many cheaper motherboards. Apparently it took Willy days to backport the appropriate 2.6 bits to the older kernel, so kudos to him for doing that.

Stephen Rothwell posted a linux-next tree for July 20th. Since Friday, the tree still fails to build in an allyesconfig build configuration on powerpc and several other conflicts were removed. The total sub-tree count in the latest compose is steady at 132 trees.

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

Categories: episodes Tags:

2009/07/19 Linux Kernel Podcast

July 21st, 2009 jcm 2 comments

Audio: http://media.libsyn.com/media/jcm/linux_kernel_podcast_20090719.mp3

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

In today’s issue: Fast and fine-grained clock sources, kmemleak, KSM, large disk arrays, and NX kernel data page protections.

Fast and fine-grained clock sources. John Stultz posted an RFC patch discussing the need for CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE clocks. These provide fine-grained timestamps, but only as of the last tick, and therefore save the (possibly very expensive) accessing of hardware. This is especially useful on Real Time systems when used in combination with the non-syscall heavy VDSO. The only real problem I can see is that this likely isn’t covered by any of the POSIX.4 specification(s), and yet exists in the same namespace as the other POSIX-defined clocks.

Kmemleak. Catalin Marinas posted an RFC patch implementing scanning for all kernel thread stacks. This will enhance the existing ability for kmemleak to locate memory leaks by looking for leaking pointers on the kernel stack(s). Catalin also posted a patch protecting kmemleak_seq start/next/stop with a call to rcu_read_lock() since such objects may a freed object reference.

KSM (Kernel Shared Memory). Izik Eidus reposted the KSM patches for consideration. KSM – Kernel Shared Memory – is a patch that aims to reduce the wasted (duplicated) memory footprint of virtual machines by scanning physical RAM pages for identical copies of the same data, replacing them with a single COW page intead, and various accompanying resource tracking. Andrea Arcangeli gave an excellent presentation on KSM at the 2009 Linux Symposium, the proceedings of which are now available. Those interested are encouraged to refer to the paper, and to the postings on the LKML also.

Large disk arrays. Neil Brown posted to point out that 32-bit Linux doesn’t handle devices larger than 16TB particularly well (the page cache is limited to a pgoff_t number of pages for example) and due to the prevelence of large disk devices now, one shouldn’t just assume that only 64-bit systems will have large block devices. Instead, it might be necessary to institute a policy – for example refusing to create devices larger than 16TB on 32-bit Linux.

NX kernel data page protection. Siarhei Liakh posted a patch expanding the functionality of CONFIG_DEBUG_RODATA to add protection for the main (static) kernel data area. The patch modifies several kernel linker scripts such that the kernel .text, .rodata, and .data sections always end on page boundaries.

In today’s miscellaneous items: a tracing fix (Frederic Weisbecker), a post from Barry Song removing the check for IRQ_DISABLED in interrupt thread functions (this appears to be a bad idea, and I’m waiting to see what Thomas says about it – I think it’s better to reconsider the existing code comment), a tracepoint for the timer event (Xio Guangrong), a fix to load average accounting and some tracing fixes (Thomas Gleixner), some lguest and virtio fixes (Rusty Russell), xfs tracing support (Christoph Hellwig), some sound fixes (Takashi Iwai), a PCI fix (Jesse Barnes), some ide-tape fixes (Borislav Petkov), improved rfkill support for hp-wmi (Alan Jenkins), and a question from Per Forlin as to the intended usage of the kernel DMA engine code, and how it might be extended to do the kinds of things that Per would like to do.

In today’s announcements: trace-cmd. A command line reader for ftrace. Steven Rostedt posted to announce trace-cmd, which is a command line reader for ftrace designed to be an alternative to the existing pseudo-text files. It doesn’t replace the existing interface, but complements it, and as a userspace utility is hosted in a git repository on git.kernel.org.

The latest kernel release is still 2.6.31-rc3, which was released by Linus last weekend. The biggest issue at the moment appears to be some lingering TTY issues related to ongoing cleanups, and several problem reports are ongoing.

Greg Kroah-Hartman posted a series of review patches for the 2.6.30.2 and 2.6.27.27 stable series. The former had 24 patches, while the latter had only 8. As usual, there wasn’t much time for public review – this case exascerbated by the fact that there were public security issues covered by the patches, and the fact that Greg was due to go on vacation.

Stephen Rothwell posted a linux-next tree for July 17th. Since Thursday, the tree still fails to build in an allyesconfig build configuration on powerpc, and several other build failures appeared in the tree. The total sub-tree count remains steady at 132 trees in the latest linux-next tree compose.

That’s a summary of today’s LKML traffic. For further information visit kernel.org. I’m Jon Masters.

Categories: episodes Tags:

2009/07/16 Linux Kernel Podcast

July 21st, 2009 jcm 1 comment

Audio: http://media.libsyn.com/media/jcm/linux_kernel_podcast_20090716.mp3

For Thursday, July 16th, 2009, I’m Jon Masters with a summary of today’s LKML traffic.

In today’s issue: Git, Moorestown, scheduler, and Xinterface.

Git. Yesterday’s announcement of a new git release (1.6.4.rc1) triggered some discussion (from Jeff Garzik) concerning the correct ways to create new git repositories, especially “bare” repositories as are often hosted on kernel.org, and the correct gitconfig entires involved in so doing. On a related note, this author is hopeful that someone will document the best practices for git tree management on kernel.org, including whether the use of “shared” repositories on git.kernel.org is actually to be recommended.

Moorestown. Jacob Jun Pan posted (obviously from Intel) with a series of ten patches implementing x86 support for the new Intel Moorestown MID platform. Moorsetown is not a standard x86 system, does not include non-MMAPed IO, doesn’t feature ACPI, and so forth. It does include Lincroft (a north complex with CPU, memory controller, and graphics unit), and Langwell (IO hub, system controller unit, etc.). The posted patchset includes a number of features.

Scheduler. Frederic Weisbecker posted a series of patches, including an update to one scheduler patch that drops a looping call to need_resched() in cond_resched(), since the check has already been performed elsewhere. This improves overall performance and was mentioned previously. Separately, Peter Zijlstra posted a series of other scheduler fixes.

Xinterface. Gregory Haskins posted a series of patches implementing “xinterface”, this is the successor to the original vbus code, which was tightly integrated with KVM and which Avi Kivity had suggested be split out. That lead in part to what is now irqfd/ioeventfd, but one of the remaining pieces (pointer-translation) had been outstanding. Greg’s latest patches aim to implement a generic means for tracking of guest memory slots and notifying upon changes to them, in a generic fashion that can be used by things like virtio-net, and other modules, at some point. This allows kernel modules that are external to KVM to interface with a running guest, as Greg explains.

In today’s miscellaneous items: some powerpc fixes (Ben Herrenschmidt), version 4 of the Zero Page patches (Kamezawa Hitoyuki), a suggestion from Catalin Marinas that it would be worthwhile creating a tree containing fixes to leaks found by the kmemleak detector (presumably intended for linux-next inclusion), an RFC patch from Luming Yu stating that the current hotplug memory code is making inappropriate assumptions about the meaning of the Hot Pluggable bit of the Memory Affinity Structure (the SRAT table in the ACPI spec), some timer fixes (again) from Thomas Gleixner, some perfcounter fixes (Anton Blanchard), version two of the VGA arbitration patches (Tiago Vignatti), a libata patch (Matthew Garrett) exposing information about port hotplug capabilities to userspace, some Blackfix fixes (Mike Frysinger), and a request for clarification from Ted T’so (of Alan Cox) as to whether there is still an outstanding PTY bug in 2.6.31 or whether that has been fixed by now (he had been experiencing a weird PTY failure after a number of hours).

The latest kernel release was 2.6.31-rc3, which was released by Linus over the weekend. Caleb Cushing posted to say that he has seen a 20-50% drop in packets since switching from 2.6.30 to 2.6.30.1, which if true, needs investigation.

Andrew Morton posted another mm-of-the-moment for 2009-07-16-14-32.

Stephen Rothwell posted a linux-next tree for July 16th. Since Wednesday, the tree still fails to build in an allyesconfig build configuration on powerpc, and several trees lost their build failures. The total number of sub-trees remains steady at 132 sub-trees in the latest compose.

That’s a summary of today’s LKML traffic. For further information visit kernel.org. I’m Jon Masters.

Categories: episodes Tags:

2009/07/15 Linux Kernel Podcast

July 21st, 2009 jcm No comments

Audio: http://media.libsyn.com/media/jcm/linux_kernel_podcast_20090715.mp3

For Wednesday, July 15th, 2009, I’m Jon Masters with a summary of today’s LKML traffic.

In today’s issue: Ceph, headers, MM, and unused symbols.

Ceph. Sage Weil posted version 0.10 of the “Ceph” distributed filesystem client. Apparently, this latest version fixes a number of bugs since the previous 0.9 posting. Sage asks “what [people would] like to see for this to be merged into fs/?”.

Headers. Michal Simek and Arnd Bergmann had a discussion concerning asm-generic pgtable.h and the belief (of Michal Simek) that this could be simplified as there a lot of functions shared by all architectures. Later, Arnd followed up, suggesting that he had previously missed the commonality of the pgtable.h implementations, and provided a patch with a common version.

MM. Ben Herrenschmidt posted concerning new 64-bit “BookE” powerpc systems. These “embedded-like” systems use software-assisted page table management like their 32-bit cousins (this author worked heavily on 32-bit PowerPC 4xx TLB management code back in the day) but also have a capability for a special form of multi-level PTE in which the RPN of an individual PTE is actually an array of PTEs from which a TLB can automatically create entries. This implementation necessitates the presence of the virtual address in the TLB freeing code, so Ben’s patch updates all architectures in the process of adding this additional information to all forms of these functions.

Separately but also on an MM note, Mel Gorman posted a series of MM patches. These included warning when a page is freed but has PG_mlocked set, ensuring that OOM killed tasks set TIF_MEMDIE and thus exit the page allocator, and a resend of a patch covered previously in this podcast, which will suppress warnings about order >= MAX_ORDER page allocations where the caller knows how to handle these and has set __GFP_NOWARN.

Unused symbols. Robert P. J. Day posted asking if there was now any value in retaining the EXPORT_UNUSED_SYMBOL and EXPORT_UNUSED_SYMBOL_GPL macros, intended to annotate exported symbols that should not be used by modules in the longer term, and scheduled previously for feature removal from the kernel way back when in the 2.6.19 timeframe. At this point, there is only one actual in-kernel user of these macros (libfs – simple_prepare_write).

In today’s miscellaneous items: The ext4 memory leak reported on Wednesday by kmemleak on a system under the control of Alexey Fisher seems to have been fixed by a patch from Aneesh Kumar, some ide-tape fixes (Borislav Petkov), a patch to the connector code (Mike Frysinger) such that it actually explicitly uses struct cn_msg everywhere (as is documented) rather than void pointers, asynchronous device actions (asynchronous power management) patches (Zhang Rui), ptrace regsets support for S+Core (Liqin Chen), a second version of the patch implementation gmtime and localtime from yesterday, following feedback from Andrew Morton (Zhao Lei), some DRM fixes from Dave Airlie, and an SMI workaround in pit_expect_msb for certain systems vulnerable to ill-timed SMIs triggering an incorrect pit calibration and CPU MHz value (Wei Chong Tan).

Finally today, Jeremy Fitzhardinge wondered aloud about the plumbing of splice into the Linux network stack. He is specifically interested in carrying pages granted by one Xen domain through the Linux network stack without copying, and asked Jens for his opinions on using splice to implement this. One complication he saw was that he does not easily have a struct page available for the management of the splicing, but thinks this can be solved.

In today’s announcements: Jesper Dangaard Brouer posted to announce that he has achieved 10Gbit/s bidirectional routing on standard hardware running Linux, using pre-release versions of Intel’s 82559 chip. Summing the totals for ingress and egress across several interfaces, Jesper is actually handling a total of around 38 Gbit/s. He plans to give a talk at LinuxCon on the subject of 10Gbit/s routing on Linux systems. Also in today’s announcements, version 2.16 of the util-linux-ng from Karel Zak, and version 1.6.4.rc1 of the Git SCM was posted by Junio C Hamano.

The latest kernel release was 2.6.31-rc3, which was released by Linus over the weekend. Current reports suggest stability is improving over previous RCs.

Andrew Morton posted an mm-of-the-moment for 2009-07-15-20-57, which contains a number of patches against 2.6.31-rc3.

Stephen Rothwell posted a linux-next tree for July 15th. Since Tuesday, the usb and its dependent staging tree were undropped, the tree still fails to build in an allyesconfig build configuration for powerpc, and two additional build failures necessitated older versions of the pci and dwmw2-iommu trees. The total sub-tree count in the current linux-next compose remains steady at a total of 132 trees.

That’s a summary of today’s LKML traffic. For further information visit kernel.org. I’m Jon Masters.

Categories: episodes Tags: