Audio Audio/Peripherie Grundlagenartikel Motherboard Soundkarten System Testberichte

„Unerklärliche“ Interrupt-Probleme lösen: Message-Signaled Interrupts (MSI) gegen Soundaussetzer, USB-Probleme & Co. | Praxis

Wenn die Soundkarte aussetzt oder knackt, USB-Geräte nicht oder nur sporadisch funktionieren oder die Performance einbricht, dann sind meist Interrupt-Konflikte die Ursache. Das ist etwas, das man als Windows-User aus purer Bequemlichkeit natürlich schon längst ausgeblendet hat. Dabei ist das Problem so alt wie die PCs und es hat sich mittlerweile nur unter die bunte Betriebssystemoberfläche verlagert. Solange alles wie angedacht funktioniert, wird man davon auch nichts mitbekommen, aber wehe, es läuft mal was schief. Dann ist guter Rat teuer und man sucht krampfhaft nach Lösungen.

Mein Dank geht in diesem Zusammenhang an unser Community-Mitglied FcryCola, der mich auf seine Lösung und den passenden Beiträge auf Reddit aufmerksam gemacht und auch ordentlich Vorarbeit geleistet hat. Seine Soundkarte tut es nun wieder, ich habe einen Artikel mehr in meiner Praxis-Sammlung und Ihr könnt natürlich von beidem profitieren. Die Lösung liegt eigentlich näher als man denkt und doch so fern. Das liegt allerdings auch daran, dass Windows vorgibt, alles elegant allein lösen zu können. Nur manchmal müsst Ihr dann doch noch selbst ran. Die nötigen Handwerkszeuge und das nötige Grundlagenwissen gibt es heute gratis dazu.

Interrupt ist nicht gleich Interrupt

Keine Angst, ich werde Euch jetzt nicht mit langweiliger Theorie erschlagen, aber ein paar kleine, heruntergebrochene Puzzlesteinchen solltet Ihr Euch dann doch merken. Deshalb fragen wir uns zunächst, was so ein Interrupt (IRQ) ist und wozu man ihn braucht. Grob gesprochen, ist so ein Interrupt eine kurzfristige Unterbrechung der normalen Programmausführung, um einen kurzen und zeitkritischen Vorgang abzuarbeiten (Unterbrechungsanforderung). Das Ganze funktioniert meist asynchron und kann im schlimmsten Fall auch den gesamten Ablauf nachhaltig, also bemerkbar, stören. Wenn ein Gerät bedient werden möchte, kann es so eine Unterbrechungs-Anforderung jederzeit auslösen. Nur ist es eben so, wie im wahren Leben: Wenn alle durcheinanderquatschen, gewinnt meist der, der als Erster oder am lautesten schreit, während andere einfach im Geschrei untergehen oder sich hinten anstellen müssen. Ordnung muss also sein, aber wie?

Gemeinsam genutzte Interrupts sind jetzt ja nichts anderes als das gerade erwähnte Durcheinanderschreien. Daraus resultieren im schlimmsten Fall echte Aussetzer, eine verringerte Stabilität oder zumindest hohe Interrupt-Latenzzeiten, die such sehr negativ auf die Systemperformance auswirken können. Als Ursache kann man die begrenzten Anzahl von physischen Interrupt-Leitungen auf einem Computer ausmachen, wo sich viele Geräte in eine gemeinsam genutzte IRQ-Leitung reinteilen müssen. Sicher wäre es schon, wenn wenn jedes Gerät (wie früher) seinen eigenen Interrupt hätte und es immer eindeutig wäre, von welchem Gerät sie stammen.

