Kernel development
Brief items
Kernel release status
The current development kernel is 2.6.37-rc1, released on November 1. The 2.6.37 merge window is now closed. "There's a lot of changes there - just shy of 10k commits since 2.6.36 - despite the slightly shortened merge window. Way too many to list. But the part that I think deserves some extra mention is that we've finally largely gotten rid of the BKL (big kernel lock) in all the core stuff, and you can easily compile a kernel without any BKL support at all. It's been a long road, and thanks to Arnd and others who did it." Full details can be found in the long-format changelog.
Stable updates: the 2.6.27.55, 2.6.32.25, and 2.6.35.8. stable updates were released on October 29; each contains a long list of important fixes. Greg has let it be known that there will be one more 2.6.35 update before support for that kernel ends.
Quotes of the week
Kernel development news
The 2010 Kernel Summit
The 2010 Kernel Summit was held on November 1 and 2 in Cambridge, MA, USA. Some seventy or so top-level kernel developers gathered there to discuss a wide range of topics which are of interest to the wider kernel community. Your editor was there, frantically taking notes. Reports from the first day's sessions can be found below:
- Welcoming newcomers: is the kernel
development community sufficiently open to newcomers to ensure an
adequate flow of new developers? If not, what can we do about it?
- ABI status for tracepoints. There is
an increasing amount of instrumentation which depends on tracepoints;
they are becoming part of the kernel binary interface. To what extent
should tracepoints have set-in-cement ABI status?
- The core kernel vision. Neil Brown
asks: do we have a core vision for how the kernel should be developed?
If so, how do we enforce it?
- A staging process for ABIs. Getting
user-space ABIs right is hard; should there be a process for
tentatively adding interfaces which are subject to change?
- Deadline scheduling: does the kernel
need a new class for deadline scheduling?
- Regressions as seen by kernel
regression tracker Rafael Wysocki.
- Performance regressions:
performance-sensitive users often notice that kernel releases tend to
get slower over time. What can we do about that?
- Big out-of-tree projects: are they a
problem, and what can be done about them?
- Checkpoint/restart: what are its
prospects for inclusion?
- Lightning talks: the final session of the day was dedicated to short talks on Coccinelle, the device model, the big kernel lock, and more.
The sessions which were held on the second day of the summit are:
- Linux at NASDAQ; a session on how
a high-volume end users uses Linux and where the pain points are.
- Scalability: where we stand and what
comes next.
- Minisummit reports covering
networking, filesystems, Video4Linux, embedded, power management, and
more.
- Security: are we doing enough to keep
the kernel secure?
- Scheduling issues: this session was
essentially a second end-user presentation focused on Google's
scheduling challenges.
- Kernel.org update: the current status
of the infrastructure behind kernel development.
- A stable tree update from Greg Kroah-Hartman. The bulk of the
information presented here was also seen at Greg's LinuxCon Japan keynote, so readers may
want to go there for the details. Beyond that, Greg noted that he
will start dropping trees a little sooner (2.6.35 is about to get its
last update). There were some questions on the routing of stuff to
stable - both in terms of missing important patches and sending stuff
which shouldn't go there. The solution in both cases is for
maintainers to pay more attention.
- Development process issues: Linus
Torvalds and Andrew Morton talk about how the process is going, what
can be improved, and whether the version numbering scheme should
change.
- Future summits: the format of the kernel summit looks likely to change starting in 2011.
The Kernel Summit was followed by a joint reception with the Linux Plumbers Conference. An election for the Linux Foundation's Technical Advisory Board was held there. The five open seats were won by James Bottomley and Chris Mason (both incumbents), joined by newcomers John Linville, Grant Likely, and Hugh Blemings.
The second half of the 2.6.37 merge window
The 2.6.37-rc1 prepatch has been released, so the merge window is now closed. Nearly 3100 changesets were merged between last week's summary and the closing of the window; there were 9518 non-merge changesets merged in total for 2.6.37. The most significant user-visible changes include:
- The last significant big kernel lock holdout -
the file locking code - has been fixed. It is now possible to build a
generally useful kernel without the BKL, though quite a few older
drivers still require it.
- Support for the CAIF
shared memory protocol has been added.
- The perf probe command has a new --vars option which
will cause it to list the local variables which are accessible from a
given probe point. With --externs, global variables are
listed as well. It is now possible to place probes in loadable
modules.
- The ext4 filesystem now supports "lazy inode table initialization," an
option which makes the creation of filesystems faster. Ext4 now
features a reworked I/O submission path which should improve
performance and scalability.
- "Batched discard" support has been added in the form of the new
FITRIM ioctl() command. This feature allows the
filesystem to tell the underlying storage device about all of the
unused blocks at once. So far, this feature is only implemented by
the ext4 filesystem.
- Much of the long-delayed Xen Dom0 (hypervisor) support has finally
been merged. 2.6.37 will still not be Dom0-ready; there will be at
least one more development cycle required for that; see this summary from Jeremy Fitzhardinge for
the full plan.
- The fanotify subsystem has been re-enabled, and should be available in
2.6.37.
- The 9p filesystem has gained POSIX access control list support.
- The Speakup kernel-based screen reader has been merged into the
staging tree.
- New drivers:
- Systems and processors: aESOP Samsung S5PV210-based
Torbreck boards.
- Audio: Intel MID SST DSP devices.
- Block: Cypress Astoria USB SD host controllers,
Marvell PXA168/PXA910/MMP2 SD host controllers, and
ST Microelectronics Flexible Static Memory Controllers.
- Miscellaneous: Basic, memory-mapped GPIO controllers,
Intel Topcliff GPIO controllers,
Intel Moorestown/Medfield i2c controllers,
IDT CPS Gen.2 SRIO RapidIO switches,
Freescale i.MX DMA engines,
ARM PrimeCell PL080 or PL081 DMA engines,
Cypress West Bridge Astoria controllers,
USB ENE card readers,
Asahi Kasei AK8975 3-axis magnetometers,
OLPC XO display controller devices,
Analog Devices AD799x analog/digital converters,
Winbond/Nuvoton W83795G/ADG hardware monitoring chips,
Flarion OFDM usb and pcmcia modems,
Maxim MAX8952 and MAX8998 Power Management ICs,
National Semiconductors LP3972 PMIC regulators, and
Broadcom BCM63xx hardware watchdogs.
- Network: Intel Topcliff platform controller hub CAN
interfaces,
Technologic Systems TS-CAN1 PC104 peripheral boards,
SBE wanPMC-2T3E3 interfaces,
RealTek RTL8712U (RTL8192SU) Wireless LAN NICs (replaces older
rtl8712 driver),
Atheros AR6003 wireless interface controllers,
Beeceem USB Wimax adapters, and
Broadcom bcm43xx wireless chipsets.
- Video4Linux2: remotes using the RC-5 (streamzap) protocol, Konica chipset-based cameras, Sharp IX2505V silicon tuners, LME2510 DM04/QQBOX USB DVB-S boxes, Samsung s5h1432 demodulators, Several new Conexant cx23417-based boards, Nuvoton w836x7hg consumer infrared transceivers, OmniVision OV6650 sensors, OMAP1 camera interfaces, Siliconfile SR030PC30 VGA cameras, Sony imx074 sensors, and VIA integrated chipset camera controllers.
- Systems and processors: aESOP Samsung S5PV210-based
Torbreck boards.
Changes visible to kernel developers include:
- There have been, once again, significant changes to the Video4Linux2
driver API. The new "mediabus" layer adds flexibility for dealing
with complex devices, but also complicates simpler drivers somewhat.
The videotext/teletext API, long unused, has been removed.
- The file_system_type structure has a new mount() function which is meant to replace get_sb().
Now the stabilization period begins; the final 2.6.37 release will almost certainly happen in January.
Patches and updates
Kernel trees
Architecture-specific
Core kernel code
Development tools
Device drivers
Filesystems and block I/O
Memory management
Page editor: Jonathan Corbet
Next page:
Distributions>>
