2.6.39 merge window part 1
Linus released the 2.6.38 kernel on March 14, and started merging patches
for the 2.6.39 development cycle the following day. As of this writing,
just over 1,000 patches have been merged into the mainline. Clearly the
merging process has just begun for this cycle, but some interesting
features have been added. User-visible
changes merged so far include:
- The open by handle system calls have
been added. The final form of the API is:
int name_to_handle_at(int dfd, const char *name, struct file_handle *handle,
int *mnt_id, int flag);
int open_by_handle_at(int dirfd, struct file_handle *handle, int flags);
This functionality is intended for use by user-space file servers,
which can more efficiently track files using file handles.
- The open() system call has a new flag: O_PATH. A
file opened with this flag will have had its path resolved by the
is known to exist, but there is little else that can be done with it.
System calls which operate on file descriptors directly
(close() or dup(), for example) will work; these
file descriptors can also be passed to another process over
Unix-domain sockets using SCM_RIGHTS datagrams. The reason
for the existence of
O_PATH file descriptors is for use as the directory file
descriptor in the various "*at()" system calls.
- Tasks in the SCHED_IDLE class are now allowed to upgrade
themselves into the SCHED_BATCH or SCHED_OTHER
classes if their "nice" rlimit is adequate.
- There is a new system call which allows the adjustment of POSIX
int clock_adjtime(clock_id which_clock, struct timex *time);
Time adjustments possible are the same as for adjtimex(), but
specific POSIX clocks may not support all operations.
- The CLOCK_BOOTTIME POSIX clock has
- The new Smack SMACK64MMAP attribute can be used to control when
specific libraries can be mapped by running programs.
- New hardware support includes:
- Systems and processors: Intel "SandyBridge" CPUs,
CompuLab TrimSlice boards,
and several variations of the Seaboard evaluation platform.
- Block: ARASAN CompactFlash PATA controllers.
- Miscellaneous: picoXcell IPSEC and Layer2 crypto engines.
Changes visible to kernel developers include:
- There is a new interrupt flag (IRQF_FORCE_RESUME) which
forces the interrupt to be re-enabled at resume time regardless of
whether it was disabled during suspend.
- The kernel can now force (almost) all interrupt handlers to be run in
threads; this capability is controlled with the threadirqs
command line option. This is a useful debugging feature, as a
crashing interrupt handler will, when running in a thread, merely
cause a kernel oops instead of bringing down the whole system.
Interrupt handlers which should never be forced into threads can be
marked with IRQF_NO_THREAD, but its use is expected to be rare.
- The object debugging infrastructure
now allows the specification of a "debug hint" function; it returns an
address which can be used to better identify a specific object. See
commit for details.
- The long-deprecated SPIN_LOCK_UNLOCKED and
RW_LOCK_UNLOCKED lock initializers have been removed.
- The perf events subsystem has a new monitoring mode wherein it only
watches processes belonging to a specific control group. The new
-G option to perf provides access to this
- The directed yield feature has been
added to the fair scheduler; this feature should improve performance
for guests virtualized with KVM.
- There is a new mechanism for the dynamic addition of POSIX clocks; see
<linux/posix_clock.h> for the details of the interface.
- The x86 architecture has gained minimal device tree support.
- There is a new global workqueue called system_freezable_wq;
it differs from the others in that it can be frozen at suspend time.
- Core subsystems can make use of the new syscore_ops
mechanism to register power management callbacks without the need to
create otherwise useless system devices.
If the usual rules apply, the 2.6.39 merge window can be expected to close
around March 29, and the 2.6.39 release should happen around the first
week of June.
to post comments)