Тихо и незаметно был представлен финальный релиз Linux Kernel 4.5. С 25 января 2016 года вышло около 7 RC билдов, последний — 6 марта этого года. В текущей версии принято около 13 тысяч исправлений от 1500+ разработчиков. Общий размер патча составляет 70 Мб, причем изменения затронули 11589 файлов, добавлено более 1 миллиона строк кода. Примерно половина (45%) всех изменений связаны с драйверами устройств.

Среди прочих изменений стоит выделить добавление поддержки технологии управления питанием AMD PowerPlay, что повышает производительность AMDGPU open-source драйвера для графических адаптеров Radeon, улучшение распределения свободного пространства в Btrfs, реализацию квот проектов в ext4, поддержку сборки с включением детектора неопределённого поведения, поддержку прямой коррекции ошибок в dm-verity, стабилизацию новой унифицированной иерархии cgroup, подключение BPF-балансировщиков для UDP-сокетов в режиме SO_REUSEPORT, увеличение масштабируемости epoll для многопоточных приложений.

Еще одно важное изменение — это новый системный вызов copy_file_range. Он позволяет значительно ускорить выполнение операций копирования данных из исходного файла в другой файл, причем операция выполняется на стороне ядра. Здесь не требуется предварительнон чтение данных в память процесса в пространстве пользователя. Правда, пользователю ускорение может быть не слишком заметно, поскольку тратится время на чтение/запись данных для накопителя. Иная ситуация будет работе с разделами NFS.

С полным списком важных обновлений и изменений можно ознакомиться здесь (англ) или здесь (русский).

Исходники новой версии ядра можно скачать с kernel.org.

