Линус собрался в поездку и решил не откладывать релиз ядра 3.12: «I was vacillating whether to do an rc8 or just cut the final 3.12, but since the biggest reason to *not* do a final release was not so much the state of the code, as simply the fact that I'll be traveling with very bad internet connection next week, I didn't really want to delay the release». Он объясняет это отсутствием высокоскоростного интернета в ближайшее время. Ядро 3.12 уже доступно для скачивания на сайте www.kernel.org.
Одновременно объявлено о начале работы над ядром 3.13, и раскрыты некоторые подробности относительно ядра 4.0, планируемого к выпуску сразу за 3.19. По мнению Линуса, большая нумерация неудобна и вслед за 3.19 лучше перейти к версии 4.0: «I would actually prefer to not go into the twenties, so I can see it happening in a year or so, and we'll have 4.0 follow 3.19 or something like that». При этом ядро 4.0 должно выйти примерно через год и содержать только исправления ошибок и никаких новшеств или функциональных изменений. Таким образом, ядро 4.0 станет дополнительным стабилизирующим этапом, подводящим итог развития ветки 3.x.
В ядро 3.12 принято 10.4 тысяч исправлений от 1259 разработчиков. Примерно 46% всех изменений связаны с драйверами устройств, 20% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% — файловыми системами и 4% — c внутренними подсистемами ядра. По количеству внесённых изменений на первом месте Intel — 9.8%, затем Linaro — 7%, RH — 6.7%, Samsung — 4.7% и IBM — 3.7%, доля Canonical как всегда невелика. Вкратце об основных новшествах:
- произведена стабилизация поддержки клиента кластерной файловой системы Lustre;
- в файловую систему Btrfs добавлена начальная поддержка offline-режима дедупликации блоков данных;
- в ext3 добавлена поддержка опции монтирования «journal_path=», позволяющей указать местоположение внешнего журнала;
- для ext4 реализован метод агрессивного кэширования экстентов с использованием дерева состояния экстентов;
- в XFS обеспечена поддержка пространств имён (namespaces);
- поддержка многопоточности в реализации программного RAID5;
- для DM (device mapper) подготовлен модуль для отслеживания статистики по активности ввода/вывода для диапазона блоков на DM-устройстве;
- в подсистему ATA добавлена поддержка новых SSD-накопителей, поддерживающих обработку очереди TRIM-операций;
- в разрабатываемую Samsung F2FS (высокопроизводительную файловую систему для Flash-накопителей) добавлена поддержка sysfs, возможность inline-хранения атрибутов xattrs, проведена оптимизация производительности;
- для файловой системы HFS+ появилась поддержка POSIX ACL;
- в подсистему evdev, работающей с устройствами ввода, добавлен новый ioctl-вызов EVIOCREVOKE, позволяющий отозвать доступ к указанному файловому дескриптору;
- добавлен механизм паравиртуализированных блокировок (ticket spinlocks), увеличивающих эффективность блокировок в виртуальных окружениях;
- в подсистему netfilter добавлена новая цель «SYNPROXY», симулирующая установку соединения на одной стороне межсетевого экрана до непосредственного фактического соединения на другой стороне;
- в TCP-стек добавлена поддержка регулирования размера TSO (TCP segmentation offloading), что помогает исключить пульсацию TCP-трафика TCP при использовании разгрузки операций с сегментацией TCP;
- в сетевой стек добавлен планировщик FQ (Fair Queuing), обеспечивающий дисциплину справедливого управления очередью для проходящего через систему транзитного трафика;
- в подсистеме прямого рендеринге реализована технология Render Nodes, подразумевающая разделение монолитных устройств /dev/dri/card{num} на две категории: Rendering Nodes (/dev/dri/renderD{num}), отвечающие за аппаратное ускорение рендеринга и обсчет вычислительных заданий GPGPU, и ModeSetting Nodes (/dev/dri/modeset{num}), обеспечивающие переключение видеорежимов и управление экраном;
- удалена поддержка интерфейса /proc/acpi/event, который уже длительное время отмечен как устаревший и не рекомендован для использования;
- в состав принят патч, определяющий факт полного бездействия системы (процессоры при этом могут не находиться в состоянии «idle» и выполнять код приложения) и отключающий в этом случае прерывания от таймера;
- менеджеры управления видеопамятью GEM и TTM переведены на использование унифицированной системы для управления виртуальными областями памяти, что позволило исключить дублирование кода;
- в подсистеме управления памятью появилась возможность миграции больших страниц памяти (huge pages) между узлами NUMA;
- интегрирован улучшенный алгоритм OOM (out-of-memory), более корректно обрабатывающий состояния нехватки памяти в системе, но способный привести к появлению ранее не фиксированных ошибок категории «out of memory» в пользовательских приложениях;
- добавлен DRM-драйвер (Direct Rendering Manager) msm для графической подсистемы чипов Qualcomm Snapdragon с GPU Adreno A2xx/A3xx, разработанный в рамках проекта Freedreno;
- в DRM-драйвере Nouveau обеспечена корректная поддержка управления питанием, в том числе добавлена возможности динамического включения и отключения питания для вторичных GPU на ноутбуках, поддерживающих технологию NVIDIA Optimus;
- в DRM-драйвере Radeon появилась поддержка динамического управления питанием (DPM, Dynamic Power Management) и ASPM (Active State Power Management) для GPU HD 8000 (Sea Islands); добавлена поддержка APU AMD Berlin, первого процессора на базе архитектуры HSA (Heterogeneous System Architecture) с графическим ядром GCN (Graphics Core Next);
- в DRM-драйвере для GPU Intel улучшена поддержка процессоров семейства Haswell с графическим ядром Iris Pro 5200;
- поддержка беспроводных карт на базе чипа Realtek RTL8188EU и Ethernet-адаптеров Intel i40e, MOXA ART (RTL8201CP), Solarflare SFC9100 и CoreChip-sz SR9700;
- поддержка USB-контроллеров Faraday FOTG210 OTG и USB-модемов GCT GDM724x LTE;
- в Video4Linux добавлена поддержка чипов обработки видео Renesas VSP1, устройств видеоввода Renesas R-Car, Mirics MSi3101, универсальных программируемых приёмопередатчиков Mirics MSi3101, USB-камер Syntek STK1135 USB, декодировщиков видео Analog Devices ADV7842 и кодировщиков видео Analog Devices ADV7511.