Примечания к релизам

Примечания к релизам HFTKernel 7.2.x.

Просмотрите линейку ядер 7.2.x от новых к старым: изменения основного проекта, наиболее важные для предсказуемого выполнения на CPU, стабильной сети, точного учёта времени, виртуализации, поведения памяти и измеримых хвостов latency.

Публичная история изменений

Примечания к релизам

Каждая запись посвящена изменениям основного проекта, поддерживающим главные цели HFTKernel: минимальный jitter, контролируемую tail latency, стабильную передачу данных, точный учёт времени и измеримое поведение под давлением.

HFTKernel 7.2.11

Более надёжная сеть zero-copy, упорядоченные очереди NIC и более надёжное оборудование времени

Последняя запись серии 7.2.x

Базовая версия основного проекта: Linux 7.2.11. Изменения с Linux 7.2.10. Дата релиза: 15 октября 2026 г.

Более надёжное владение буферами mlx5 AF_XDP

HFTKernel 7.2.11 повышает надёжность приёма AF_XDP zero-copy на адаптерах NVIDIA mlx5.

Для очередей приёма striding повторные попытки пополнения MPWQE теперь сохраняют явное состояние владения каждым буфером XSK. При временной ошибке выделения поздний повтор NAPI больше не освобождает тот же кадр UMEM через устаревший указатель.

Путь повтора теперь идемпотентен:

  • каждый исходный буфер XSK освобождается один раз;
  • частично завершённые пополнения сохраняют состояние владения;
  • успешное выделение заменяет буфер и очищает отметку освобождения;
  • последующие повторы работают только с буферами, которые ещё требуют замены.

20-секундный нагрузочный тест AF_XDP основного проекта воспроизвёл 1,575,262 ошибок выделения буферов без недопустимых дескрипторов, ошибок WQE или предупреждений ядра.

Устаревшая циклическая очередь приёма получает ту же защиту владения.

В соответствующем тесте основного проекта подавался UDP-трафик с пакетами 64 байта на скорости 12 Mpps. Обновлённый путь обработал 356,904,225 пакетов за 30 секунд, включая 571,405 событий xdp_rx_ring_full, без ошибок владения или данных.

Для HFTKernel это повышает надёжность высокоскоростного приёма рыночных данных, обработчиков потоков AF_XDP, систем распределения пакетов и захвата zero-copy под давлением на кольцо приёма.

Упорядоченные уведомления TX doorbell Intel ICE

Драйвер Intel ICE снова использует упорядоченные записи MMIO при публикации TX doorbell очередей.

Сначала драйвер обновляет учёт Dynamic Queue Limits в обычной памяти, затем сообщает NIC о новых дескрипторах. Упорядоченная запись гарантирует глобальную видимость учёта очереди до завершения устройством переданной работы.

Это особенно важно на ARM64, где writel_relaxed() не обеспечивает нужный порядок между обычной памятью и MMIO.

Изменение проверено с адаптером Intel E810-XXV под длительной сетевой нагрузкой. Упорядоченный путь сохранял синхронизацию завершений NIC и программного учёта очередей.

Для HFTKernel это усиливает устойчивую обработку TX на совместимом оборудовании Intel и сохраняет согласованную связь между отправкой дескрипторов, аппаратным выполнением и учётом завершений.

Корректный порядок завершений mlx5 ICOSQ

Драйвер mlx5 теперь обновляет doorbell очереди завершений перед публикацией счётчика потребителя ICOSQ.

dma_wmb() сохраняет порядок двух операций:

  1. Пространство CQ освобождается для устройства.
  2. Программный счётчик потребителя продвигается.
  3. Устройство видит обновлённую ёмкость завершений до подачи дополнительной внутренней управляющей работы.

Это сохраняет жизненный цикл очереди завершений и согласует обработку внутренней очереди отправки mlx5 между сервером и NIC.

Более надёжный жизненный цикл Google GVE AF_XDP

Google Virtual Ethernet DQO получает согласованный набор улучшений жизненного цикла AF_XDP zero-copy.

Буферы XSK теперь освобождаются, когда дескриптор завершения RX сообщает об ошибке. Буферы, переданные NIC, также возвращаются при остановке или сбросе колец RX.

Завершение работы пула XSK теперь использует корректный вариант блокировки NAPI, когда операции управления очередями уже удерживают блокировку netdevice. Это позволяет перенастраивать очереди без повторного захвата той же блокировки.

Изменения остановки очередей и пула XSK покрывают промышленные сценарии, наблюдавшиеся в Google Cloud.

Для HFTKernel Cloud это поддерживает корректную настройку, перенастройку, перезапуск и удаление AF_XDP на интерфейсах GVE DQO.

Более точная оценка задержки PCIe в OCP PTP

Драйвер OCP PTP теперь использует KTIME_MAX как начальную верхнюю границу оценки задержки PCIe.

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

Это улучшает компенсацию задержки пути PCIe для поддерживаемых карт времени OCP и усиливает связь между окном временных меток сервера и чтением аппаратных часов.

Для HFTKernel это даёт более надёжную аппаратную основу времени для синхронизации PTP, сопоставления временных меток и измерения latency.

Более согласованное состояние cpuset при изменениях жизненного цикла CPU

HFTKernel 7.2.11 включает несколько исправлений cpuset, важных для автоматизированного размещения CPU.

При отключении CPU guarantee_active_cpus() теперь учитывает интервал между изменением активной маски CPU и распространением обновлённых эффективных масок cpuset.

Режим cgroup оценивается под cpuset_mutex, сохраняя синхронизацию состояния иерархии и обновлений масок.

Проверка режима v2 также использует отдельный стабильный флаг вместо чтения потенциально меняющегося указателя корня cgroup.

Вместе эти изменения укрепляют состояние cpuset при:

  • горячем подключении CPU;
  • монтировании и перепривязке cgroup;
  • изменениях жизненного цикла сервисов;
  • автоматизированном управлении разделами CPU.

Для HFTKernel это поддерживает надёжное разделение торговых ядер, сетевых ядер, служебных CPU и сервисных нагрузок.

Ограниченная обработка дампа потоков Open vSwitch

Дампы потоков Open vSwitch через netlink теперь держат нижние половины отключёнными на протяжении каждого ограниченного обратного вызова дампа.

Ранее повторное локальное включение нижних половин могло заставить поток дампа самостоятельно обрабатывать накопившиеся softIRQ. На занятом обработкой пакетов CPU этот остаток мог непрерывно пополняться.

Обновлённый путь ограничивает обратный вызов записями потоков, помещёнными в текущий ответ netlink. Обработка пакетных softIRQ остаётся в обычных путях сетевого выполнения, а не поглощается управляющим потоком дампа.

Для HFTKernel Cloud и виртуализированных сетевых профилей это создаёт более чёткую границу между нагрузкой передачи данных и диагностическими операциями управления.

Предсказуемая настройка колец io_uring

Кольца SQ, CQ и предоставленных буферов больше не учитываются в RLIMIT_MEMLOCK, восстанавливая прежнюю семантику настройки.

Это избавляет обычные непривилегированные сервисы от искусственного ограничения числа колец из-за памяти, уже контролируемой жизненным циклом io_uring и memory-cgroup.

Пример воспроизведения основного проекта с кольцами на 4,096 записей вернулся от 21 кольца к ожидаемым 64 при стандартном лимите memlock 8 MiB.

Для составных областей памяти io_uring, которые действительно учитываются, учёт теперь включает каждую выделенную страницу, в том числе хвостовые страницы округления до степени двойки за пределами запрошенной логической области.

Если составное выделение превышает лимит, io_uring может перейти к массовому выделению точного размера.

Это сочетание обеспечивает:

  • предсказуемое создание SQ и CQ;
  • предсказуемое создание колец предоставленных буферов;
  • точный учёт закреплённых составных выделений;
  • лучшее использование памяти вблизи настроенных лимитов.

Корректный учёт заблокированной повторно отображённой памяти

MREMAP_DONTUNMAP теперь сохраняет согласованный учёт locked_vm ещё в двух случаях.

Самообъединяющиеся заблокированные анонимные VMA остаются разделёнными, чтобы источник и назначение сохраняли правильное состояние блокировки.

Частичные remap заблокированных VMA разделяют исходный диапазон до перемещения таблиц страниц, согласуя учёт страниц, оставшихся в источнике, и страниц, представленных назначением.

Для HFTKernel это улучшает учёт жизненного цикла памяти приложений, использующих заблокированные рабочие наборы вместе со сложными операциями remap.

Более надёжный разбор AF_PACKET, Virtio, VLAN и GSO

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

Пакеты GSO с тегами VLAN, отправленные через AF_PACKET SOCK_RAW, разбираются после применения метаданных Virtio. Это сохраняет правильные позиции сетевого и транспортного заголовков и исключает повторный разбор.

Для пакетов GSO с Virtio всегда выполняется разбор потока, когда метаданные аппаратного расчёта контрольных сумм не задают позицию транспорта. Это гарантирует:

  • проверку сетевого протокола;
  • наличие транспортного заголовка в линейных данных;
  • инициализацию транспортного смещения;
  • правильную обработку опций IPv4 и расширенных заголовков IPv6.

Смещения разбора потока также корректно обрабатываются для буферов пакетов больше 64 KiB, включая BIG TCP и большие кадры AF_PACKET PACKET_VNET_HDR. Путь BPF flow-dissector получает такую же защиту.

Для HFTKernel это повышает надёжность захвата и воспроизведения пакетов, TUN/TAP, Virtio, классификации BPF и виртуальных шлюзов.

Более надёжный приём TCP zero-copy с памятью устройств

Приём TCP zero-copy теперь распознаёт фрагменты net_iov, не основанные на страницах, перед запросом подсказок отображения страниц.

Это покрывает память устройств на основе DMA-BUF и типы net_iov io_uring.

Читаемые данные на страницах по-прежнему можно нормально копировать или отображать. Если следующий фрагмент принадлежит памяти устройства, ядро возвращает правильную подсказку пропуска, а не трактует его как обычную страницу.

Это улучшает взаимодействие приёма TCP zero-copy, памяти устройств, DMA-BUF и сетевых буферов io_uring.

Более безопасная конфигурация XDP и разделения заголовка/данных TCP

Сетевые устройства теперь распознают однобуферные программы XDP, подключённые через bpf_link, при решении о возможности включить разделение заголовка/данных TCP.

Тем самым ядро сохраняет совместимость подключённой программы XDP и размещения приёмных буферов NIC независимо от установки через устаревший путь или API BPF link.

Veth также правильно обновляет возможности передачи XDP партнёра после изменения GRO на отключённом интерфейсе, согласуя пути перенаправления контейнеров и пространств имён с активной конфигурацией партнёра.

Прямое отображение IOMMU для ресурсов MMIO

Ресурсы MMIO с DMA_ATTR_MMIO теперь обходят промежуточные буферы SWIOTLB.

MMIO нельзя копировать через промежуточный буфер. Обновлённый путь сразу переходит к отображению IOMMU IOVA, включая ресурсы без выравнивания по странице.

Для HFTKernel Hardware это повышает надёжность отображения ресурсов устройств и ускорителей за IOMMU и убирает несовместимый промежуточный путь из настройки MMIO.

Защита инвалидации TLB AMD

HFTKernel 7.2.11 обнаруживает AMD TLBI Erratum #1718.

На затронутых процессорах последовательность INVLPGB и TLBSYNC может не инвалидировать нужную запись TLB. Если обновлённый микрокод недоступен, ядро активирует программный обход проблемы.

Это повышает корректность переходов адресного пространства и инвалидации TLB в поддерживаемых системах AMD.

Более надёжные TX и восстановление PCIe Broadcom NetXtreme-E

Драйвер Broadcom bnxt_en теперь отображает полную дополненную длину коротких пакетов TX.

Это согласует длину DMA с размером пакета, предъявляемым оборудованию, включая небольшие управляющие кадры через интерфейсы VLAN и macvlan на поддерживаемых адаптерах NetXtreme-E.

Восстановление PCIe также последовательно восстанавливает конфигурацию BAR для фатальных и нефатальных путей сброса. Видимость MMIO устройства, bus mastering и декодирование памяти восстанавливаются в контролируемом порядке после сбоя.

Включённые инструменты измерения

HFTKernel 7.2.11 включает:

cpujitter

Для пауз выполнения CPU, вмешательства планировщика, активности IRQ и softIRQ и хвостов latency.

memjitter

Для выделения, first-touch, заблокированных рабочих наборов и поведения при давлении на память.

irqjitter

Для анализа активности IRQ и softIRQ.

Эти инструменты связывают изменения ядра с поведением полного стека приложений.

Результат HFTKernel 7.2.11

HFTKernel 7.2.11 укрепляет операционную систему вокруг приложений, чувствительных к latency:

  • повторы mlx5 AF_XDP сохраняют владение UMEM при давлении на кольцо и выделение;
  • Google GVE согласованно управляет буферами AF_XDP при ошибках и событиях жизненного цикла очередей;
  • Intel ICE публикует состояние очереди TX до уведомления NIC через doorbell;
  • mlx5 упорядочивает обновление пространства завершений с продвижением внутренней очереди отправки;
  • карты OCP PTP сохраняют правильную компенсацию задержки PCIe;
  • состояние cpuset остаётся согласованным при изменениях жизненного цикла CPU и cgroup;
  • Open vSwitch отделяет дамп потоков от неограниченного накопления softIRQ;
  • кольца io_uring сохраняют предсказуемую настройку и точный учёт памяти;
  • пути AF_PACKET, Virtio, GSO, BIG TCP, XDP и TCP zero-copy получают более надёжную обработку буферов и заголовков;
  • инвалидация TLB AMD и отображение MMIO IOMMU получают аппаратно-зависимую защиту.

Вместе эти изменения дают более предсказуемую и измеримую основу для HFT, рыночных данных, шлюзов исполнения, облачной сети, обработки пакетов и инфраструктуры с аппаратными временными метками.

HFTKernel 7.2.10

Более быстрые завершения таймеров, лучшая локальность LLC и более надёжная сеть zero-copy

Базовая версия основного проекта: Linux 7.2.10. Изменения с Linux 7.2.9. Дата релиза: 11 октября 2026 г.

Более быстрые завершения таймеров высокого разрешения

Путь возврата таймера высокого разрешения теперь очищает TIF_HRTIMER_REARM правильной битовой маской.

Это сохраняет видимость работы задачи, поставленной из обратного вызова hrtimer, для цикла возврата в пользовательское пространство. Приложения, опрашивающие кольцо завершений io_uring, получают завершения таймеров своевременно, не ожидая следующего системного вызова, прерывания или перепланирования.

В конфигурации QEMU основного проекта с 2 vCPU и HZ=1000 медианная задержка завершения тайм-аута улучшилась с 30 ms до 70 µs.

Для HFTKernel это повышает надёжность автоматов состояний на таймерах, обработки тайм-аутов, асинхронного ввода-вывода, контроля соединений и других управляющих путей, чувствительных к latency.

Более надёжное планирование с учётом кеша

Linux 7.2.10 включает согласованный набор улучшений планировщика с учётом кеша.

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

Доступ к кеш-группам в горячем пути планировщика теперь идёт прямо через task_struct, с отдельной ссылкой для каждой задачи. Это отделяет время жизни кеш-групп планировщика от замены mm_struct при fork, exec и exit.

Активная балансировка сохраняет политику migrate_llc_task, выбирая задачу, которая действительно предпочитает целевой LLC, вместо перемещения другой задачи из её предпочтительного кеш-домена.

Учёт готовых к выполнению задач также следует точному набору задач, допустимых для миграции, включая переходы отложенного удаления из очереди.

На асимметричных и гибридных процессорах вычислительная мощность получает приоритет, если перенос в предпочтительный LLC поместит задачу на CPU, слишком слабый для нагрузки.

HFTKernel продолжает использовать явную привязку критичных торговых потоков. Эти улучшения планировщика усиливают вспомогательные сервисы, мониторинг, управляющие процессы и другие нагрузки под управлением планировщика.

Более детерминированный приём io_uring zero-copy

Многократный RECV_ZC теперь фиксирует остановку прохода приёма из-за исчерпания локального ресурса.

При частичном прогрессе запрос ставится в очередь повторно. Следующий проход продолжает обработку или возвращает явное завершение с ошибкой, позволяющее приложению повторно активировать операцию.

Это заменяет неявное состояние простоя детерминированным наблюдаемым переходом. Непрочитанные данные TCP больше не ждут несвязанного будущего события сокета для возобновления приёма.

Для HFTKernel это повышает надёжность приёма рыночных данных zero-copy, высокоскоростной обработки TCP и сетевых приложений io_uring.

Надёжные потоки временных меток TX io_uring

Многократные запросы SOCKET_URING_OP_TX_TIMESTAMP теперь заканчиваются видимым завершением ENOBUFS, если в очереди завершений нет места для следующей временной метки.

Конечный CQE достигает пользовательского пространства через путь переполнения. Метки, уже сохранённые в очереди ошибок сокета, доставляются при повторной активации запроса приложением.

Это даёт потребителям временных меток ясный жизненный цикл:

  1. Получить завершения с временными метками.
  2. Обнаружить заполнение очереди завершений.
  3. Опустошить очередь.
  4. Повторно активировать запрос.
  5. Продолжить с сохранёнными временными метками.

Результат: более явный и управляемый путь аппаратных временных меток передачи.

Более надёжная сеть Google GVE DQO

Драйвер Google Virtual Ethernet DQO теперь рассматривает gso_type как битовую маску при подготовке пакетов TSO.

Пакеты TSO из TUN/TAP, пакетных сокетов и виртуальных машин часто содержат флаги SKB_GSO_DODGY, SKB_GSO_TCP_ECN или SKB_GSO_TCP_FIXEDID. Теперь они принимаются, если поддерживается базовый тип сегментации TCP.

В тесте основного проекта с экземпляром GCE n4 DQO-QPL и гостем Cloud Hypervisor отправка 64 MB из гостя улучшилась с тайм-аута 60 секунд при примерно 0.9 MB/s до 0.19 секунды. Счётчик устройства tx_dropped после изменения оставался стабильным.

Это повышает надёжность вложенной виртуализации, облачных сетевых устройств, виртуальных шлюзов и гостевых нагрузок с Google GVE DQO.

Более точное состояние RTT TCP

TCP теперь обновляет TS.Recent, когда принятый более старый ACK также несёт новые данные.

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

Принимающая сторона теперь возвращает метку пакета, заполнившего разрыв приёма. Поэтому отправитель вычисляет RTT по текущему обмену, не включая длительный простой.

В сценарии основного проекта с 300 секундами простоя, контролируемым переупорядочением и повторной передачей сглаженный RTT отправителя изменился с 37.5 секунды до 15.5 ms.

Для HFTKernel это поддерживает более стабильное поведение постоянных соединений TCP, TLS, WebSocket, рыночных данных и исполнения.

Более чистое освобождение памяти через RCU

Аллокатор slab больше не пробуждает kswapd при выделении внутреннего хранилища из __kfree_rcu_sheaf().

kfree_rcu() может выполняться, когда планировщик удерживает pi_lock. Удаление __GFP_KSWAPD_RECLAIM из этого пути исключает пробуждение освобождения памяти, способное вернуться к той же блокировке планировщика.

Обновлённая обработка sheaf также лучше использует локальное запасное хранилище, когда активное ожидание недоступно.

Для HFTKernel это убирает ненужную фоновую работу из чувствительного к планировщику пути памяти и укрепляет пакетное освобождение RCU.

Более надёжное управление жизненным циклом futex

Изменение размера приватного хеша futex теперь публикует новый указатель хеша до записи связанного с ним состояния периода ожидания RCU.

Читатели предыдущего хеша остаются защищены до завершения правильного периода ожидания.

Это усиливает синхронизацию многопоточных приложений с мьютексами на futex, условными переменными и координацией во время выполнения.

Ограниченная очистка объектов BPF

Объекты памяти BPF, добавленные во время уже активного периода ожидания Tasks Trace RCU, теперь запускают следующий цикл очистки.

Объекты больше не остаются бессрочно в free_by_rcu_ttrace, а повторное создание и удаление карт больше не ведёт к неограниченному удержанию объектов или накоплению работников очистки.

Для HFTKernel это улучшает жизненный цикл средств наблюдаемости, трассировки, политик и сетевого инструментирования на основе BPF.

Более безопасные кольца TX AF_PACKET

AF_PACKET теперь останавливает блокирующую отправку PACKET_TX_RING до превышения накопленным положительным числом байт значения INT_MAX.

Оставшийся кадр ждёт следующего вызова отправки, сохраняя прогресс и корректный положительный результат, даже если пользовательское пространство непрерывно переиспользует завершённые слоты кольца.

Это повышает надёжность длительного воспроизведения пакетов, генерации трафика, сетевых испытаний и квалификации рыночных данных.

Более надёжное переиспользование page-pool

Массовое переиспользование page-pool обновляет статистику, пока блокировка производителя ещё защищает пул.

Последние сетевые буферы в работе и удаление пула остаются согласованными даже при включённом CONFIG_PAGE_POOL_STATS.

Это поддерживает надёжное высокоскоростное переиспользование сетевых буферов и достоверную наблюдаемость page-pool.

Улучшенная настройка аппаратных временных меток

Операции ethtool netlink TSCONFIG_GET и TSCONFIG_SET теперь достигают устройств, у которых аппаратные временные метки полностью предоставляет PHY.

Интерфейс netlink теперь согласован с установленным поведением ioctl для поставщиков временных меток на PHY.

Это повышает надёжность настройки и обнаружения аппаратных временных меток в поддерживаемых сетевых архитектурах.

Более корректное завершение временных меток mlx5 AF_XDP

Драйвер mlx5 теперь обрабатывает завершение дескриптора TX AF_XDP без CQE при удалении очереди.

Если CQE недоступен, вспомогательная функция меток возвращает нейтральный результат вместо разыменования недоступной записи завершения.

Это улучшает жизненный цикл очередей AF_XDP с временными метками TX и аппаратным расчётом контрольных сумм.

Наблюдаемость fprobe с меньшими расходами

Обработчики fprobe теперь проверяют, наблюдает ли RCU, перед работой в простое или расширенных состояниях покоя nohz_full.

Путь срабатывания probe использует rcu_sched_notrace, убирая прежние rcu_read_lock() и работу lockdep из каждого срабатывания, сохраняя безопасную синхронизацию периодов ожидания.

Для HFTKernel это лучше согласует инструментирование ядра с изолированными CPU и конфигурациями без тиков.

Более надёжные переходы состояния KVM SVM

На серверах AMD KVM состояние ожидающего сброса TLB сохраняется, если VMRUN не завершился успешно.

Требования сброса всех ASID отслеживаются на физический CPU в соответствии с областью переиспользования ASID. Управляющие поля обновляются только после успешного перехода.

Это укрепляет управление состоянием TLB на серверах виртуализации AMD.

Более безопасный обход теневого MMU KVM

KVM теперь немедленно останавливает обход теневых таблиц страниц, если текущий корень недействителен или является фиктивным корнем на нулевой странице.

Это сохраняет корректный путь MMU при одновременном создании memslot и обработке вложенных ошибок страниц.

Корректный порядок обслуживания кеша SEV

При миграции SEV внутри сервера обслуживание кеша исходной VM теперь завершается до потери её активного состояния SEV.

Память не может вернуться аллокатору сервера до обратной записи состояния кеша зашифрованного гостя в требуемом порядке.

Это усиливает управление жизненным циклом конфиденциальных VM в профиле HFTKernel KVM Host.

PCI AtomicOps для проброшенных устройств

Гость с пробросом теперь распознаёт PCI AtomicOps, уже включённые гипервизором на конечном устройстве, даже если вышестоящий Root Port скрыт из топологии гостя.

Это позволяет совместимым ускорителям и сетевым устройствам использовать атомарные операции в ESXi, Hyper-V и подобных средах проброса.

Меньше работы в x86 AES-GCM

Реализация x86 AES-GCM больше не рассматривает последний сегмент AAD как промежуточный.

Это убирает дополнительное копирование временного буфера и лишний вызов ассемблерной функции из пути последнего сегмента.

Улучшение полезно инфраструктуре, использующей криптографический API ядра для зашифрованной сети, хранения или сервисов безопасности.

Включённые инструменты измерения

HFTKernel 7.2.10 включает:

cpujitter

Для пауз выполнения CPU, вмешательства планировщика, активности IRQ и softIRQ и хвостов latency.

memjitter

Для выделения, first-touch, рабочего набора и поведения при давлении на память.

irqjitter

Для анализа активности IRQ и softIRQ.

Метрики приложения, телеметрия завершения таймеров, состояние завершений io_uring, статистика TCP, аппаратные временные метки, сетевые счётчики и события KVM дополняют слой измерений.

Результат HFTKernel 7.2.10

HFTKernel 7.2.10 укрепляет операционную систему вокруг приложений, чувствительных к latency:

  • завершения таймеров высокого разрешения своевременно достигают пользовательского пространства;
  • нагрузки под управлением планировщика сохраняют лучшую локальность LLC;
  • приём zero-copy явно показывает границы ресурсов;
  • потоки меток передачи корректно восстанавливаются после заполнения CQ;
  • Google GVE DQO эффективно обрабатывает виртуализированный трафик TSO;
  • TCP сохраняет точное состояние RTT после длительного простоя;
  • освобождение RCU создаёт меньше фоновой активности возврата памяти;
  • жизненные циклы futex и BPF остаются ограниченными и согласованными;
  • пути AF_PACKET и page-pool сохраняют надёжный прогресс;
  • аппаратные временные метки работают с поставщиками на PHY;
  • fprobe лучше интегрируется с nohz_full;
  • пути KVM, SEV и проброса PCI получают более надёжное управление состоянием.

Вместе эти изменения делают облачные, физические, пакетные и виртуализационные платформы более предсказуемыми, измеримыми и управляемыми.

HFTKernel 7.2.9