Комментарии (38)


  1. alexkuzko
    15.03.2016 19:14
    +2

    Радует развитие btrfs. И то что наконец начали смотреть в сторону производительности подсистемы ввода-вывода.


    1. maxzhurkin
      15.03.2016 19:33

      Угу, совсем недавно включили поддержку DMA по умолчанию и вот сегодня ещё и это.


    1. sanslar
      15.03.2016 20:05

      Сижу на btrfs уже год. Очень доволен.


      1. Meklon
        15.03.2016 20:21
        +2

        А в чем плюс для обычного пользователя? Я на ext4, снапшотов не использую.


        1. alexkuzko
          15.03.2016 20:39
          +1

          Может для обычного и нет ;) А я вот использую снапшоты для того чтобы rsnapshot использовал встроенные снапшопты вместо обычного копирования и хардлинков. Получается и чуть быстрее и что важнее, позволяет полноценно подключать требуемый снапшот либо работать с ним напрямую как с папкой.

          Обычно юзерам показывают такой кейс: делают снапшот системы перед операцией apt-get update && apt-get -y dist-upgrade и потом при перезагрузке подключают сохраненный снапшот ;) К слову, весьма удобно. Снапшот может быть read-only или read-write.

          Из минусов — их необходимо изредка чистить, а то когда-то давно сохраненный файл и потом удаленный в "основной" системе так и будет занимать место.


        1. sanslar
          15.03.2016 20:41

          Ну не буду слагать сказки про радужные тесты производительности. Плюсов я как бы и не вижу, но лично стал использовать btrfs по той причине что у него есть оптимизация для работы с SSD.
          Даже учитывая то что сейчас SSD уже не такие убиваемые как ранние от большого количества перезаписей, все же хочется чтобы система была на подходящей файловой системе. Ext4 допустим, меня начал пугать тем что он не имеет никакой оптимизации под SSD.
          Да и мне как для обычного пользователя не хочется задумываться над тем что мне после установке нужно что-то там настраивать (как приходилось ранее с Ext4) чтобы система не запорола мне SSD, просто выбрал Btrfs и всё, пользуешься.
          По скорости Btrfs уже не чуть не уступает Ext4.


          1. Hellsy22
            15.03.2016 20:55
            +1

            Вообще-то уступает. Удаление почти в 10 раз медленнее. Для файлопомойки это критично — я как-то удалял сериал на 70 гигабайт, так btrfs зависла почти на минуту. Это было последней каплей и я вернул ext4.


            1. sanslar
              15.03.2016 21:01

              А версия ядра какая?


              1. Hellsy22
                15.03.2016 21:04

                3.17 — 4.3

                Сейчас на 4.4 для rsnapshot использую btrfs и тоже на удалении старых образов жутко мучает диск.


                1. sanslar
                  15.03.2016 21:07

                  Понятно. Я просто удалял максимум 10гб файлы. Если бы и заметил тормоз подумал бы что виновато железо, ибо оно далеко не топ.


                  1. Hellsy22
                    15.03.2016 21:20

                    Вот тут слегка устаревшее, но дающее представление сравнение.

                    Еще нашел интересное сравнение прироста производительности


          1. foxin
            16.03.2016 01:34
            +1

            А можно какой-то пруф, что ext4 убивает ssd?


          1. Charg
            16.03.2016 10:53
            +1

            Да и мне как для обычного пользователя не хочется задумываться над тем что мне после установке нужно что-то там настраивать

            Вот и настало время когда подобные фразы стали мелькать в среде линуксоидов :)


        1. Temtaime
          15.03.2016 22:27

          Онлайн дефрагментация, прозрачное сжатие. По производительности всё-таки немного быстрее ext4.


    1. Des77
      18.03.2016 20:54

      А как насчет новых ошибок в этом ядре?


  1. Hellsy22
    15.03.2016 20:54
    +4

    Приключения в Gentoo.

    4.0 Система висла на старте, не стал заморачиваться, вернулся на 3.19.3
    4.1 — 4.2 — все чудесно работало. Скучно.
    4.3 При завершении работы финальный ремаунт начал насмерть вешать систему.
    4.4 Внезапно система стала стартовать до того, как добавлялись диски хардварного рейда (mtp2sas) — пришлось добавить sleep 10 в localmount

    С нетерпением жду 4.5, чтобы ознакомиться с новыми загадочными квестами и неисправимыми улучшениями.


    1. Souber
      15.03.2016 23:37

      всё норм, даже проприетарные дровишки от nvidia встали) Linux localhost 4.5.0-gentoo #1 SMP PREEMPT Tue Mar 15 21:40:22 MSK 2016 x86_64 Intel® Core(TM) i5 CPU 750 @ 2.67GHz GenuineIntel GNU/Linux


      1. frol
        16.03.2016 11:44
        +1

        Можете, пожалуйста, проверить вот эту регрессию на своей машине — https://bugzilla.kernel.org/show_bug.cgi?id=114551 ?


      1. Hellsy22
        16.03.2016 15:20

        Ага, вижу что основные в wireless девайсы были перегруппированы. Проблема с рейдом так и не решилась. В остальном все хорошо.


    1. frol
      16.03.2016 11:43
      +1

      4.4.4+ и 4.5+ — с каждым сном и пробуждением частота ЦПУ падает в 1.25 раза (после десятка слипов можно дойти до 300МГц) — https://bugzilla.kernel.org/show_bug.cgi?id=114551

      Можете протестировать, пожалуйста такой эффект у себя?


      1. Hellsy22
        16.03.2016 16:02
        +1

        Результаты тестов
        Нагрузка дается так: # perl -e 'fork; fork; fork; fork; $s++ for (1..100000000);'
        Данные беру так: # grep. /sys/devices/system/cpu/cpu3/cpufreq/*
        До сна, 100% нагрузки.

        /sys/devices/system/cpu/cpu3/cpufreq/affected_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq:3600000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_max_freq:5700000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_min_freq:1200000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_transition_latency:4294967295
        /sys/devices/system/cpu/cpu3/cpufreq/related_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_available_governors:performance powersave
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq:3600000
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_pstate
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:performance
        
        Некоторое время спустя:
        /sys/devices/system/cpu/cpu3/cpufreq/affected_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq:1931750
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_max_freq:5700000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_min_freq:1200000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_transition_latency:4294967295
        /sys/devices/system/cpu/cpu3/cpufreq/related_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_available_governors:performance powersave
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq:1931750
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_pstate
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:performance
        
        Сделал два pm-suspend подряд:
        /sys/devices/system/cpu/cpu3/cpufreq/affected_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq:1199875 (!)
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_max_freq:5700000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_min_freq:1200000 (!!)
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_transition_latency:4294967295
        /sys/devices/system/cpu/cpu3/cpufreq/related_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_available_governors:performance powersave
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq:1199875
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_pstate
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:performance
        
        Под 100% нагрузкой частота вернулась к максимальной:
        /sys/devices/system/cpu/cpu3/cpufreq/affected_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq:3600000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_max_freq:5700000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_min_freq:1200000
        /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_transition_latency:4294967295
        /sys/devices/system/cpu/cpu3/cpufreq/related_cpus:3
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_available_governors:performance powersave
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq:3600000
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_driver:intel_pstate
        /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:performance


        1. frol
          16.03.2016 16:53
          +1

          Спасибо! Похоже, что вас этот баг не коснулся, пока что почему-то воспроизводится только на ноутбуках Lenovo...


          1. MasMaX
            17.03.2016 15:43

            У меня комп с процом AMD Phenom II X6 1045T. 2.7ГГц. Ваш тест под нагрузкой показывает честные 2700000. Перезагрузок уже было много (комп не сервер). Спящий и ждущие режимы тоже бывают.

            Ядро 4.4.5-040405-generic.


            1. frol
              17.03.2016 16:10
              +1

              Выяснили, что регрессия в модуле thermal (rmmod thermal && modprobe thermal приводит к падению частоты). Вроде бы авторы патча уже изучают проблему, так что может быть скоро порешится.


    1. blind_oracle
      16.03.2016 11:57

      Плавно прошёл все эти версии на дебияне на разных серверах и медиацентрах — никаких проблем абсолютно не заметил. У вас что-то с ОС, а не с ядром.


  1. hzs
    15.03.2016 21:50
    +1

    Поддержка устройств это хорошо.
    У жены ноут Lenovo, выпущенный 2 года назад, был без операционки, ни один тестируемый дистрибутив не умеет выключать у него питание или перезагружать его, было перепробовано дофига опций ядра для управления питанием, фиг бы там.
    Дружно вспоминаем надпись, «Теперь питание компьютера можно отключить», правда кнопку жать приходится 5 секунд.
    Вот думаю, может ради эксперимента винду на него накатить и посмотреть как оно будет.


    1. MnogoBukv
      16.03.2016 00:44
      +5

      Будет тупо работать. Без перекомпиляций ядра и btrfs.


    1. NetBUG
      16.03.2016 00:47
      +1

      А что за модель и версия BIOS?


      1. hzs
        16.03.2016 08:06

        Lenovo B50-30, биос: 9CCN26WW(V2.04).
        Обновить можно только из винды, ни с загрузочной флешки, ни с дискеты и внешнего флопика и это с учётом того, что ноут идёт без ОСи.
        Я даже из вайна пробовал :0))
        Естественно ничего не вышло.
        Сейчас забекаплю хомяк, попробую винду XP поставить, посмотрю получится ли, скорее всего нет, дрова на контроллер винта подкидывать не охота, ну и семёрку попробую, один раз как-то ставил уже. Из семёрки попробую обновить биос, хуже в любом случае не будет.


        1. Taragolis
          16.03.2016 10:30

          На просторах интернета выгуглилось два совета для вашего ноута: раз и два

          У меня в свое время была проблема с Ubuntu 12.04 и ядром 3.13.0-32. При выключении система впадала в ступор при отключении сетевых интерфейсов, в моем случае вылечилось добавлением stop on runlevel [06] в /etc/init/network-manager.conf


          1. hzs
            16.03.2016 10:41

            По варианту раз, этой опции в биосе нет, поэтому и решил попробовать обновить биос, по варианту два, перепроверял все опции GRUB_CMDLINE_LINUX_DEFAULT связанные с управлением питания. Бесполезно.
            Пробовал сегодня XP для прикола воткнуть, синий экран при установке, крашится на acpi.sys.
            Сейчас только что семёрка установилась, пока коммент писал, решил попробовать выключить ноут, ноут выключился секунды за 3-4.
            Неприятный сюрприз от линухов. Надеялся, может с железом что, но если семёрка выключает, значит отруб питания работает.
            Буду биос шить сейчас.


            1. Taragolis
              16.03.2016 10:59

              Кстати баг был заведен на https://bugzilla.kernel.org/show_bug.cgi?id=106801, но сейчас он закрыт.


        1. hzs
          16.03.2016 11:42

          Обновил биос до версии 9ccn33ww (2.11).
          Запускаю семёрку, которая работала на старом биосе, вылетает синий экран: Биос в этой системе не полностью совместим с ACPI, свяжитесь с разработчиком и обновите биос.
          То есть новый биос работает ещё хуже 0_О
          Буду пробовать Кубунту, Минт, может заработает что.


          1. hzs
            16.03.2016 12:16
            +1

            Kubuntu 14.04 LTS, выключение заработало после обновления биоса.


    1. Halt
      16.03.2016 07:44

      У меня такая же история на ноуте Asus X50N, которому уже лет 8, только проблема не с выключением, а с перезагрузкой.

      Какое-то замшелое ядро тогдашних времен успешно его перегружало. А все что новее — просто вешает систему в горячем цикле. Такое ощущение, что ACPI команда проходит, но без эффекта.


      1. hzs
        16.03.2016 08:13

        Вот да, что-то похожее.
        На форумах пишут, что не всегда успевают отмонтироваться разделы и из-за этого происходит висяк.


    1. juffinhalli
      16.03.2016 12:12

      Владею сабжем (intel). Не мог перезагружаться из linux, я обновил биос и проблема ушла. Пользуюсь mint 17 xfce x86 (3.13 kernel). Проблем нет.


  1. waul
    16.03.2016 17:26

    Еще бы проблему с «SRST failed» решили. Вообще было бы хорошо!