Eine Lösung für all diese Probleme ist ein neuer Interrupt-Mechanismus.  Geräte für Anschlüsse und Busse vor PCI 2.2 erzeugen leitungsbasierte Interrupts (LBI). Ein Gerät erzeugt die Unterbrechung, indem es ein elektrisches Signal an einen speziellen Pin sendet, der als Unterbrechungsleitung bekannt ist. Alle Windows-Versionen vor Windows Vista unterstützen nur leitungsbasierte Interrupts. Ab PCI 2.2 können (und sollten!) PCI-Geräte jedoch auch nachrichtlich signalisierte Interrupts erzeugen. Hierbei handelt es sich um die so genannten Message-Signaled Interrupts (MSI). Ein Gerät erzeugt einen nachrichtlich signalisierten Interrupt, indem es einen Datenwert an eine bestimmte Adresse schreibt.  Aktuelle Windows-Versionen unterstützen LBI und MSI gelichermaßen, was natürlich zur Problemen führen kann.

Da beim MSI die Kommunikation nur auf einem Speicherwert basiert und der Inhalt mit der Unterbrechung geliefert wird, entfällt der Bedarf an IRQ-Leitungen (so dass die Gesamtsystemgrenze für MSIs der Anzahl der Unterbrechungsvektoren, nicht der IRQ-Leitungen, entspricht), ebenso wie der Bedarf an einer Treiber-ISR zur Abfrage des Geräts nach Daten im Zusammenhang mit der Unterbrechung, was die Latenzzeit verringert. Allerdings gab es auch hier aufgrund der hohen Informationsfülle wieder Flaschenhälse, so dass mit PCIe 3.0  dann MSI-X eingeführt wurde. Dies bietet Unterstützung für 32-Bit-Nachrichten (statt 16-Bit), maximal 2048 verschiedene Nachrichten (statt nur 32) und, was noch wichtiger ist, die Möglichkeit, für jede der MSI-Nutzdaten eine andere Adresse zu verwenden (die dynamisch bestimmt werden kann), was die Interrupt Zustellung verbessert.

Doch genug der Theorie, das war sicher für die meisten schon viel zu viel. Aber wir merken und bitte einmal, dass LBI und MSI miteinander konkurrieren und nicht gemischt auf eine gemeinsame Leitung (PCI-Bus) gehören. Das sind zwar Binsenweisheiten, aber wer überprüft das schon? Und genau jetzt kommt auch wieder unser User FcryCola ins Spiel, der sich nach meinem Test die EVGA nuAudio Soundkarte gekauft hatte und plötzlich vor einem scheinbar unlösbaren Problem stand, weil die erhöhte Grafikkartenlast zu fiesen Soundaussetzern führte.

MSI-Tool

Die zum Anzeigen der Interrupt-Modi benötigte Software habe ich einmal sicherheitshalber auf unserem Server gehostet, denn bei File-Hostern weiß man immer nie, wie lange solche Links dann wirklich funktionieren. Das in der ZIP-Datei enthaltene kleine Programm benötigt keine extra Installation, muss aber explizit als Administrator ausgeführt werden. Aber das mit dem Rechtsklick und „Als Administrator ausführen“ aus dem Popup-Menü kennt Ihr ja sicher schon.

 

 

Latency Monitor

Diesen Download habe ich auf die Hersteller-Seite verlinkt, wo Ihr auch weiterführende Informationen findet.

 

 

 

109 Antworten

Kommentar

Lade neue Kommentare

ipat66

Urgestein

522 Kommentare 433 Likes

Ja,diese Probleme gibt es immer wieder.
Sehr nervig.
Sobald mich dieses „Lane-sharing Problem“ mal wieder nerven sollte,werde ich dieses Tool ausprobieren.
Gut zu wissen,dass man beim nächsten Mal (und es wird ein nächstes Mal geben!),
etwas in der Hinterhand zu haben.
Danke Igor für diesen wertvollen Tipp...:)

Antwort 3 Likes

konkretor

Veteran

228 Kommentare 190 Likes

Auf Seite 2 noch ein Typo

einfach lösen ließ lösen ließ.

Ach was habe ich mich früher rum geärgert mit den 15 IRQ auf den Boards.
Das ist etwas was ich nicht vermisse.

Antwort 4 Likes

BlackFireHawk

Mitglied

74 Kommentare 76 Likes

Hinzukommt der Umstand das Windows alle Interrupts standartmäßig auf Core0 (bzw dem stärksten Core mit CPPC enabled) ausführt und das ganze auf 5% maximaler Prozessorleistung kappt.

