Βρέθηκε ξεχασμένη ενημέρωση κώδικα στον πυρήνα Linux που επηρεάζει την απόδοση της CPU της AMD

Ο πυρήνας Linux 6.0, που αναμένεται να κυκλοφορήσει την ερχόμενη Δευτέρα, περιλαμβάνει μια αλλαγή που αντιμετωπίζει ζητήματα απόδοσης με συστήματα που τρέχουν σε επεξεργαστές AMD Zen. Η πηγή της πτώσης της απόδοσης βρέθηκε ότι ήταν κώδικας που προστέθηκε πριν από 20 χρόνια για να επιλύσει ένα πρόβλημα υλικού σε ορισμένα chipset. Το πρόβλημα υλικού έχει επιδιορθωθεί εδώ και καιρό και δεν εμφανίζεται στα τρέχοντα chipset, αλλά η παλιά λύση για το πρόβλημα έχει ξεχαστεί και έχει γίνει πηγή υποβάθμισης της απόδοσης σε συστήματα που βασίζονται σε σύγχρονους επεξεργαστές AMD. Τα νέα συστήματα σε επεξεργαστές Intel δεν επηρεάζονται από την παλιά λύση, καθώς έχουν πρόσβαση στο ACPI χρησιμοποιώντας ένα ξεχωριστό πρόγραμμα οδήγησης intel_idle και όχι το γενικό πρόγραμμα οδήγησης processor_idle.

Μια λύση προστέθηκε στον πυρήνα τον Μάρτιο του 2002 για να αποκλείσει την εμφάνιση ενός σφάλματος στα chipset που σχετίζεται με τη μη σωστή ρύθμιση της κατάστασης αδράνειας λόγω καθυστέρησης στην επεξεργασία του σήματος STPCLK#. Για να επιλύσετε το πρόβλημα, η υλοποίηση ACPI πρόσθεσε μια πρόσθετη εντολή WAIT, η οποία επιβραδύνει τον επεξεργαστή, ώστε το chipset να έχει χρόνο να μεταβεί σε κατάσταση αδράνειας. Κατά τη δημιουργία προφίλ χρησιμοποιώντας οδηγίες IBS (Instruction-Based Sampling) σε επεξεργαστές AMD Zen3, ανακαλύφθηκε ότι ο επεξεργαστής αφιερώνει σημαντικό χρόνο στην εκτέλεση αποσπασμάτων, γεγονός που οδηγεί σε εσφαλμένη ερμηνεία της κατάστασης φόρτωσης του επεξεργαστή και στη ρύθμιση βαθύτερων λειτουργιών ύπνου (C- State) από την cpuidle του επεξεργαστή.

Αυτή η συμπεριφορά αντικατοπτρίζεται στη μειωμένη απόδοση υπό φόρτους εργασίας που συχνά εναλλάσσονται μεταξύ αδράνειας και καταστάσεων απασχολήσεως. Για παράδειγμα, όταν χρησιμοποιείτε μια ενημερωμένη έκδοση κώδικα που απενεργοποιεί τον ελιγμό παράκαμψης, οι μέσοι όροι δοκιμής tbench αυξάνονται από 32191 MB/s σε 33805 MB/s.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο