Η χρονιά των προβλημάτων
Αυτή την χρονιά έχουμε μάθει να ζούμε με τα σημαντικά προβλήματα που έχουν οι επεξεργαστές, κυρίως της Intel, λόγω την σχεδίασης τους. Διαβάζουμε πράγματα σαν το παρακάτω:
Τα προβλήματα αυτά αφορούν τον επεξεργαστή και όχι το λειτουργικό. Αλλά σε συνεργασία με την Intel η αντιμετώπιση είναι άμεση και έχουμε νέους πυρήνες και νέο microcode. Αλλά λόγω της φύσης του προβλήματος λίγα πράγματα μπορούν να γίνουν χωρίς να μειωθούν οι επιδόσεις του επεξεργαστή.
Τι προβλήματα έχει ο επεξεργαστής μου ;
Πρέπει να έχουμε τον τελευταίο πυρήνα να είμαστε σίγουροι πως ξέρει για τα τελευταία προβλήματα. Θα δούμε την λίστα των προβλημάτων στον κατάλογο /sys/devices/system/cpu/vulnerabilities/
και με ένα ls μπορούμε να δούμε για ποιες γνωρίζει ο πυρήνας
ls /sys/devices/system/cpu/vulnerabilities/
Για να ελέγξουμε για την ευπάθεια mds
για παράδειγμα θα δώσουμε την εντολή
cat /sys/devices/system/cpu/vulnerabilities/mds
Θα δούμε κάτι από τα παρακάτω
1. Not affected
2. Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
3. Mitigation: Clear CPU buffers; SMT vulnerable
4. Mitigation: Clear CPU buffers; SMT disabled
5. Mitigation: Clear CPU buffers; SMT Host state unknown
Στην πρώτη περίπτωση όλα καλά ο επεξεργαστής δεν έχει το πρόβλημα. Στην δεύτερη περίπτωση υπάρχει πρόβλημα (Vulnerable
). Ο πυρήνας έχει ενημερωθεί αλλά όχι ο microcode της CPU. Στις άλλες περιπτώσεις έχει εφαρμοστεί η διόρθωση (Mitigation
). Αλλά μπορεί να υπάρχει ακόμα πρόβλημα στο SMT. Υπάρχουν και άλλες περιπτώσεις ποιο σπάνιες και η πλήρη λίστα μπορεί να βρεθεί εδώ.
Μπορούμε να έχουμε μια αναφορά για την κατάσταση όλων των προβλημάτων με την εντολή
tail -n +1 /sys/devices/system/cpu/vulnerabilities/*
Στην εικόνα είναι η κατάσταση του υπολογιστή που γράφω το άρθρο. Θα πρέπει να απενεργοποιήσω το SMT για πλήρη ασφάλεια. Η intel έδωσε κάποια στοιχεία για επεξεργαστές Xeon και δείχνει πως δεν υπάρχει “σημαντική” απώλεια απόδοσης, αλλά δεν υπάρχουν ακόμα πολλά στοιχεία για όλους τους επεξεργαστές. Στο επόμενο reboot θα το απενεργοποιήσω.
Απενεργοποίηση των mitigation
Πριν να ξεκαθαρίσω πως δεν θέλεις να το κάνεις αυτό. Να το ξαναπώ: δεν θέλεις να το κάνεις αυτό. Με άλλα λόγια, απλά μην το κάνεις. Αν το κάνεις βεβαιώσου πως ο υπολογιστής είναι σε ένα πλήρες ελεγχόμενο περιβάλλον, ιδανικά χωρίς σύνδεση στο δίκτυο. Αν σε ένα τέτοιο υπολογιστή δώσεις κωδικούς της τράπεζας σου, τότε κάνεις ένα χοντρό λάθος (Αν και μπορείς πάντα να μου στείλεις την IP του να σε βοηθήσω σε ένα εσωτερικό έλεγχο )
Οι τελευταίοι πυρήνες υποστηρίζουν απενεργοποίηση των mitigation. Αυτό το κάνεις με παραμέτρους πυρήνα, μέσω του grub. Θα πρέπει να δώσεις
mitigations=off
και δεν θα εφαρμοστεί καμία διόρθωση. Αλήθεια σου είπα να μην το κάνεις αυτό ή το ξέχασα; Μπορείς να είσαι και ποιο επιλεκτικός κρατώντας κάποιες για παράδειγμα
mitigations=mitigations=auto,nosmt
ή ακόμα να ρυθμίσεις συγκεκριμένα κάθε μια από αυτές. Για παράδειγμα δες την παράμετρο mds
στην τεκμηρίωση των παραμέτρων του πυρήνα.
Η πλήρη λίστα των παραμέτρων του πυρήνα μπορεί να βρεθεί εδώ
https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html