Более надёжная изоляция CPU, безопасные кольца пакетов и более чистые пути виртуализации

Базовая версия основного проекта: Linux 7.2.9. Изменения с Linux 7.2.8. Дата релиза: 3 октября 2026 г.

Более надёжное разделение CPU

Управление cpuset cgroup v2 теперь отклоняет конфигурации, в которых удалённый корневой раздел пытается использовать CPU, уже назначенные локальному разделу-предку.

Это сохраняет эксклюзивное владение CPU и усиливает разделение торговых, сетевых, служебных и сервисных нагрузок.

Для HFTKernel состояние разделов CPU остаётся согласованным при создании, перенастройке и удалении сервисов.

Более безопасное завершение zero-copy AF_PACKET

PACKET_TX_RING теперь использует стандартный механизм завершения zero-copy.

Слот кольца становится доступен только после освобождения или копирования всех ссылок на данные пакета. Это сохраняет явное владение буферами на всём жизненном цикле TX.

Изменение повышает надёжность:

  • воспроизведения рыночных данных;
  • генераторов трафика;
  • пакетных измерителей latency;
  • тестовых стендов AF_PACKET;
  • сетевых квалификационных нагрузок.

Надёжный прогресс колец virtio-net

Virtio-net теперь освобождает соответствующие фрагменты zero-copy до отсоединения пакетов от владельца, когда NAPI TX отключён.

Это сохраняет движение ограниченных конфигураций PACKET_TX_RING и возвращает завершённые слоты отправителю без ожидания дополнительной передачи.

То же улучшение жизненного цикла поддерживает пути вложенной виртуализации с vhost-net и virtio-net.

Ограниченное поведение таймера TPACKET_V3

TPACKET_V3 теперь вычисляет тайм-ауты завершения блоков арифметикой, безопасно поддерживающей большие блоки кольца пакетов.

Это предотвращает переполнение таймера, создающее постоянно перезапускаемый таймер высокого разрешения в контексте softIRQ.

Для систем захвата и воспроизведения результатом становятся контролируемые таймеры и защита от потребления всего CPU кольцом пакетов через непрерывную обработку softIRQ.

Более надёжная передача Google GVE DQO

Драйвер GVE DQO теперь раньше проверяет геометрию TSO и GSO в пути передачи.

Пакеты с MSS ниже аппаратного минимума переходят на подходящий программный путь до устройства. Это предотвращает незаметное аппаратное отбрасывание и вызванные им повторные передачи.

Обработка UDP GSO также использует правильную длину транспортного заголовка при вычислении границ сегментов и требований к дескрипторам.

Эти изменения повышают стабильность передачи сети Google Cloud для нагрузок TCP и UDP с GVE DQO.

Более устойчивое управление HugeTLB

Перемещение таблиц страниц HugeTLB при mremap() теперь сохраняет правильное соотношение адресов исходного и целевого отображений.

Гигантские страницы без поддержки расформирования во время работы остаются на совместимом пути жизненного цикла, сохраняя согласованность списка свободных страниц и их состояний.

Это повышает надёжность явно зарезервированных рабочих наборов HugeTLB, включая конфигурации со страницами 1 GiB в поддерживаемых системах x86.

Более надёжное упорядочивание анонимной памяти

Инициализация анонимной VMA теперь публикует указатель anon_vma с требуемым порядком памяти.

Все инициализированные поля становятся видимы до использования новой структуры другим CPU.

Это повышает надёжность конкурентных путей ошибок страниц, first-touch, mprotect() и соседних VMA, особенно на архитектурах со слабым порядком памяти, таких как ARM64.

Более предсказуемое завершение writeback cgroup

Очистка writeback для отключённых memory cgroup теперь сообщает состояния покоя Tasks-RCU при длительном опустошении.

Затронутый путь опустошения inode также продвигается линейно, продолжая с предыдущей позиции вместо повторного сканирования начала того же списка.

Это сохраняет прогресс BPF, ftrace и других пользователей Tasks-RCU при массовом удалении сервисов или контейнеров.

Более точное управление DPLL

Синхронизация опорного сигнала DPLL теперь использует точный поиск по pin-ID.

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

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

Восстановлены аппаратные временные метки через PHY

Сетевые устройства с аппаратными метками через PHY больше не зависят от обратных вызовов меток драйвера MAC, неприменимых к их архитектуре.

Конфигурация PTP достигает пути временных меток PHY напрямую, сохраняя работу аппаратных меток на поддерживаемых устройствах.

Более корректная инициализация AWS ENA

Путь очистки обнаружения AWS ENA теперь освобождает PHC и ресурсы чтения MMIO в правильном порядке.

Регистрация часов PTP, состояние PHC, ресурсы MMIO на DMA и приватные данные драйвера остаются согласованными при частичной инициализации и очистке устройства.

Это повышает надёжность жизненного цикла ENA в профиле HFTKernel Cloud.

Меньше расходов переходов KVM

Операции вложенной виртуализации теперь используют статические вызовы в нескольких активных путях L2.

На поддерживаемых серверах Intel KVM также избегает переключения DS_AREA и конфигурации PEBS, если гостевой PEBS неактивен. Из затронутого пути убраны две или четыре лишние записи MSR на полный переход VMX туда и обратно.

Процессоры с изоляцией PEBS избегают ещё трёх связанных с PEBS записей MSR на каждом переходе VMX.

Это повышает эффективность HFTKernel как сервера KVM для вложенных и чувствительных к производительности виртуальных нагрузок.

Более достоверные измерения Intel PEBS

Intel PEBS получает более точную классификацию загрузок и записей, ограничения источников данных и декодирование snoop-состояния на поддерживаемых современных микроархитектурах.

Это улучшает аппаратный анализ:

  • latency памяти;
  • поведения кеша;
  • остановок загрузок и записей;
  • эффектов NUMA;
  • редких задержек выполнения.

Результат: более надёжный слой наблюдаемости для оптимизации производительности и исследования tail latency.

Более согласованное направление очередей XPS

XPS теперь отклоняет идентификаторы классов трафика вне активной конфигурации очередей.

Это сохраняет согласованность карт направления после изменений классов трафика и корректность метаданных размещения CPU по очередям TX.

Включённые инструменты измерения

Каждый комплект пакетов HFTKernel включает:

cpujitter

Для пауз выполнения CPU, вмешательства планирования, активности IRQ и softIRQ и хвостов latency.

memjitter

Для выделения, first-touch, рабочего набора и поведения при давлении на память.

irqjitter

Для анализа активности IRQ и softIRQ.

Инструменты поставляются нативными пакетами операционной системы, согласованными с релизом HFTKernel и профилем платформы.

Результат HFTKernel 7.2.9

HFTKernel 7.2.9 укрепляет систему вокруг приложений, чувствительных к latency:

  • эксклюзивное владение CPU остаётся согласованным;
  • владение кольцами пакетов и завершение становятся явными;
  • нагрузки захвата сохраняют ограниченное поведение таймеров;
  • переходы HugeTLB и анонимной памяти становятся устойчивее;
  • удаление cgroup создаёт меньше длительных фоновых помех;
  • конфигурация PTP и DPLL становится точнее;
  • управление жизненным циклом ENA становится корректнее;
  • переходы KVM выполняют меньше ненужной работы;
  • измерения PEBS дают более достоверные данные производительности.

Вместе изменения делают сервер более предсказуемым, измеримым и управляемым в облаке, на физическом оборудовании, при захвате пакетов и виртуализации.

HFTKernel 7.2.8

Более чистое освобождение памяти, надёжный захват пакетов и улучшенная диагностика времени

Базовая версия основного проекта: Linux 7.2.8. Изменения с 7.2.7. Дата релиза основного проекта: 25 сентября 2026 г.

Более предсказуемое освобождение памяти

Linux 7.2.8 улучшает разделение глобальных shrinker файловых систем и освобождения отдельных memory cgroup.

Перехватчики кешированных объектов без поддержки memcg остаются в глобальном пути освобождения, а перехватчики файловой системы с поддержкой memcg могут участвовать в освобождении отдельных memcg. Это исключает повторную глобальную работу для множества пар memcg и узлов NUMA, восстанавливая полезное освобождение отдельных memcg для таких путей, как slab inode XFS.

Для HFTKernel это поддерживает более чистую изоляцию сервисов и меньший фоновый шум в системах с контейнерами, cgroup v2 или границами памяти на уровне сервиса.

Более точный учёт заблокированной памяти

Релиз исправляет учёт locked_vm для MREMAP_DONTUNMAP, когда заблокированные VMA отображаются повторно без удаления исходного отображения.

Также повышена безопасность обновлений NR_MLOCK в путях, где munlock(), прямой ввод-вывод, folio кеша страниц и завершения IRQ могут взаимодействовать на одном CPU.

Для HFTKernel это укрепляет учёт закреплённых и заблокированных рабочих наборов, типичных для приложений и измерительных нагрузок, чувствительных к latency.

Более ясное поведение огромных отображений памяти под управлением драйвера

Огромные отображения PFNMAP теперь обходят общие настройки THP там, где они неприменимы. История изменений основного проекта отмечает, что это не обычная освобождаемая память THP, а некорректная обработка приводила к реальной деградации производительности в затронутых конфигурациях.

Для HFTKernel это относится к специальным отображениям устройств, отображениям типа DAX и памяти под управлением драйвера, а не к стандартной политике THP приложения.

Более надёжные пути захвата и воспроизведения AF_PACKET

AF_PACKET получает два практических исправления обработки пакетов через кольца.

TPACKET_V3 теперь сохраняет проверенный размер приватной области без усечения в меньшее внутреннее поле. Это предотвращает перекрытие записей пакетов с приватными метаданными кольца.

Путь ошибки VNET-заголовка теперь правильно очищает владение RX, не позволяя ошибочному пакету оставить слот кольца недоступным для следующего корректного пакета.

Для HFTKernel это напрямую полезно захвату рыночных данных, воспроизведению пакетов, измерителям latency, генераторам трафика и сетевым стендам на AF_PACKET.

Более устойчивое поведение TCP и временных меток сокетов

TCP теперь исключает чрезмерно старые ACK из быстрого пути и направляет их в обычную проверку. Это согласует обновления состояния соединения TCP с проверкой ACK.

Настройка временных меток сокета теперь берёт блокировку сокета при изменении связанных флагов, сохраняя обычный путь без блокировок. Это повышает корректность жизненного цикла меток в системах с множеством сокетов.

Для HFTKernel изменения повышают корректность длительных соединений TCP, TLS, WebSocket, управления и наблюдаемости.

Улучшенная диагностика PTP и PHC

Для MACB/GEM системные временные метки вокруг чтения PHC теперь правильно ограничивают чтение аппаратного регистра. История изменений основного проекта сообщает, что прежний интервал мог быть нереалистично коротким по сравнению с фактическим упорядоченным чтением, смещая синхронизацию по средней точке.

Для stmmac phc_index теперь остаётся незаданным, если аппаратные метки поддерживаются, но часы PTP ещё не зарегистрированы. Это исключает сообщение внешне корректного индекса PHC для неверных часов.

Для HFTKernel это повышает достоверность диагностики времени и снижает риск ошибочного обнаружения PHC в поддерживаемых конфигурациях NIC.

Более надёжная обработка жизненного цикла RDMA, EFA и IRQ

Драйвер AWS EFA теперь сохраняет ресурсы EQ и административные очереди, пока зарегистрированы их обработчики IRQ. Порядок инициализации и удаления согласован с ресурсами, доступными из контекста прерываний.

Пути RDMA также получают улучшения жизненного цикла и порядка, включая локальные барьеры при регистрации памяти Intel irdma и безопасную для IRQ обработку XArray таблиц QP и CQ erdma.

Для HFTKernel Hardware и сред рядом с облаком это повышает надёжность жизненного цикла RDMA, управляемого прерываниями.

Более надёжные диагностика и наблюдаемость

perf улучшает очистку посреднических событий гостевого PMU при выгрузке модулей с активными соединениями perf.

Метаданные групп netlink теперь обновляются с безопасной публикацией RCU и отложенным освобождением для читателей без блокировок.

drop_monitor получает более безопасную обработку удаления точек трассировки, указателей на CPU и таймеров, включая timer_shutdown_sync() для предотвращения повторной активации при удалении.

Для HFTKernel изменения повышают надёжность диагностических сеансов для исследования потерь пакетов, шума планирования и редких событий tail latency.

Включённые инструменты измерения

cpujitter

Измеряет jitter выполнения CPU, помехи прерываний и хвосты latency.

memjitter

Измеряет latency выделения, поведение first-touch, заблокированные рабочие наборы и поведение памяти под нагрузкой.

Используйте оба инструмента вместе с измерениями приложения.

Проверяйте обновление контролируемыми тестами A/B с одинаковыми инструментами сборки, конфигурацией ядра, размещением CPU и IRQ и нагрузкой. Включайте тесты захвата пакетов, диагностики времени и жизненного цикла функций, используемых в развёртывании.

HFTKernel 7.2.7

Более согласованная изоляция CPU, облегчённые управляющие пути и более надёжные измерения

Базовая версия основного проекта: Linux 7.2.7. Изменения с 7.2.6. Дата релиза основного проекта: 21 сентября 2026 г.

Изоляция CPU и учёт планировщика

Управление cpuset cgroup v2 сохраняет изолированные при загрузке CPU в учёте изоляции при освобождении или изменении состояния изолированного раздела. Это согласует cpuset.cpus.isolated с загрузочной изоляцией доменов и поддерживает надёжную автоматизацию размещения на всём жизненном цикле сервисов.

EEVDF теперь согласованно поддерживает метаданные минимального виртуального времени и минимального/максимального кванта при обновлениях дерева очереди, включая инициализацию max_slice перед постановкой. Уточнения поддерживают планирование класса fair для потоков приложений и служебных задач.

Учёт среднего простоя обновляется только при наличии корректной временной метки простоя, связывая учёт планировщика с реальными интервалами.

Меньше ненужной миграции RT и deadline

Планировщики RT и deadline пропускают задачи с запрещённой миграцией при выборе кандидата для переноса на другой CPU. Они могут выбрать переносимую задачу или завершить поиск раньше, исключая повторные бесполезные пробуждения CPU-stopper. Улучшение относится к соответствующим путям планирования RT/DL.

Более эффективная отложенная работа консоли

Отложенный вывод консоли nbcon использует ленивую работу IRQ. При работающем локальном тике планировщика задача обслуживается на этом тике без нового немедленного прерывания. CPU с остановленным тиком всё ещё может требовать прерывания, сохраняя прогресс в конфигурациях без тиков.

Более предсказуемое выделение управляющих пакетов TCP

Пакеты активного сброса TCP используют атомарные флаги выделения, избегая прямого освобождения памяти при удержании блокировки сокета. Это облегчает выделение активного сброса в затронутых путях закрытия и отключения соединений, включая удаление сокетов сетевых хранилищ.

Более точный учёт буферов приёма io_uring

Операции приёма с MSG_TRUNC учитывают реально скопированные в предоставленные буферы байты, сохраняя запрошенный результат полной длины. Пошаговое потребление буфера согласовано с доступной областью, поддерживая надёжное переиспользование буферов в этом режиме.

Согласованная диагностика аппаратных временных меток

Драйвер mlx5 сохраняет накопленную статистику аппаратных меток при изменении числа каналов, классов трафика и режимов меток DMA или порта. Постоянная статистика также позволяет чтению обходиться без прежнего мьютекса состояния. Это укрепляет телеметрию меток при перенастройке NIC.

Более надёжные жизненные циклы сетевых драйверов

Azure MANA: перенастройка XDP сохраняет предыдущее корректное состояние программы, если предварительное выделение приёмных буферов не может завершиться.

Intel IDPF: работа динамического управления частотой прерываний останавливается до освобождения векторов очередей. Заголовки VLAN также учитываются при разборе аппаратно объединённых принятых пакетов.

GRO и пересылка: аппаратно объединённые пакеты TCP сохраняют совместимость с обработкой fraglist GRO и последующей сегментацией. Это важно для конфигураций пересылки Linux, сочетающих эти аппаратные функции.

Более достоверная наблюдаемость производительности

Выборка Intel PEBS согласует остановку PMU и опустошение общего буфера, предотвращая перекрытие операций опустошения. Это повышает надёжность аппаратной выборки производительности в поддерживаемых системах Intel.

Гистограммы трассировки сохраняют модификаторы процентов и графика для значений. Настройка гистограммы выбирает и проверяет часы трассировки до публикации триггера, повышая воспроизводимость диагностических сеансов.

Более надёжное управление жизненным циклом памяти и ввода-вывода

SLUB согласует возврат в список свободных объектов с обновлением частичных списков под нужной блокировкой узла, поддерживая состояние аллокатора при конкурентных операциях.

На x86 таблицы страниц, создаваемые при разделении крупных отображений ядра, используют стандартный путь выделения таблиц ядра. Это согласует создание, учёт, отложенное освобождение и инвалидацию IOTLB.

Для асинхронных записей io_uring учёт записи файловой системы завершается в фактическом обратном вызове завершения ввода-вывода, не ожидая последующей обработки task-work. Это улучшает согласование с заморозкой и остановкой файловой системы.

Включённые инструменты измерения

cpujitter

Измеряет jitter выполнения CPU и поведение хвостов latency.

memjitter

Измеряет выделение памяти, first-touch, рабочий набор и поведение при давлении на память.

