|
|
Subscribe / Log in / New account

2.6.39 merge window part 1

By Jonathan Corbet
March 16, 2011
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 kernel and 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 clocks:

        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 been added.

  • 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 this 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 functionality.

  • 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.

Index entries for this article
KernelReleases/2.6.39


to post comments

2.6.39 merge window part 1

Posted Mar 17, 2011 1:54 UTC (Thu) by kvaneesh (subscriber, #45646) [Link]

O_PATH flag also allow a descriptor for symlinks. That is the main difference IMHO. I have a set of test cases showing the usage at
http://git.kernel.org/?p=fs/ext2/kvaneesh/handle-test.git;...

Handling interrupts in thread context

Posted Mar 17, 2011 19:34 UTC (Thu) by abacus (guest, #49001) [Link] (1 responses)

This is something that the rt people are doing since a long time. Makes me wonder whether (finally) more progress is being made with regard to merging rt in the mainline kernel ?

Handling interrupts in thread context

Posted Mar 25, 2011 5:19 UTC (Fri) by kabloom (guest, #59417) [Link]

Remember http://lwn.net/Articles/370998/

"The RT people have actually been pretty good at slipping their stuff in,
in small increments, and always with good reasons for why they aren't
crazy.
...
And yeah, I still think the hard-RT people are mostly crazy."

The BKL is gone

Posted Mar 18, 2011 0:19 UTC (Fri) by cesarb (subscriber, #6266) [Link] (1 responses)

The BKL is gone

Posted Apr 22, 2011 6:32 UTC (Fri) by neilbrown (subscriber, #359) [Link]

git grep 'big kernel lock'
git grep -iw bkl

suggest that there is still some cleaning up that could be done. In particular 'lock_depth' still exists in 'struct task_struct' but is never changed from -1.. :-)


Copyright © 2011, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds