Нов код за Linux ядрото подобрява скоростта при трансфера на файлове при FAT близо 8 пъти.
Дни преди затварянето на merge прозореца на Linux ядрото и излизането на първото RC издание от серията 5.7, разработчикът OGAWA Hirofumi изпрати нов код за подобряване скоростта на трансфер на файловете при FAT файловата система.
Новите промени подобряват readahead представянето на кода, отговарящ за FAT16/FAT32 трансфера в Linux ядрото. Readahead е системно извикване на Linux ядрото, която събира предварително данни и ги залага в пейдж кеш, което води до повишаване на скоростта на трансфериране на данни. Това се получава, защото данните биват четени от физическата памет, а не от носителя.
Към момента повечето съвременни устройства вече използват по-модерната exFAT файлова система, чиято официална поддръжка беше имплементирана в Linux Kernel 5.4, а след това в промените за версия 5.7 беше включен и подобрен драйвър. Въпреки това обаче при някои случаи все още се използва FAT файлова система.
Например дигиталните камери използват FAT, а също така и EFI дяловете при модерните компютърни системи. Сега новите промени в кода на Linux ядрото подобряват значително трансфера. Hirofumi обяснява, че досегашната имплементация има някои проблеми, така че тя не работи много добре при някои случаи и това е наложило нейното подобряване.
Промените не само повишават скоростта на трансфера почти 8 пъти, но и дават възможност за настройване на размера на readahead посредством използването на bdi->ra_pages. Hyeongseok Kim е ревизирал промените и е установил значително подобрение на скоростта на трансфериране на данни. Той е използвал бавен 2TB USB хард диск, където е отчел стойности преди промените от 383.18 секунди до 51.03 след тях.
Въпреки че промените са били изпратени преди официалното затваряне на merge прозореца, те едва ли ще намерят място при Linux Kernel 5.7. Най-вероятно новите промени, подобряващи трансфера при FAT файловите системи ще бъде наличен при версия 5.8.
Повече подробности можете да намерите тук.