В ядре Linux 6.17 скорость случайно записи файловой системы exFAT увеличится в 2 раза

Вслед за запросом F2FS были разосланы обновления файловой системы exFAT, которые были объединены для текущего окна слияния ядра Linux 6.17. В окне слияния Linux 6.17 всего два исправления для exFAT, но они очень важны. Первое – исправление для правильной работы с флагом fdatasync, чтобы исправить регресс производительности, ранее представленный для этого драйвера файловой системы exFAT в ядре Linux. После исправления проблемы производительность случайной записи на SD-карту удвоилась с 3,5 МБ/с до 7 МБ/с.

«Тест: androbench по умолчанию, используется 64 ГБ sdcard. скорость случайной записи: без этого патча 3,5 МБ/с/с с этим патчем 7 МБ/с. После патча «11a347fb6cef» скорость случайной записи значительно снизилась. Bнтерфейс write_iter() был изменен, и проверьте различия с generic_file_write_iter(), при вызове generic_write_sync() и exfat_file_write_iter() для вызова vfs_fsync_range(), флаг fdatasync неверен, и не позволяет использовать режим fdatasync, из-за чего скорость случайной записи снижается. Поэтому используйте generic_write_sync() вместо vfs_fsync_range()».
- объяснил Чжэнсю Чжан из Unisoc

Другой патч предназначен для устранения ситуации бесконечного цикла, которая может возникнуть из-за повреждения файловой системы на exFAT. Этот патч объясняет ситуации, в которых драйвер exFAT может застрять в бесконечном цикле при повреждении exFAT. Оба исправления теперь объединены для Linux 6.17 и, вероятно, будут перенесены и для предыдущих стабильных серий ядра.