By Jonathan Corbet
May 31, 2010
The 2.6.35 merge window was closed with
the 2.6.35-rc1 release on
May 30. A relatively small number of changes have been merged since
last week's summary; the most
significant are summarized here.
User-visible changes include:
- The "ramoops" driver allows the system to record oops information
in persistent RAM for recovery later.
- The Btrfs filesystem has gained basic direct I/O support.
- The FUSE filesystem now enables user-space filesystem implementations
to transfer data with the splice() system call, avoiding a
copy operation.
- A new, non-ACPI CPU-idle mechanism for Intel processors has been added
on an experimental basis. It seems that, with enough cleverness, it's
possible to save more power by handling idle states directly instead
of letting the ACPI BIOS do it.
- There are a few new drivers:
ST-Ericsson AB8500 power management IC RTC chips,
SMSC EMC1403 thermal sensors,
Texas Instruments TMP102 sensors,
MC13783 PMIC LED controllers,
Cirrus EP93xx backlight controllers,
ADP8860 backlight controllers,
RDC R-321x GPIO controllers,
Janz VMOD-TTL digital I/O modules,
Janz VMOD-ICAN3 Intelligent CAN controllers,
TPS6507x based power management chips and touchscreen controllers,
ST-Ericsson AB3550 mixed signal circuit devices,
AB8500 power management chips (replacing existing driver),
S6E63M0 AMOLED panels, and
NXP PCF50633 MFD backlight controllers.
Changes visible to kernel developers include:
- The user-mode helper API (used by the kernel to run programs in user
space) has changed somewhat.
call_usermodhelper_setcleanup() has become:
void call_usermodehelper_setfns(struct subprocess_info *info,
int (*init)(struct subprocess_info *info),
void (*cleanup)(struct subprocess_info *info),
void *data);
The new init() function will be called from the helper process
just before executing the helper function. There is also a new function:
call_usermodehelper_fns(char *path, char **argv, char **envp,
enum umh_wait wait,
int (*init)(struct subprocess_info *info),
void (*cleanup)(struct subprocess_info *), void *data)
This variant is like call_usermodhelper() but it allows the
specification of the initialization and cleanup functions at the same
time.
- The fsync() member of struct file_operations has
lost its struct dentry pointer argument, which was not used
by any implementations.
- The new truncate sequence
patches have been merged, changing how truncate() is
handled in the VFS layer.
As is always the case, a few things were not merged. In the end,
suspend blockers did not make it; there was really no question of that
given the way the discussion went toward the end of the merge window. The
fanotify file notification
interface did not go in, despite the lack of public opposition. Also not
merged was the latest uprobes
posting. Concurrency-managed
workqueues remain outside of the mainline, as does a set of patches
meant to prepare the ground for that feature. Transparent hugepages did not go
in, but it was probably a bit early for that code in any case. The open by handle system calls went
through a bunch of revisions prior to and during the merge window, but
remain unmerged.
A number of these features
can be expected to try again in 2.6.36; others will probably vanish.
All told, some 8,113 non-merge changesets were accepted during the 2.6.35
merge window - distinctly more than the 6,032 merged during the 2.6.34
window. Linus's announcement suggests that a few more changes might
make their way in after the -rc1 release, but that number will be small.
Almost exactly 1000 developers have participated in this development cycle
so far. As Linus noted in the 2.6.35-rc1 announcement, the development
process continues to look healthy.
(
Log in to post comments)