Language Selection

English French German Italian Portuguese Spanish

Kernel space: Bisection divides users and developers

Filed under
Linux

The last couple of years have seen a renewed push within the kernel community to avoid regressions. When a patch is found to have broken something that used to work, a fix must be merged or the offending patch will be removed from the kernel. It's a straightforward and logical idea, but there's one little problem: when a kernel series includes over 12,000 changesets (as 2.6.25 does), how does one find the patch which caused the problem? Sometimes it will be obvious, but, for other problems, there are literally thousands of patches which could be the source of the regression. Digging through all of those patches in search of a bug can be a needle-in-the-haystack sort of proposition.

One of the many nice tools offered by the git source code management system is called "bisect." The bisect feature helps the user perform a binary search through a range of patches until the one containing the bug is found. All that is needed is to specify the most recent kernel which is known to work (2.6.24, say), and the oldest kernel which is broken (2.6.25-rc9, perhaps), and the bisect feature will check out a version of the kernel at the midpoint between those two. Finding that midpoint is non-trivial, since, in git, the stream of patches is not a simple line. But that's the sort of task we keep computers around for. Once the midpoint kernel has been generated, the person chasing the bug can build and test it, then tell git whether it exhibits the bug or not. A kernel at the new midpoint will be produced, and the process continues. With bisect, the problematic patch can be found in a maximum of a dozen or so compile-boot-test cycles.

Bisect is not a perfect tool.




More in Tux Machines

Uselessd: A Stripped Down Version Of Systemd

The boycotting of systemd has led to the creation of uselessd, a new init daemon based off systemd that tries to strip out the "unnecessary" features. Uselessd in its early stages of development is systemd reduced to being a basic init daemon process with "the superfluous stuff cut out". Among the items removed are removing of journald, libudev, udevd, and superfluous unit types. Read more

Android One: Let us fill you in on Google’s big game

India is now the world’s third largest Internet market and “on a bullet train to become the second”. But even when we become the second with around 300 million Internet users, India would still have over 75 per cent of the population that has no access to this so-called information superhighway. It is this chunk of population that will form the “next billion” which companies like Nokia, and now Google, has been talking about. And it is this next billion that Google thinks will line up to buy and good smartphone that is also affordable. Read more

Mesa Gets Closer To Having OpenGL 4.0 Tessellation Support

A significant patch-set was published on Saturday night that implements the driver-independent bits of OpenGL 4's ARB_tessellation_shader extension inside Mesa. The tessellation support has been one of the big pieces missing from Mesa's OpenGL 4 implementation and fortunately it's getting close to mainline. Chris Forbes of Intel published fifty-six patches this weekend that implement the driver-independent portions of the extension inside Mesa. Of course, the driver portions still need to follow for it to be useful. Read more

Small Console Menu Utilities

One of the great strengths of Linux is the whole raft of weird and wonderful open source utilities. That strength does not simply derive from the functionality they offer, but from the synergy generated by using them together, sometimes in conjunction with applications. The Unix philosophy spawned a "software tools" movement which focused on developing concise, basic, clear, modular and extensible code that can be used for other projects. This philosophy remains an important element for many Linux projects. Good open source developers writing utilities seek to make sure the utility does its job as well as possible, and work well with other utilities. The goal is that users have a handful of tools, each of which seeks to excel at one thing. Some utilities work well on their own. This article looks at four tiny utilities that offer menu facilities. They get virtually zero coverage in the Linux press, so you may not have heard of them before, but they are well crafted and might just fit the bill. Read more