Mit dem Tool powersettingexplorer (ebenfalls von mnk1969 aus dem Guru3D Forum)
Kann man nun das Interrupt Routing von windows beeinflussen
Freier Kern.. nicht geparkter Kern mit verzögern.. alles auf core0 leiten (Standart) und diese 5% Sperre aufheben.

Mit dem Tool kann man auch noch n paar andere Sachen ändern was zb das thread sheduling angeht.
Zb das priorisiert Leistungsstarke (oder besonders effiziente stromsparende) cores bevorzugt werden..oder ob die Last wenn möglich über viele cores verteilt wird.
Das ganze hat massive Auswirkungen auf Minfps und AVG-fps und kann diese ordentlich boosten

Antwort 11 Likes

Klicke zum Ausklappem
R
RevAngel

Mitglied

48 Kommentare 33 Likes

Wow, klasse Artikel! Danke Igor!
Was konnte man sich früher mit den hardware interrupts dusselig suchen, wenn es um Fehler ging... Der Artikel zeigt, das man auch mit "software" gesteuerten interrupts scheinbar nicht alles "gut" ist. Und das Thema offensichtlich mindestens so komplex ist wie früher. Danke für diesen Artikel - Ich hoffe viele Nutzer mit dem Problem finden dadurch Hilfe und finden den Artikel auch beim Suchen in ihrer bevorzugten Suchmaschine.

Antwort Gefällt mir

TSH-Lightning

Mitglied

59 Kommentare 30 Likes

Könnte man grundsätzlich sagen, dass alle Komponenten die "MSI" unterstützen auch "MSI" nutzen sollten oder sollte man das teilweise so lassen wie es ist, also auf "LBI"?

Bei mir sind es diese 2, die "LBI" nutzen obwohl sie "MSI" untersützen:

High Definition Audio-Controller
Intel(R) Dynamic Tuning Processor Participant

Antwort 1 Like

BlackFireHawk

Mitglied

74 Kommentare 76 Likes

Wobei das ganze kein Windows Problem per se ist.. sondern wie die Hardware Hersteller ihre Treiber schreiben.
Nvidia zb hat jahrelang den MSI Mode nur bei den quadros genutzt.. Default waren die GeForce Karten alle IRQ

Antwort Gefällt mir

F
Furda

Veteran

176 Kommentare 89 Likes

Danke für den Artikel, gefühlt seit Assembler Programmierung in den 90er Jahren nicht mehr explizit mit Interrupts in Kontakt gekommen, aber jetzt ein Grund, mal wieder genauer hinzuschauen.

Die Tools werden ausprobiert und kommen definitiv in die Sammlung, auch das von @BlackFireHawk genannte!

Antwort 1 Like

Igor Wallossek

Format©

7,217 Kommentare 11,855 Likes

Schau mal nach den Latenzen! Bei mir war HD Audio deshalb der lahmste Gaul auf der Strecke, was vor allem in Spielen immer mal zu Knacksern führte. MSI(-X) schadet nie. Die GeForce sind bei mir alle per Default im MSI-Modus, auch die von Asus :P

Antwort 1 Like

CrystalyseR

Mitglied

28 Kommentare 7 Likes

Du hast nicht zufällig lust dazu einen kleinen Artikel zu schreiben? :love:🥰😘

Antwort 4 Likes

BlackFireHawk

Mitglied

74 Kommentare 76 Likes

Kann ich bei Gelegenheit Mal machen.. Problem ist halt das ich momentan durch die Schichten immer platt bin..
Und ich dafür auch erstmal alles Benchen müsste..

Da fehlt es dann an einer gewissen professionellität.. wo sich nacher wieder jeder das Maul zerreist

Antwort Gefällt mir

M
McFly_76

Veteran

368 Kommentare 117 Likes

Es kann auch dazu führen wie mit meiner Soundkarte ( PowerColor HDX ) dass die Hardware nicht mehr erkannt wird ( Relais schaltet nicht sauber ) wenn "MSI" erzwungen wird.
Aber bei mir ist der "Übertäter" NTOSKRNL.EXE ( danke MS ) :)

Antwort Gefällt mir

DrDre

Mitglied

54 Kommentare 9 Likes

Sehr interessant (y)
War das bei Win95 und XP noch eine Bastelei. Win95 wollte nach etlichen Versuchen manchmal neuinstalliert werden :rolleyes:Schaue mir das bei Gelegenheit mal an.

Antwort Gefällt mir

McDexter

Mitglied

51 Kommentare 19 Likes

Habe ewig nicht mehr an Interrupt (IRQ) gedacht.
Wie DrDre schreibt, war damit meine letzte Berührung bei Win95 - Win98 wo es ab und zu einen Ressourcenkonflikt (Gerätekonflikte) kam.

Danke für denn Artikel.

Antwort Gefällt mir

E
Eribaeri

Mitglied

16 Kommentare 4 Likes

Instruktionen unklar. Kleiner Finger steckt jetzt im USB-Port fest.

Antwort Gefällt mir

F
Furda

Veteran

176 Kommentare 89 Likes

Ich hab' mir die beiden Tools nun mal angeschaut.

"MSI mode utility":
Funktioniert bei mir *nicht* in Echtzeit (Windows 10 19044). Musste neu starten, damit neue IRQs vergeben werden (MSI IRQs sollten negativ sein). Vorher- / Nachher-Test mit LatencyMon, keine Verbesserung beim Audio Driver (den ich als "MSI" konfiguriert habe), erst nach PC neu starten. "Apply" oben rechts wurde natürlich gedrückt.

"LatencyMon":
Empfehlenswert ist den "Stats" Tab genau zu studieren. Am besten kopieren und in eine Textdatei speichern, zum Vorher/Nachher Vergleich (kann man mit WinMerge gut machen, Unterschiede in den Textdateien nebeneinander vergleichen). Hier in den Stats sieht man schön wo es Verbesserungen gegeben hat, absolut, im Durchschnitt, bei welchen Treiber und Prozessen. Wenn hier der Audio Treiber (in meinem Fall HDAudBus.sys) besser abschneidet, können Audio Probleme verbessert worden sein. Schaut auf alle Fälle genau hin, welcher Treiber (.sys) und welche Application (.exe) die höchste Latenzen haben. Bei mir taucht da Microsoft Defender (AntiVirus) auf. Ebenso hat Nvidia hier absolut die Nase vorn, im negativen Sinne, die mit Abstand höchsten Latenzen.

TLDR:
Gute Tools, schaut aber genau hin, vorher/nachher, was wirklich betroffen ist, und ob wirklich eine hörbare Verbesserung (hoffentlich) stattfindet. Danke für den Artikel, interessante Einblicke.
Mein Audio Driver war nicht MSI, hatte bisher jedoch das Glück, nie irgendwelche Probleme zu haben resp. zu hören. Nachdem er auf MSI gesetzt wurde (+ reboot), wurden dessen Latenzen sehr verbessert. Ich lass es nun mal bei MSI stehen und "sehe" was in Zukunft so zu "hören" ist...

Antwort Gefällt mir

Klicke zum Ausklappem

Danke für die Spende



Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!

Hier erfährst Du, wie: Hier spenden.

Hier kannst Du per PayPal spenden.

About the author

Igor Wallossek

Chefredakteur und Namensgeber von igor'sLAB als inhaltlichem Nachfolger von Tom's Hardware Deutschland, deren Lizenz im Juni 2019 zurückgegeben wurde, um den qualitativen Ansprüchen der Webinhalte und Herausforderungen der neuen Medien wie z.B. YouTube mit einem eigenen Kanal besser gerecht werden zu können.

Computer-Nerd seit 1983, Audio-Freak seit 1979 und seit über 50 Jahren so ziemlich offen für alles, was einen Stecker oder einen Akku hat.

Folge Igor auf:
YouTube   Facebook    Instagram Twitter

Werbung

Werbung