dc.contributor.author | Δημακοπούλου, Μαρία | el |
dc.contributor.author | Dimakopoulou, Maria | el |
dc.date.accessioned | 2014-10-27T09:38:00Z | |
dc.date.available | 2014-10-27T09:38:00Z | |
dc.date.issued | 2014-10-27 | |
dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/39378 | |
dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.5508 | |
dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
dc.subject | performance monitoring, hardware counters, Linux kernel, PMU, Hyper-Threading, perf_events, scheduling optimization | en |
dc.subject | παρακολούθηση επίδοσεων, μετρητές υλικού, χρονοπρογραμματισμός συμβάντων, πυρήνας του Linux | el |
dc.title | Improving Reliability & Efficiency Of Performance Monitoring In Linux | en |
dc.contributor.department | Τομέας Πληροφορικής - Εργαστήριο Συστημάτων Υπολογιστών | el |
heal.type | bachelorThesis | |
heal.generalDescription | Η εργασία έχει βραβευθεί από την Intel και τη Google. | el |
heal.generalDescription | This thesis has received honorary awards from Intel and Google. | en |
heal.classification | Computer Systems | en |
heal.classification | Συστήματα Υπολογιστών | el |
heal.language | en | |
heal.access | free | |
heal.recordProvider | ntua | el |
heal.publicationDate | 2014-06-10 | |
heal.abstract | Processor hardware performance counters have improved in quality and features in recent years. At the same time, the performance monitoring support in Linux has been significantly revamped with the development of the perf_events subsystem. Those factors concur in making performance monitoring a more common practice among developers. However, no performance analysis is possible without reliable hardware counter data. In this thesis, we focus on a published correctness erratum in the performance monitoring unit of recent Intel processors when Hyper-Threading is enabled. This erratum causes cross hyper-thread hardware counter corruption and may produce unreliable results. We propose a cache-coherence style protocol that we implement in the Linux kernel to circumvent the issue by introducing cross hyper-thread dynamic event scheduling. We also introduce an event scheduling algorithm that achieves the optimal scheduling of events onto hardware counters at all times. The proposed optimizations do not require any user level changes and leverage the internal design of the perf_events subsystem. The source code has been posted to the upstream Linux kernel and our contribution has received honorary awards from Intel and Google. | en |
heal.abstract | Κατά τα τελευταία έτη, οι μετρητές επιδόσεων υλικού στους επεξεργαστές έχουν βελτιωθεί τόσο σε ποιότητα, όσο και σε χαρακτηριστικά. Ταυτόχρονα, η υποστήριξη παρακολούθησης επιδόσεων (performance monitoring) στο Linux έχει ανανεωθεί σημαντικά χάρη στην ανάπτυξη του υποσυστήματος perf_events. Αυτοί οι παράγοντες έχουν καταστήσει την παρακολούθηση επιδόσεων μια πιο κοινή πρακτική για τους προγραμματιστές. Ωστόσο, χωρίς αξιόπιστους μετρητές δεδομένων υλικού η ανάλυση επιδόσεων δεν είναι δυνατή. Σε αυτή την εργασία, εστιάζουμε σε ένα δημοσιευμένο σφάλμα ορθότητας μετρήσεων στην μονάδα παρακολούθησης επιδόσεων (PMU) των πρόσφατων επεξεργαστών της Intel που συμβαίνει όταν η τεχνολογία Υπερ-Νηματισμού (Hyper-Threading) είναι ενεργοποιημένη. Αυτό το σφάλμα, μπορεί να προκαλέσει αλλοίωση των δεδομένων στους μετρητές υλικού μεταξύ των υπερ-νημάτων (hyper-threads), οδηγώντας έτσι σε αναξιόπιστα αποτελέσματα. Προκειμένου να παρακάμψουμε αυτό το πρόβλημα, προτείνουμε ένα πρωτόκολλο παρόμοιο με πρωτόκολλα συνάφειας μνημών cache (cache-coherence), το οποίο υλοποιούμε στον πυρήνα του Linux. Η λύση μας στηρίζεται στον προγραμματισμό των συμβάντων υλικού στους μετρητές επίδοσης κατά δυναμικό τρόπο, βάσει της κατάστασης των υπερ-νημάτων. Παρουσιάζουμε επίσης έναν αλγόριθμο που επιτυγχάνει πάντοτε βέλτιστο χρονοπρογραμματισμό των συμβάντων στους μετρητές υλικού. Οι βελτιστοποιήσεις που προτείνουμε δεν απαιτούν αλλαγές σε επίπεδο χρήστη και αξιοποιούν την εσωτερική σχεδίαση του υποσυστήματος perf_events. Ο πηγαίος κώδικας που αναπτύχθηκε έχει προσφερθεί στον πυρήνα του Linux και η συνεισφορά μας έχει βραβευθεί από την Intel και τη Google. | el |
heal.advisorName | Κοζύρης, Νεκτάριος | el |
heal.committeeMemberName | Σταφυλοπάτης, Ανδρέας | el |
heal.committeeMemberName | Eranian, Stephane | el |
heal.academicPublisher | Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών | el |
heal.academicPublisherID | ntua | |
heal.numberOfPages | 87 | |
heal.fullTextAvailability | true |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: