Najnowsza zmiana w jądrze usuwa resztki konfiguracji, które pozwalały budować wersję x86 bez obsługi TSC. Teraz wsparcie dla tego mechanizmu staje się bezwarunkowe, bo wszystkie nadal obsługiwane procesory x86 mają już tę funkcję.
TSC, czyli Time Stamp Counter, to 64-bitowy rejestr procesora obecny od czasów układów Intel Pentium. Służy do bardzo dokładnego mierzenia upływu czasu i działa szybciej niż timery platformowe, takie jak HPET czy licznik ACPI PM, bo odczyt następuje bezpośrednio z CPU.
Przez lata Linux utrzymywał jednak kod dla procesorów, które nie miały TSC albo nie potrafiły używać go w sposób pewny. Wynikało to z długiego wsparcia dla bardzo starego sprzętu x86, sięgającego jeszcze epoki i486. Z czasem ta zgodność stawała się coraz mniej potrzebna.
WIDEOSztuczna inteligencja wymyka się spod kontroli?
Linux 7.0 zakończył obsługę procesorów Intel 486, a kolejny cykl rozwojowy usunął następne układy blokujące uznanie TSC za powszechnie dostępny. Dzięki temu jądro może dziś zakładać, że procesor x86 ma ten licznik.
Podobny kierunek wcześniej obrał Microsoft. Windows od dawna używał QueryPerformanceCounter jako licznika wysokiej rozdzielczości, a w odpowiednich systemach opierał go na TSC. Jednocześnie firma zachowała możliwość przełączenia się na inny timer, gdy TSC nie spełniał wymagań.
Powód jest prosty: odczyt licznika opartego na TSC zajmuje od dziesiątek do setek cykli procesora, podczas gdy alternatywa oparta na timerze płyty głównej może kosztować ok. 0,8-1,0 mikrosekundy. Dla Linuksa ta zmiana oznacza więc nie tyle nowy wymóg sprzętowy, ile usunięcie jednego z najstarszych fragmentów kodu zgodności.