By Jonathan Corbet
January 19, 2011
As of the
2.6.38-rc1 release, some 7616
non-merge changesets
had been pulled into the mainline kernel. A number of significant changes
have been merged since
last week's summary;
the most interesting changes visible to users are:
- The transparent huge pages feature has
been merged. THP attempts to maximize the use of huge pages in the
system (boosting performance) without requiring application changes or
administrator overhead.
- A new tool called turbostat has been added; it can be used to
obtain various types of performance statistics from Intel processors.
Also added is x86_energy_perf_policy, which can be used to
tweak the performance/power usage tradeoff on Intel CPUs.
- The taskstats API has been changed to use different alignments for
returned values; this may break applications which were dependent on
the old arrangement.
- The kernel can now synchronize its internal time to an external
pulse-per-second (PPS) signal with a high degree of accuracy. The kernel
has also gained the ability to generate (and accept) PPS signals on a
parallel port, assuming one can still find a computer with such a port.
- The x86 architecture can now boot XZ-compressed kernels.
- Basic support for multitouch panels has been added to the human input
devices (HID) layer.
- The kernel now has support for the RFC4106 AES-GCM cryptographic
algorithm.
- The fallocate() system call can now be used to punch holes in the middle of files.
Currently this feature is supported by XFS and OCFS2.
- The XFS filesystem supports the FITRIM ioctl(),
allowing discard operations to be initiated from user space.
"This is not intended to be run during normal workloads, as the
freepsace btree walks can cause large performance degradation."
- The LIO SCSI target core has been merged.
- The block I/O bandwidth controller can now be used with hierarchical
control groups.
- The block layer has a new "events
handling" mechanism. What that
means is that detection of device events (the insertion of an optical
disc, for example) can be done in the drivers, eliminating the need to
poll devices from user space.
- The device mapper dm-crypt target has a new "multikey" mode whereby
different blocks can be encrypted with different keys. The crypt
target is also now able to access encrypted partitions created with
the out-of-tree loop-AES package.
- The device mapper has gained the ability to manage RAID 4/5/6 volumes
using the MD RAID drivers.
- The clone() system call no longer honors the long-deprecated
CLONE_STOPPED flag.
- The btrfs filesystem has gained support for read-only snapshots and
LZO compression.
- New drivers:
- Systems and processors:
ALPHAPROJECT AP-SH4A-3A and AP-SH4AD-0A reference boards,
Acme Systems srl FOX G20 boards,
GeoSIG GS_IA18_S boards,
and Atheros AR71XX/AR724X/AR931X SoCs.
- Audio: HP t5325 audio devices,
Realtek alc562x codecs,
Wolfson Micro WM8770 and WM8995 codecs,
Wolfson Micro WM8958 multi-band compressors, and
Wolfson Micro WM8737 analog-to-digital converters.
- Input: Austria Microsystem AS5011 joysticks.
- Miscellaneous:
NXP Semiconductors PN544 near-field communication chips,
Oki Semiconductor ML7213 IOH GPIO controllers,
Freescale MC13892 PMIC regulators,
Freescale MCF548x watchdog timers,
TI TPS6524X Power regulators,
AMD/ATI SP5100 TCO timer/watchdog chipsets,
Atheros AR71XX/AR724X/AR913X hardware watchdogs,
nVidia TCO timer/watchdog devices,
Intel EG20T platform controller hubs, and
Maxim MAX17042/8997/8966 fuel gauges.
Changes visible to kernel developers include:
- ktest.pl, a script which can automate the process of building,
testing, and bisecting kernels, has been added to the tools
directory.
- The "%pK" format specifier can be used to print the value of
potentially sensitive kernel pointers, especially in places like
/proc files. The behavior of this specifier depends on the
value of /proc/sys/kernel/kptr_restrict; a value of zero
means that kernel pointers will be printed as usual, one causes
pointers to be printed as zero for users without CAP_SYSLOG,
and two hides the pointers for all users.
- cdev_index() has been removed; since there are no in-kernel
users, nobody is likely to notice.
- The new function kref_test_and_get() will take a reference
only if the current reference count is not zero.
- Some new dentry operations have been added to support automounters
within the VFS.
- The fallocate() filesystem callback has been moved from
struct inode_operations to struct file_operations.
With the 2.6.38 feature set complete, the process of stabilizing all of
this new code can continue; expect a final 2.6.38 release sometime in late
March.
(
Log in to post comments)