Оптимизация драйвера exFAT в Linux: значительное ускорение загрузки

Внесение изменений в драйвер файловой системы exFAT для Linux привело к существенному ускорению процесса загрузки. Патч, добавленный в очередь разработки, оптимизирует время загрузки битовой карты распределения. В scenarios с небольшими размерами кластеров на разделах большого объема это может ускорить загрузку приблизительно в 16 раз.

Разработчик exFAT с открытым исходным кодом Намджэ Чон добился впечатляющей оптимизации, внеся патч в ветку «dev» exfat.git. Патч оптимизирует время загрузки растрового изображения распределения, который ранее был весьма медленным при малом размере кластера на больших разделах.

Для решения этой проблемы патч использует функцию sb_breadahead() для чтения битовой карты распределения, что существенно сокращает время монтирования. Эксперименты с разделом объемом около 4 ТБ (размер кластера 2 КБ) показали впечатляющие результаты:

Без патча:

  • Реальное время: 0 м 41,746 с
  • Пользовательское время: 0 м 0,011 с
  • Системное время: 0 м 0,000 с

С патчем:

  • Реальное время: 0 м 2,525 с
  • Пользовательское время: 0 м 0,008 с
  • Системное время: 0 м 0,008 с

При отсутствии непредвиденных обстоятельств патч планируется включить в ядро Linux 6.18 к концу года.