The end of the 3.12 merge window
In the end, 9,479 non-merge changesets were pulled into the mainline repository for the 3.12 merge window; about 1,000 of those came in after the writing of last week's summary. Few of the changes merged in the final days of the merge window were hugely exciting, but there have been a number of new features and improvements. Some of the more significant, user-visible changes include:
- Unlike its predecessor, the 3.12 kernel will not be known as "Linux
for Workgroups." Instead, for reasons that are not entirely clear,
the new code name was "Suicidal Squirrel" for a few days; it then was
changed to "One giant leap for frogkind."
- It is now possible to provide block device partition tables on the
kernel command line; see Documentation/block/cmdline-partition.txt
for details.
- The memory management subsystem has gained the ability to migrate huge
pages between NUMA nodes.
- The Btrfs filesystem has the beginning of support for offline
deduplication of data blocks. A new ioctl() command
(BTRFS_IOC_FILE_EXTENT_SAME) can be used by a user-space
program to inform the kernel of extents in two different files that
contain the same data. The kernel will, after checking that the
data is indeed the same, cause the two files to share a single copy of
that data.
- The HFS+ filesystem now supports POSIX access control lists.
- The reliable out-of-memory killer
patches have been merged. This work should make OOM handling more
robust, but it could possibly confuse user-space applications by
returning "out of memory" errors in situations where such errors were
not seen before.
- The evdev input layer has gained a new EVIOCREVOKE
ioctl() command that revokes all access to a given file
descriptor. It can be used to ensure that no evil processes lurk on
an input device across sessions. See this
patch for an example of how this functionality can be used.
- New hardware support includes:
- Miscellaneous:
MOXA ART real-time clocks,
Freescale i.MX SoC temperature sensors,
Allwinner A10/A13 watchdog devices,
Freescale PAMU I/O memory management units,
TI LP8501 LED controllers,
Cavium OCTEON GPIO controllers, and
Mediatek/Ralink RT3883 PCI controllers,
- Networking: Intel i40e Ethernet interfaces.
- Miscellaneous:
MOXA ART real-time clocks,
Freescale i.MX SoC temperature sensors,
Allwinner A10/A13 watchdog devices,
Freescale PAMU I/O memory management units,
TI LP8501 LED controllers,
Cavium OCTEON GPIO controllers, and
Mediatek/Ralink RT3883 PCI controllers,
Changes visible to kernel developers include:
- The seqlock locking primitive has gained a new "locking reader" type.
Normally, seqlocks allow for data structures to be changed while being
accessed by readers; the readers are supposed to detect the change (by
checking the sequence number) and retry if need be. Some types of
readers cannot tolerate changes to the structure, though; in current
kernels, they take an expensive write lock instead. The "locking
reader" lock will block writers and other locking readers, but allow
normal readers through. Note that locking readers could share
access with each other;
the fact that this sharing does not happen now is an implementation
limitation. The functions for working with this type of
lock are:
void read_seqlock_excl(seqlock_t *sl); void read_sequnlock_excl(seqlock_t *sl);
There are also the usual variants for blocking hardware and software interrupts; the full set can be found in <linux/seqlock.h>.
- The new shrinker API has been merged.
Most code using this API needed to be changed; the result should be
better performance and a better-defined, more robust API. The new
"LRU list" mechanism that was a part of that patch set has also been
merged.
- The per-CPU IDA ID allocator patch set has been merged.
Now begins the stabilization phase for the 3.12 kernel. If the usual
pattern holds, the final release can be expected on or shortly after
Halloween; whether it turns out to be a "trick" or a "treat" depends on how
well the testing goes between now and then.
Index entries for this article | |
---|---|
Kernel | Releases/3.12 |
Posted Sep 17, 2013 17:13 UTC (Tue)
by fishface60 (subscriber, #88700)
[Link] (2 responses)
Posted Sep 17, 2013 19:05 UTC (Tue)
by aeruder (guest, #22597)
[Link]
Posted Sep 17, 2013 21:33 UTC (Tue)
by proski (subscriber, #104)
[Link]
Posted Sep 17, 2013 19:01 UTC (Tue)
by nix (subscriber, #2304)
[Link] (9 responses)
Posted Sep 17, 2013 22:37 UTC (Tue)
by daniels (subscriber, #16193)
[Link] (8 responses)
Posted Sep 18, 2013 0:12 UTC (Wed)
by nix (subscriber, #2304)
[Link] (7 responses)
*loud and prolonged cheers*
(even if it did have to be an ioctl())
Posted Sep 18, 2013 8:32 UTC (Wed)
by blackwood (guest, #44174)
[Link] (6 responses)
Posted Sep 18, 2013 23:31 UTC (Wed)
by nix (subscriber, #2304)
[Link] (5 responses)
Maybe a simple replacement for logind in this scenario is possible (it's only being used as a simple message-passer, after all) which doesn't require drinking all the world-encompassing systemd kool-aid.
Posted Sep 19, 2013 2:17 UTC (Thu)
by mathstuf (subscriber, #69389)
[Link] (4 responses)
You could resurrect ConsoleKit and port the patches going into systemd-logind to it.
Posted Sep 19, 2013 7:45 UTC (Thu)
by Jonno (subscriber, #49613)
[Link] (3 responses)
> You could resurrect ConsoleKit and port the patches going into systemd-logind to it.
Also, running logind does not require running, or even installing, systemd (though you can't build one without building the other). An upstart/logind or sysvinit/logind setup would require slightly more configuration than a systemd/logind setup, but really no more (but of course different) configuration compared to an upstart/ConsoleKit or sysvinit/ConsoleKit setup, so not out of reach of the distro packagers.
Posted Sep 19, 2013 13:23 UTC (Thu)
by ABCD (subscriber, #53650)
[Link] (2 responses)
Posted Sep 23, 2013 7:08 UTC (Mon)
by kugel (subscriber, #70540)
[Link] (1 responses)
Posted Sep 23, 2013 16:12 UTC (Mon)
by mathstuf (subscriber, #69389)
[Link]
Posted Sep 17, 2013 19:35 UTC (Tue)
by pranith (subscriber, #53092)
[Link]
https://plus.google.com/102150693225130002912/posts/9Gjr5...
Posted Sep 26, 2013 21:08 UTC (Thu)
by heijo (guest, #88363)
[Link] (3 responses)
Lots of things will now malfunction in random ways under OOM conditions (since, of course, syscall return values are almost never checked).
How did that crap get in?!?
Posted Sep 26, 2013 21:39 UTC (Thu)
by dlang (guest, #313)
[Link] (2 responses)
remember that most systems have the sane setting of using CoW for memory, so they don't get errors when the memory is allocated, but instead sometime later when something dirties ram.
I call this the sane setting, because disabling overcommit and requiring that your system not do the CoW trick ends up wasting so much of your ram that you end up with far more failures, and the vast majority of code doesn't check for errors even in those cases.
Posted Sep 29, 2013 9:51 UTC (Sun)
by kleptog (subscriber, #1183)
[Link] (1 responses)
Posted Sep 29, 2013 22:09 UTC (Sun)
by dlang (guest, #313)
[Link]
do they really work better? or is it just theory that they work better?
If overcommit is enabled, the out of memory error isn't that likely to happen when memory is allocated, or a process forks. It's going to happen when memory is used (a variable changed, etc)
but if you turn off overcommit, you either need such a ridiculously large amount of swap that your system will be essentially dead from swapping long before you hit OOM, or you end up being unable to really use all your memory because large chunks of it are reserved for the 'just in case' situation that every CoW page will get split that never happens.
The end of the 3.12 merge window
It says it saves space by not needing the mbr, but doesn't this mean that the partition table is moved somewhere else instead, since the bootloader needs to read it and generate the kernel command line anyway?
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The evdev input layer has gained a new EVIOCREVOKE ioctl() command that revokes all access to a given file descriptor
i.e. revoke() for input fds, just what the X people have been asking for for ages for non-root X server support but that never got in? Did it only get in because it was an (ew) ioctl(), rather than a new syscall like the BSDs use?
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window
The end of the 3.12 merge window