VT-d
Αναφέρεται επίσης ως VT-d (DMA Remapping)
Το Intel VT-d παρέχει μηχανισμούς directed-I/O, όπως η επαναχαρτογράφηση DMA υπό τον έλεγχο της πλατφόρμας και του λειτουργικού συστήματος. Είναι μια δυνατότητα πλατφόρμας ξεχωριστή από την εικονικοποίηση εκτέλεσης της CPU μέσω του VT-x.
Τι πρέπει να γνωρίζετε
Το Intel VT-d παρέχει μηχανισμούς directed-I/O, όπως η επαναχαρτογράφηση DMA υπό τον έλεγχο της πλατφόρμας και του λειτουργικού συστήματος. Είναι μια δυνατότητα πλατφόρμας ξεχωριστή από την εικονικοποίηση εκτέλεσης της CPU μέσω του VT-x.
Πώς λειτουργεί
Μια μονάδα επαναχαρτογράφησης I/O μεταφράζει και ελέγχει τις συναλλαγές DMA συσκευών χρησιμοποιώντας διαμορφωμένους τομείς (domains) και δομές μετάφρασης. Η επαναχαρτογράφηση διακοπών (interrupt remapping) είναι μια σχετική δυνατότητα με τις δικές της απαιτήσεις. Το firmware περιγράφει το υλικό επαναχαρτογράφησης και τις σχέσεις των συσκευών στο λειτουργικό σύστημα, το οποίο πρέπει να δημιουργήσει τις κατάλληλες χαρτογραφήσεις και την απομόνωση.
Πού είναι χρήσιμο
Ένας hypervisor μπορεί να χρησιμοποιήσει την επαναχαρτογράφηση DMA κατά την ανάθεση μιας κατάλληλης συσκευής σε ένα VM, ενώ ένα λειτουργικό σύστημα μπορεί να τη χρησιμοποιήσει για να περιορίσει την πρόσβαση των συσκευών στη μνήμη. Η τοπολογία των συσκευών, οι ομάδες απομόνωσης, η συμπεριφορά επαναφοράς (reset) και η υποστήριξη προγραμμάτων οδήγησης επηρεάζουν το αν μια συγκεκριμένη ανάθεση είναι ασφαλής και υποστηριζόμενη.
Πώς να ελέγξετε την υποστήριξη και την ενεργοποίηση
Ελέγξτε την υποστήριξη VT-d και τη διαμόρφωση firmware του κατασκευαστή του συστήματος, την περιγραφή DMAR της πλατφόρμας και την κατάσταση IOMMU του λειτουργικού συστήματος/hypervisor. Επαληθεύστε τις απαιτήσεις απομόνωσης και επαναφοράς της συγκεκριμένης συσκευής πριν από τη μεταβίβαση (passthrough).
Μια εικονικοποιημένη ανάπτυξη έχει διάφορα επίπεδα: φυσική δυνατότητα, άδεια υλικολογισμικού, τον ενεργό host hypervisor, τις εκτεθειμένες δυνατότητες guest και την υποστήριξη του guest λειτουργικού συστήματος. Ελέγξτε το επίπεδο όπου εκτελείται πραγματικά η λειτουργία, συμπεριλαμβανομένης της ένθετης εικονικοποίησης όταν είναι σχετικό.
Τι δεν καθορίζει η δυνατότητα
Ένα πεδίο VT-d δεν αποδεικνύει ότι κάθε συσκευή PCIe μπορεί να ανατεθεί ανεξάρτητα, ότι οι πίνακες firmware είναι σωστοί ή ότι η προστασία DMA είναι ενεργοποιημένη. Το VT-x και το EPT δεν υποκαθιστούν το VT-d. Η αλλαγή της πολιτικής αποθήκευσης ή επαναχαρτογράφησης μπορεί να επηρεάσει τις ενεργές συσκευές.
Συμβατότητα και απόδοση στην πράξη
Η εκτέλεση CPU, η μετάφραση μνήμης guest και η επαναχαρτογράφηση DMA συσκευών είναι ξεχωριστές δυνατότητες. Μην συμπεραίνετε δυνατότητα passthrough ή απομόνωσης από ένα μόνο πεδίο εικονικοποίησης. Χρησιμοποιήστε τα υποστηριζόμενα διαγνωστικά του hypervisor και τις ακριβείς απαιτήσεις πλατφόρμας/συσκευής.
Μια πρακτική λίστα ελέγχου επαλήθευσης
- Καταγράψτε το ακριβές μοντέλο επεξεργαστή ή πλατφόρμας και τις εμπλεκόμενες εκδόσεις εφαρμογής, λειτουργικού συστήματος και περιβάλλοντος εκτέλεσης (runtime). Διατηρήστε τη διατύπωση του πραγματικού σφάλματος ή της απαίτησης.
- Ελέγξτε τις αναφορές του κατασκευαστή για το συγκεκριμένο μοντέλο και, στη συνέχεια, εξετάστε την πραγματική δυνατότητα και την ενεργοποιημένη κατάσταση στο περιβάλλον όπου εκτελείται το πρόγραμμα.
- Συγκρίνετε κάθε απαίτηση του επιλεγμένου εκτελέσιμου αρχείου (binary) ή του backend. Μια δυνατότητα με παρόμοιο όνομα, ένα ψευδώνυμο ή μια ευρεία ετικέτα τεχνολογίας δεν επαρκεί.
- Επιβεβαιώστε ότι η εφαρμογή επέλεξε την προβλεπόμενη υλοποίηση. Χρησιμοποιήστε τα τεκμηριωμένα διαγνωστικά της και μια υποστηριζόμενη εναλλακτική λύση (fallback) όταν δεν πληρούνται οι απαιτήσεις.
- Κάντε μία υποστηριζόμενη αλλαγή τη φορά και επαναλάβετε τον ίδιο φόρτο εργασίας. Διατηρήστε διαθέσιμη την αρχική διαμόρφωση και τη διαδρομή επαναφοράς.
Εάν η δυνατότητα αναφέρεται αλλά το λογισμικό δεν μπορεί να τη χρησιμοποιήσει
Ξεκινήστε με το ακριβές στοιχείο που αποτυγχάνει. Μια βάση δεδομένων υλικού περιγράφει την καταγεγραμμένη δυνατότητα· το λειτουργικό σύστημα ή ο hypervisor μπορεί να εκθέσει ένα διαφορετικό πραγματικό περιβάλλον. Ένα σφάλμα μη έγκυρης εντολής (illegal-instruction error) απαιτεί επίσης διερεύνηση της πραγματικής εντολής που προκάλεσε το σφάλμα και της έκδοσης του εκτελέσιμου (binary build), καθώς η αλλοίωση δεδομένων ή μια άσχετη μη υποστηριζόμενη εντολή μπορεί να προκαλέσει παρόμοιο σύμπτωμα.
Εγκαταστήστε την έκδοση της εφαρμογής, του προγράμματος οδήγησης ή του περιβάλλοντος εκτέλεσης που υποστηρίζεται για την ακριβή πλατφόρμα και χρησιμοποιήστε τη βασική γραμμή (baseline) ή την εναλλακτική έκδοση (fallback build) που τεκμηριώνει ο κατασκευαστής, εάν χρειάζεται. Μια ενημέρωση λογισμικού δεν μπορεί να δημιουργήσει μια εντολή που λείπει από τον επεξεργαστή. Οι αλλαγές στο υλικολογισμικό (firmware) και στην πολιτική ασφαλείας θα πρέπει να ακολουθούν τη διαδικασία του κατασκευαστή του συστήματος και ένα σχέδιο επαναφοράς και όχι μια γενική συνταγή βελτιστοποίησης.
Πηγές και πεδίο εφαρμογής αυτής της επεξήγησης
Intel Virtualization Technology for Directed I/O Architecture Specification · Linux kernel: VFIO device access and IOMMU groups
Αυτές οι αναφορές καθορίζουν την αρχιτεκτονική συμπεριφορά και τις απαιτήσεις λογισμικού. Δεν επαληθεύουν ανεξάρτητα κάθε τιμή δυνατότητας σε μια συνδεδεμένη σελίδα μοντέλου υλικού. Για την υποστήριξη του μοντέλου, χρησιμοποιήστε τα στοιχεία τεκμηρίωσης του κατασκευαστή αυτής της σελίδας και ελέγξτε την πραγματική διαμόρφωση του συστήματος. Αυτό το άρθρο δεν παρέχει ημερομηνία δοκιμής επιδόσεων (benchmark), πιστοποίησης ή ανεξάρτητης αξιολόγησης.
Πηγές και επαλήθευση
Συντακτική ιδιοκτησία: Feex. Δεν έχει καταγραφεί ημερομηνία ανεξάρτητης αναθεώρησης. Πώς ερευνούμε.
- Intel Virtualization Technology for Directed I/O Architecture Specification · Αρχιτεκτονική επαναχαρτογράφησης DMA, τομείς μετάφρασης, επαναχαρτογράφηση διακοπών και δομές αναφοράς υλικολογισμικού. Η υποστήριξη της πλατφόρμας πρέπει να διαπιστώνεται ξεχωριστά.
- Linux kernel: VFIO device access and IOMMU groups · Εξηγεί τις ομάδες απομόνωσης, την κυριότητα συσκευών και τους περιορισμούς που σχετίζονται με το passthrough. Δεν αποτελεί λίστα συμβατότητας για συγκεκριμένη μητρική πλακέτα.
Ήταν χρήσιμο αυτό το άρθρο;
Ένα ναι ή όχι είναι αρκετό. Επιλέξτε έναν λόγο εάν θέλετε ή προσθέστε μια σύντομη σημείωση.
Ευχαριστούμε. Αυτό μας βοηθά να βελτιώσουμε αυτή τη σελίδα.