Используйте оба инструмента вместе с измерениями приложения.

Проверяйте обновление контролируемыми тестами A/B с одинаковыми инструментами сборки, конфигурацией ядра, размещением CPU и IRQ и нагрузкой. Включайте измерения установившегося режима и тесты жизненного цикла используемых функций.

HFTKernel 7.2.6

Более согласованный учёт времени, облегчённое управление ресурсами и надёжные сетевые жизненные циклы

Базовая версия основного проекта: Linux 7.2.6. Изменения с 7.2.5. Дата релиза основного проекта: 14 сентября 2026 г.

Более согласованный системный учёт времени

Учёт времени теперь включает коррекцию метки, сохраняющую непрерывность, в ntp_error при изменении частотного множителя clocksource. Это согласует расчёт ошибки дисциплинирования часов с коррекцией, особенно при больших поправках частоты от внешнего источника.

Более эффективное управление размещением CPU и памяти

В cgroup v2 обработка горячего подключения cpuset избегает избыточных обновлений задач, когда эффективные маски CPU и узлов NUMA наследуются от родителя. Это уменьшает ненужную работу размещения при соответствующих обновлениях топологии.

Меньше ненужной работы освобождения памяти

При удалении memory cgroup учёт размера LRU переносится родителю, а не остаётся продублированным в потомке. Традиционный LRU избегает повторного сканирования пустых списков, а MGLRU получает более точный учёт бюджета теневых узлов. Это улучшает учёт ресурсов при перезапусках сервисов, смене контейнеров и давлении на память.

Более согласованное дозирование пакетов FQ

FQ теперь компенсирует только положительный дрейф планирования при расчёте задержек дозирования. При аппаратном дозировании раннее извлечение больше не сокращает следующий интервал в затронутых путях с ограничением скорости и без EDT. Рабочая проверка quantum и initial_quantum также удерживает конфигурацию FQ в допустимых пределах.

Более надёжное управление AF_XDP и DMA-буферами

Драйвер virtio-net теперь меняет размер массива буферов AF_XDP вместе с кольцом RX. Это согласует ёмкость буферов с конфигурацией очереди при подключённом приложении AF_XDP.

Общий код page-pool также тщательнее согласует удаление отображений DMA и очистку метаданных буферов при одновременном удалении и возврате страниц, укрепляя жизненный цикл сетевых буферов.

Более надёжная конфигурация аппаратной и виртуальной сети

Intel E810 PTP: драйвер ICE может перейти к sideband-очереди при тайм-ауте интерфейса PHY-таймера с низкой latency. Это улучшает повторную инициализацию PTP после обновлений прошивки и связанных сбросов, сохраняя обычный путь с низкой latency.

Azure MANA: выделение MSI-X учитывает фактическую ёмкость таблицы векторов устройства, улучшая настройку прерываний на очень крупных VM.

NVIDIA mlx5: изменения состояния vport E-Switch сохраняют настроенную максимальную скорость TX, поддерживая согласованность виртуального порта при переходах состояния.

Более достоверная диагностика latency

Диагностика таймеров высокого разрешения теперь учитывает повторы прерываний с успешным восстановлением, улучшая точность nr_retries в /proc/timer_list.

Intel Processor Trace получает более надёжную остановку/запуск. Обновлённый perf sched требует соответствующие образцы трассы перед показом таблицы latency, явно обозначая неполные записи.

Более полный учёт ввода-вывода при горячем подключении CPU

Статистика блочного слоя собирает и сбрасывает образцы со всех возможных CPU, включая отключённые в окне выборки. Это сохраняет ожидающие образцы latency для управляющих путей ввода-вывода, использующих статистику.

Включённые инструменты измерения

cpujitter

Измеряет jitter выполнения CPU, помехи прерываний и хвосты latency.

memjitter

Измеряет latency выделения, поведение first-touch, заблокированные рабочие наборы и поведение памяти под нагрузкой.

HFTKernel 7.2.6 обеспечивает более согласованный учёт времени, облегчённое управление ресурсами и надёжные сетевые жизненные циклы.

HFTKernel 7.2.5

Более предсказуемые память, синхронизация и диагностика latency

На основе Linux 7.2.5. Изменения относительно Linux 7.2.4.

Более надёжное управление HugeTLB и NUMA

Выделение гигантских HugeTLB через CMA теперь проверяет предпочтительный узел NUMA по разрешённой nodemask, использует текущие ограничения cpuset при отсутствии явной маски и может повторяться после конкурентного изменения cpuset. Это улучшает размещение больших заранее выделенных буферов, включая страницы 1 GiB на x86 при использовании этого пути.

Управление пулом HugeTLB сохраняет max_huge_pages при освобождении избыточных страниц. Перемещённые страницы сохраняют возможность миграции и присутствие в активном списке даже внутри того же узла NUMA. Счётчики cgroup инициализируются одинаково независимо от CONFIG_DEBUG_VM, включая неограниченные лимиты, отображаемые как max.

Более согласованная синхронизация с наследованием приоритета

Специальные функции планирования PI-futex обрамляют rt_mutex_wait_proxy_lock() без вызова sched_submit_work() в пути прокси-блокировки. Это улучшает учёт синхронизации для приложений с futex наследования приоритета.

На PREEMPT_RT завершение PI-requeue избегает избыточного rcuwait_wake_up() в Q_REQUEUE_PI_LOCKED, согласуя передачу блокировки и пробуждения ожидающих. Второе изменение относится только к PREEMPT_RT.

Более надёжная диагностика BPF и ftrace

bpf_get_stackid() защищает сбор цепочки вызовов и доступ к возвращённому буферу CPU от вытеснения. Конкурентная инициализация ftrace_ops синхронизирована с сохранением быстрого пути для готовых объектов.

Операции фильтров функций и чтения фильтров/триггеров событий удерживают необходимые ссылки на экземпляр трассировки. Это повышает надёжность автоматизированного профилирования и исследования редких выбросов latency в PREEMPT-системах.

Более точное аппаратное профилирование

Доступность Intel PMU AnyThread соответствует нужной возможности CPUID. Фильтрация Intel LBR только для пользователя проверяет оба адреса ветвления, удерживая образцы в запрошенных пределах.

Расширенная BPF-программа аргументов системных вызовов в perf trace использует bpf_for, делая проверки завершения циклов верификатором устойчивее к изменениям Clang. Улучшение требует обновлённой сборки perf.

Более корректная однократная инициализация сокета

DO_ONCE_SLEEPABLE() откладывает отключение статического ключа в системную рабочую очередь вне блокировок вызывающей стороны. Это отделяет глобальные обновления статических ключей от блокировок сокетов в путях вроде __inet_hash_connect(). Изменение относится к однократной инициализации, а не обработке каждого пакета.

Более надёжная обработка памяти и таймеров KVM

Старение теневого MMU без блокировок повторно использует значение обратного отображения, полученное при проверке блокировки. Обновления бита Accessed TDP-MMU используют LOCK CMPXCHG для согласованности с конкурентными изменениями SPTE.

Эмулируемые KVM синтетические таймеры Hyper-V проверяют преобразования по 100 наносекунд и ограничивают сроки KTIME_MAX, сохраняя далёкие истечения в будущем. Изменения относятся к ядру сервера KVM. Для облачного гостя эффект зависит от обновления сервера провайдера.

Более устойчивое хранение и необязательные политики памяти

NVMe multipath согласует удаление пространства имён с читателями SRCU. NVMe/TCP рано проверяет входящие C2HData по направлению команды, укрепляя затронутые пути сетевого хранения.

Приоритизация DAMOS использует скользящую сумму обращений для более согласованных решений схем. При включённом THP tmpfs MADV_HUGEPAGE передаёт обновлённые флаги VMA в khugepaged. Улучшения относятся к конфигурациям с соответствующими подсистемами и политиками.

Включённые инструменты измерения

cpujitter

Измеряет jitter выполнения CPU, помехи прерываний и хвосты latency.

memjitter

Измеряет latency выделения, поведение first-touch, заблокированные рабочие наборы и поведение памяти под нагрузкой.

Проверяйте нагрузку сравнением A/B 7.2.4 и 7.2.5 с неизменными инструментами сборки, конфигурацией ядра, размещением CPU/IRQ и нагрузкой.

HFTKernel 7.2.5 укрепляет размещение огромных страниц, синхронизацию с наследованием приоритета и диагностику latency, улучшая согласованность памяти и таймеров серверов KVM.

HFTKernel 7.2.4

Меньше ненужной работы ядра. Более предсказуемая инфраструктура.

На основе Linux 7.2.4. Изменения относительно Linux 7.2.3.

Более эффективное долгосрочное закрепление памяти

Исправлен учёт ссылок GUP закреплённых страниц. Затронутый путь долгосрочного закрепления теперь может избегать ненужного локального и глобального опустошения внутренних буферов LRU.

Для HFTKernel это уменьшает ненужную межпроцессорную работу при подготовке закреплённых буферов и поддерживает минимизацию системного шума вокруг выделенных торговых ядер.

Лучше ограниченное освобождение файловой системы

JBD2 теперь учитывает каждый просмотренный буфер контрольной точки в бюджете сканирования, включая занятые. Он также проверяет необходимость перепланирования при пропуске занятых буферов.

Это ограничивает работу одного прохода shrinker и позволяет быстро освободить блокировку журнала при запросе перепланирования. На узлах ext4 изменение полезно при совпадении активности файловой системы и давления на память.

Более согласованное управление памятью

Циклы освобождения и миграции страниц теперь явно сообщают состояния покоя RCU Tasks. Это помогает завершать соответствующие периоды ожидания даже при длительной обработке памяти в PREEMPT-ядрах. Изменение миграции особенно важно серверам KVM с обратными вызовами MMU notifier.

Для конфигураций с vm.defrag_mode=1 неперемещаемые выделения направляются в подходящий путь освобождения и уплотнения pageblock. Уплотнение целых pageblock также использует более подходящие правила выбора памяти, позволяя аллокатору лучше продвигаться в этом режиме.

SLUB пополняет переиспользуемые sheaf без расходования аварийных резервов pfmemalloc, сохраняя их для целевых нужд ядра.

Более согласованная обработка сетевых очередей TX

Общий сетевой стек улучшает инициализацию trans_start при активации очередей TX. Каждая затронутая очередь получает правильное опорное время watchdog, повышая надёжность мониторинга при активации интерфейса.

Драйвер Broadcom bnxt_en теперь отправляет doorbell для уже подготовленных пакетов, даже если линеаризация последнего пакета серии не удалась. Устройство узнаёт о поставленных дескрипторах TX без ожидания следующего вызова передачи.

Более надёжная доставка прерываний PCI в Hyper-V

При горячем отключении CPU ожидающее прерывание PCI MSI теперь может повторно отправляться новому целевому CPU через родительский домен прерываний.

Для HFTKernel Cloud на Hyper-V это повышает надёжность PCI-устройств при изменении активных vCPU. Изменение касается именно перенаправления прерываний при отключении CPU.

Меньше расходов ввода-вывода файловой системы

При небольших буферизованных перезаписях в больших актуальных folio обработка записи останавливается после запрошенного диапазона, не обходя оставшиеся buffer heads. Это снижает ненужную работу CPU, включая затронутый путь записи ext4.

В dm-io запросы DM_IO_BIO клонируют исходный bio вместо перестроения вектора страниц. Сохраняются исходный итератор и выравнивание, упрощая обработку ввода-вывода в конфигурациях Device Mapper с этим путём.

Более надёжная диагностика latency и jitter

Сбор и копирование цепочек вызовов BPF защищены от вытеснения при доступе к общему буферу CPU. Это повышает надёжность сбора стеков в PREEMPT-ядрах.

Чтение trace_pipe синхронизируется с изменением размера подбуферов трассировки, укрепляя наблюдаемость событий ядра при перенастройке трассировки.

Более строгая обработка вспомогательных часов

__do_adjtimex() теперь проверяет успешность чтения вспомогательных часов. При недоступном чтении возвращается -ENODEV вместо использования неполученного значения времени.

Это улучшает обработку состояния вспомогательных часов в конфигурациях с данным API учёта времени.

Более надёжная конфигурация Intel Speed Select

На поддерживаемых платформах Intel усилена проверка параметров SST-CP для частотных диапазонов, пропорционального приоритета, идентификаторов CPU и CLOS.

Для HFTKernel Hardware это улучшает контроль аппаратных настроек производительности на совместимых системах.

Включённые инструменты измерения

cpujitter

Измеряет jitter выполнения CPU и хвосты распределения latency.

memjitter

Анализирует latency памяти, выделение, поведение first-touch и заблокированные рабочие наборы.

Оценивайте влияние на целевую нагрузку воспроизводимыми тестами A/B, сетевыми метриками и распределениями latency приложения.

HFTKernel 7.2.4 сосредоточен на сокращении ненужной работы ядра, предсказуемом обслуживании памяти и устройств и надёжной основе измерений.

HFTKernel 7.2.3

Более предсказуемая обработка пакетов в Cloud и Hardware

HFTKernel обновлён до Linux Kernel 7.2.3.

HFTKernel 7.2.3 включает изменения стабильной ветви Linux 7.2.3, наиболее важные для HFT, рыночных данных, систем исполнения и инфраструктуры, чувствительной к latency.

Главный фокус релиза: более надёжный жизненный цикл пакетов, предсказуемый TX без блокировок, корректный TCP в асимметричных сетях и надёжные пути виртуализированной инфраструктуры.

AF_PACKET и захват пакетов

Улучшен жизненный цикл AF_PACKET TX_RING на памяти vmalloc.

Память кольца TX теперь живёт до завершения каждого связанного skb. Обновления временных меток и TP_STATUS_AVAILABLE выполняются до освобождения ожидающей ссылки без дополнительной блокировки в горячем пути завершений TX.

Это особенно полезно системам HFTKernel для:

  • Захвата рыночных данных
  • Воспроизведения пакетов
  • Измерения latency
  • Генерации трафика
  • Сетевых тестовых стендов
  • Измерительных систем на AF_PACKET

Изменение согласует завершения TX и освобождение памяти кольца без добавления синхронизации в основной путь обработки пакетов.

Более стабильный путь данных VLAN

Интерфейсы VLAN теперь сохраняют стабильный hard_header_len, правильно наследуют нужный запас перед и после данных и поддерживают корректное выравнивание заголовков для AF_PACKET SOCK_RAW.

Это повышает предсказуемость путей TX без блокировок при использовании:

  • Аппаратной обработки VLAN
  • Виртуальных сетевых интерфейсов
  • Контейнеров и сетевых пространств имён
  • Облачной сети
  • Захвата пакетов через raw-сокеты

Для HFTKernel это означает более согласованные метаданные пакетов и размещение буферов при изменениях аппаратной обработки VLAN.

Корректный TCP MSS в асимметричных сетях

Linux 7.2.3 вычисляет объявляемый TCP MSS по настроенному MTU интерфейса или маршрута, а не ранее обнаруженному PMTU исходящего пути.

Это особенно важно для асимметричных облачных конфигураций, балансировщиков DSR и оверлейных сетей, где входящий и исходящий трафик проходят пути с разными MTU.

Изменение не позволяет меньшему исходящему MTU оверлея ненужно ограничивать размер входящего сегмента TCP на всё время жизни соединения.

MSS, полученный из маршрута, также ограничивается снизу TCP_MIN_MSS, укрепляя инициализацию окна приёма TCP при необычных метриках маршрута.

Для HFTKernel это повышает предсказуемость длительных соединений TCP, TLS и WebSocket систем рыночных данных и исполнения.

Корректный переход между AVX2 и SSE

Реализация поиска nftables PIPAPO AVX2 теперь выполняет vzeroupper перед возвратом в код, который может использовать инструкции SSE.

Очистка верхних частей регистров YMM предотвращает документированный штраф перехода AVX-to-SSE в последующем коде SSE.

Это относится к системам, где nftables и поиск AVX2 PIPAPO остаются активны на инфраструктурных или служебных ядрах. Для HFTKernel это убирает ещё один небольшой, но устранимый источник непредсказуемых расходов CPU.

Более предсказуемое управление XFRM и IPsec

Состояния поддержания активности XFRM NAT теперь обрабатываются пакетами фиксированного размера, ограничивая временную память независимо от общего числа состояний.

Блокировки также переработаны: сбор ссылок и обработка состояний выполняются на отдельных этапах.

Для облачной инфраструктуры это даёт:

  • Ограниченное использование временной памяти
  • Более устойчивую обработку крупных наборов состояний XFRM
  • Более предсказуемое управление IPsec
  • Более согласованное взаимодействие с softirq и путями удаления состояний

Изменения находятся вне основного горячего торгового пути, но укрепляют эксплуатационную устойчивость облачных узлов и зашифрованных сетевых оверлеев.

Более надёжная аппаратная обработка TLS zero-copy

Аппаратная обработка TLS теперь надёжнее учитывает предел фрагментов открытой записи TLS.

При заполнении массива фрагментов запись отправляется даже при использовании приложением MSG_MORE и путей zero-copy splice().

Это повышает надёжность:

  • Аппаратной обработки TLS на NIC
  • TLS_TX_ZEROCOPY_RO
  • Путей отправки zero-copy
  • Зашифрованных потоков TCP под высокой нагрузкой

Для HFTKernel изменение полезно на инфраструктурных узлах, где завершение TLS или аппаратная обработка TLS ядра выполняются непосредственно сетевым адаптером.

