Linus has been busy in the last week; as of this writing, some 6200
changesets have been
pulled into the mainline repository since
. As a result, just over 10,000 changes have been merged
overall, making 3.8 the busiest merge window ever and the first to exceed
10,000 patches. And the merging process is not done yet.
Quite a few significant changes have been merged. Among other things, we
have seen a decision made on how the development of better NUMA balancing
will proceed. Without further ado, the most significant user-visible
changes merged in the last week include:
- The disagreement over how the kernel's
NUMA performance problems should be addressed was partially resolved
when Ingo Molnar agreed that Mel
Gorman's "balancenuma" patch
set should be merged as a base for future development. Balancenuma is
intended to get the fundamental infrastructure in place to allow
experimentation with placement and migration policies; it adds little
in the way of such policies itself. That base code has
been merged for 3.8; expect policy-oriented code to be pushed for the
3.9 development cycle.
- The huge zero page feature has been
merged, greatly reducing memory usage for some use cases.
- The kernel memory usage accounting
infrastructure has been merged, allowing the placement of
limitations on kernel memory use by any specific control group. See
the updated Documentation/cgroups/memory.txt file for
details on how to use this feature.
- The inline data patch set has been
merged into the ext4 filesystem. Ext4 can now store data for small
files directly in the inode, improving performance and space
efficiency. Ext4 also now supports the SEEK_HOLE and
SEEK_DATA lseek() operations.
- The Btrfs filesystem has a new "replace" operation to allow the
efficient replacement of a single drive in a volume.
- The tmpfs filesystem now supports the SEEK_HOLE and
SEEK_DATA lseek() operations.
- The user namespace completion patch
set has been pulled. Eric Biederman says: "This set of
changes adds support for unprivileged users to create user namespaces
and as a user namespace root to create other namespaces. The tyranny
of supporting suid root preventing unprivileged users from using cool
new kernel features is broken."
- The new system call:
int finit_module(int fd, const char *args, int flags);
can be used to load a kernel module from the given file descriptor.
This call was added by the ChromeOS developers so that they can accept
or reject a module depending on where it is stored in the filesystem.
- The batman-adv mesh networking subsystem has gained distributed
ARP table support.
- The tun/tap network driver and the virtio net driver both now support
multiple queues per device.
- The QFQ packet scheduler has been upgraded to "QFQ+", which is said to
be faster and more capable; see this
paper [PDF] for details.
- The s390 architecture has gained support for attached PCI buses.
- UEFI boot-time variables are now accessible via the new "efivars"
- The ptrace() system call has a new option flag,
PTRACE_O_EXITKILL, which causes all traced processes to
receive a SIGKILL signal if the tracing process exits
- New hardware support includes:
Wolfson Microelectronics WM8766 and WM8776 codecs,
Philips PSC724 Ultimate Edge sound cards,
Freescale / iVeia P1022 RDK boards,
Maxim max98090 codecs, and
Silicon Laboratories 476x AM/FM radio chips.
LSI MPT Fusion SAS 3.0 host adapters, and
Chelsio T4-based 10Gb adapters (FCoE offload support).
NVIDIA Tegra20 display controllers and HDMI outputs.
ION iCade arcade controllers,
Wolfson Microelectronics "Arizona" haptics controllers,
Roccat Lua gaming mice,
TI ADC/touchscreen controllers, and
Dialog Semiconductor DA9055 ONKEY controllers.
The kernel has also gained support for human input devices
connected via i²c as described in
this document downloadable from Microsoft.
TI TPS51632 power regulators,
TI TPS80031/TPS80032 power regulators,
Versatile Express power regulators,
Versatile Express hardware monitoring controllers,
Maxim MAX8973 voltage regulators,
Dialog Semiconductor DA9055 regulators,
NXP Semiconductor PCF8523 realtime clocks (RTCs),
Dialog Semiconductor DA9055 RTCs,
CLPS711X host SPI controllers,
Nvidia Tegra20/Tegra30 SLINK controllers,
Nvidia Tegra20 serial flash controllers,
Nokia RX-51 (N900) battery controllers,
Solomon SSD1307 OLED controllers,
Nano River Technologies Viperboard multifunction controllers,
Nokia "Retu" multifunction controllers,
AMS AS3711 power management chips, and
Nokia CBUS-attached devices.
CDC mobile broadband interface model USB-attached adapters,
Atheros AR5523-based wireless adapters,
Realtek RTL8723AE wireless adapters,
Aeroflex Gaisler GRCAN and GRHCAN CAN controllers, and
Kvaser CAN/USB interfaces.
Samsung S3C24XX/S3C64XX SoC camera interfaces (full-memory write
access not required).
In contrast with the large number of new features, the number of
significant internal changes has been relatively small.
Changes visible to kernel developers include:
- The Video4Linux2 layer now supports the use of shared DMA buffers for frame I/O. See
the DocBook documentation for details on how to use this feature.
Also: the videobuf2 subsystem now
supports the use of scatterlists with user-space buffers in the
"contiguous" DMA mode.
- The input subsystem supports the use of "managed" devices via the new
One feature that has not been merged is RAID5/6 support for the Btrfs
filesystem. Those patches are being prepared for the mainline, though, and
can be expected in the 3.9 cycle. Meanwhile, the merge window could stay
open until as late as December 24, though Linus has threatened to
close it early. The final changes to be merged for 3.8 will be summarized
once that closure has happened.
to post comments)