KVM и AMD SEV/SNP

KVM улучшает обработку AMD SEV и SEV-SNP:

  • Специфичные для SEV перехватчики guest_memfd подключаются только при включённой поддержке SEV
  • Инфраструктура статических вызовов может устранить лишний CALL+RET, если SEV не используется
  • Отслеживание VMSA под управлением гостя становится устойчивее
  • vCPU корректно возвращается в готовое к выполнению состояние после AP_CREATE
  • Восстановлена поддержка файловой памяти зашифрованных гостей
  • Временные буферы операций шифрования выделяются целыми страницами

Изменения важны прежде всего при использовании HFTKernel как сервера KVM или с конфиденциальной виртуализацией AMD. Их прямой эффект внутри обычной облачной VM зависит от ядра сервера провайдера.

NVMe/TCP и Soft RoCE

Использование page_frag_cache при конкурентном создании пространств имён NVMe/TCP теперь сериализовано, улучшая жизненный цикл буферов PDU при параллельной инициализации хранилища.

Soft RoCE теперь согласованнее обновляет ресурсы ответчика при изменении IB_QP_MAX_DEST_RD_ATOMIC: новые массивы устанавливаются только после остановки задачи ответчика.

Изменения полезны HFT-инфраструктуре с сетевым хранилищем, программным RDMA, лабораторными средами или виртуализированной проверкой RDMA. Они не меняют основной быстрый путь аппаратного RDMA.

Проверка eBPF

Самотест BPF sockmap исправлен для пакетов с нелинейным skb.

Парсер остаётся доступным только для чтения, а необходимые данные пакета явно линеаризуются в программе вердикта перед прямым доступом.

Это улучшает регрессионное тестирование путей BPF sockmap и укрепляет процесс сборки и квалификации HFTKernel.

Оценка влияния

Linux 7.2.3 не публикует новых измерений медианы, p99, p99.9 или p99.99 latency для этих изменений.

Поэтому практический эффект релиза следует проверять контролируемыми измерениями A/B на целевой нагрузке.

HFTKernel 7.2.3 укрепляет сетевые пути Linux, где жизненный цикл пакетов, метаданные буферов, выбор пути TCP и фоновая инфраструктурная работа могут влиять на стабильность и воспроизводимость систем, чувствительных к latency.

Включённые инструменты измерения

HFTKernel 7.2.3 также включает cpujitter и memjitter как нативные инструменты измерения, согласованные с релизом.

cpujitter

измеряет jitter выполнения CPU, помехи IRQ и softirq и экстремальную tail latency.

memjitter

измеряет latency выделения, поведение first-touch, заблокированные рабочие наборы и latency памяти под нагрузкой.

Рабочая среда и инструменты измерения остаются согласованными с одной неизменяемой матрицей релиза Cloud и Hardware.

HFTKernel 7.2.3 укрепляет жизненный цикл пакетов, метаданные VLAN, выбор TCP MSS, аппаратную обработку TLS, виртуальный ввод-вывод, зашифрованный KVM, хранение и проверку для более стабильной и предсказуемой платформы HFT.

HFTKernel 7.2.2

Более надёжная обработка фрагментов GSO в облачной сети

HFTKernel обновлён до Linux Kernel 7.2.2.

Этот целевой релиз укрепляет обработку фрагментированных пакетов IPv4 и IPv6 в виртуализированных сетевых конфигурациях и конфигурациях с участием пользовательского пространства.

Сетевой путь данных

При поступлении IP-фрагмента в общую очередь сборки ядро теперь сбрасывает его состояние GSO через skb_gso_reset().

  • Состояние GSO больше не переносится из отдельных фрагментов в собранный пакет.
  • Собранный пакет приходит к программной сегментации с правильным состоянием.
  • Общее исправление охватывает сборку IPv4, IPv6, отслеживание соединений Netfilter и 6LoWPAN.
  • Взаимодействие сборки фрагментов, GSO и skb_segment() становится устойчивее.

Изменение реализовано в общем пути inet_frag_queue_insert() и затрагивает лишь один файл ядра.

Практическая ценность для HFTKernel

Обновление особенно важно системам, использующим:

  • TUN/TAP
  • AF_PACKET с PACKET_VNET_HDR
  • Virtio-net и KVM
  • Облачные виртуальные машины
  • Сетевые пространства имён
  • Захват и воспроизведение пакетов
  • Генераторы трафика и сетевые тестовые стенды
  • Виртуализированные шлюзы рыночных данных и исполнения

Для HFTKernel это означает более устойчивый сетевой путь данных и надёжную обработку редких сочетаний фрагментации IP и метаданных GSO.

Проверка в основном проекте

Тестирование основного проекта охватило четыре разные геометрии фрагментированных пакетов IPv4 и IPv6. После исправления каждая тестовая датаграмма доставлялась полностью без сообщений ядра.

Оценка влияния

Улучшение направлено на эксплуатационную устойчивость, а не ускорение обычного быстрого сетевого пути.

Основной проект не публикует новых измерений throughput, медианной latency или tail latency для Linux 7.2.2. Корректная формулировка HFTKernel:

HFTKernel 7.2.2 повышает надёжность путей GSO и сборки фрагментов в виртуализированных сетевых конфигурациях и конфигурациях с участием пользовательского пространства.

Включённые нативные инструменты измерения

HFTKernel 7.2.2 также включает cpujitter и memjitter как нативные инструменты измерения.

cpujitter

измеряет jitter выполнения CPU, помехи IRQ и softirq и экстремальную tail latency.

memjitter

анализирует latency выделения, first-touch, заблокированные рабочие наборы и поведение памяти под нагрузкой.

HFTKernel 7.2.2 укрепляет сетевые пути облачной инфраструктуры, виртуальных машин и систем захвата и воспроизведения трафика, делая платформу Linux для HFT устойчивее и предсказуемее.

HFTKernel 7.2

Более чистая изоляция CPU, точное время и лучший контроль tail latency

HFTKernel обновлён до Linux Kernel 7.2.

Релиз укрепляет пути ядра, наиболее важные для HFT, рыночных данных, шлюзов исполнения и другой инфраструктуры, чувствительной к latency.

Основные улучшения

  • Более чистая изоляция CPU NO_HZ_FULL с меньшим попаданием служебной активности на критичные к latency ядра
  • Более точное сопоставление путей времени PTP, PHC, TSC, KVMclock и Hyper-V
  • Планирование с учётом кеша и улучшенная локальность кеша последнего уровня для связанных нагрузок
  • Повышенная корректность futex и целевая масштабируемость membarrier
  • Работа задач io_uring без блокировок с меньшими расходами и надёжные сетевые пути zero-copy
  • Улучшения NAPI, TCP и Azure MANA для более стабильного сетевого пути данных
  • Улучшения NUMA, MGLRU, непрерывной памяти и /proc для более предсказуемого поведения системы
  • Наблюдаемость IRQ и RTLA с меньшими расходами для поиска редких событий latency

Включённые нативные инструменты измерения

HFTKernel 7.2 включает cpujitter и memjitter как нативные пакеты для каждой поддерживаемой цели Cloud и Hardware.

cpujitter

измеряет jitter выполнения CPU, помехи IRQ и softirq и экстремальную tail latency.

memjitter

анализирует latency выделения, first-touch, заблокированные рабочие наборы и производительность памяти под давлением.

Вместе HFTKernel, cpujitter и memjitter предоставляют оптимизированную рабочую среду и инструменты измерения для проверки инфраструктуры, чувствительной к latency.

HFTKernel 7.2 укрепляет изоляцию CPU, точность времени, локальность кеша, сетевую обработку, поведение памяти и наблюдаемость latency как единую измеримую платформу HFT.

Принципы релизов

Стабильность основного проекта, политика под конкретную нагрузку и измеримые результаты

HFTKernel начинается с точного стабильного релиза Linux, фиксирует инструменты и идентификацию сборки, применяет выбранный профиль Cloud или Hardware, включает cpujitter и memjitter в рабочий комплект и проверяет результат как неизменяемый релиз.

Точная базаПроверенный стабильный исходный код Linux и закреплённая версия ядра.
Контролируемый профильПолитика CPU, памяти, сети, учёта времени и изоляции, согласованная с платформой.
Нативные пакетыКомплекты DEB, RPM или TGZ для поддерживаемой промышленной матрицы.
Поставка с измерениямиcpujitter и memjitter дают воспроизводимые свидетельства поведения хвостов распределения.

Планирование развёртывания

Оцените релиз с учётом своей топологии CPU, NIC, памяти и времени.

Выбор пакета является лишь первым шагом. Промышленный результат зависит от параметров загрузки, рабочей привязки, размещения очередей, схемы PTP/PHC, политики памяти и контролируемого плана измерений.