Audio Audio/Peripherie Grundlagenartikel Motherboard Soundkarten System Testberichte

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

Aus gegebenem Anlass hole ich heute einen Artikel nach vorn, der zwar nur knapp ein Jahr alt ist, aber nichtsdestotrotz aktuell wie damals. Mir ist das Interrupt-Problem schon mehrmals aufgefallen, sei es ein komisches Kratzen am SPDIF nach exzessivem Gaming oder aber Schwankungen der GPU-Performance. Deshalb ist ein Check der MSI-Settings auch nach jedem Grafikkartentreiber-Update (bei NVIDIA eigentlich fast immer) und vor jedem Benchmark-Run quasi obligatorisch. Leider wissen das die Wenigsten und beachten diese Umstände auch dementsprechend nicht mit Priorität. Und genau da landen wir wieder beim Artikel vom letzten Jahr…

Denn wenn die Soundkarte aussetzt oder knackt, USB-Geräte nicht oder nur sporadisch funktionieren oder die Performance der Grafikkarte 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.

 

 

 

154 Antworten

Kommentar

Lade neue Kommentare

ipat66

Urgestein

1,322 Kommentare 1,317 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

292 Kommentare 293 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 5 Likes

BlackFireHawk

Veteran

101 Kommentare 106 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 15 Likes

RevAngel

Veteran

120 Kommentare 87 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 2 Likes

TSH-Lightning

Mitglied

70 Kommentare 35 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

Veteran

101 Kommentare 106 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

Urgestein

662 Kommentare 369 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

1

9,965 Kommentare 18,262 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

37 Kommentare 8 Likes

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

Antwort 4 Likes

BlackFireHawk

Veteran

101 Kommentare 106 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

395 Kommentare 136 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

Veteran

233 Kommentare 91 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

59 Kommentare 23 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 1 Like

E
Eribaeri

Veteran

103 Kommentare 45 Likes

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

Antwort Gefällt mir

F
Furda

Urgestein

662 Kommentare 369 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 1 Like

Klicke zum Ausklappem
F
Furda

Urgestein

662 Kommentare 369 Likes

Hab das Tool mal kurz geöffnet, da gibt's 'ne Menge versteckter Settings. Heisst bei mir, wie bei Dir, ohne Bench nix los, und ohne Zeit nix Bench. Werde es aber mal anschauen müssen, bin neugierig...

Antwort Gefällt mir

BlackFireHawk

Veteran

101 Kommentare 106 Likes

Interessant sind die int
Interessant sind die Interrupt settings und die threatplanungs settings für lange und kurze Laufzeiten.
Je mehr Kerne (5950x)desto mehr fällt das ins gewicht

Antwort Gefällt mir

Nulight

Veteran

205 Kommentare 124 Likes

Kurz , sehr geil (y)
Ich habe die 6900XT auf high gesetzt und schon habe ich mein nerviges Blackscreen-Blinken beim Start des PC´s behoben.
(Bios Black / Windows Kreis Black / Willkommen Black)
dann hatte ich auch noch die gleichen fehlenden Haken beim Sound.

View image at the forums


Chic

Antwort Gefällt mir

G
Guest

Guys, in MSI tool after applying the changes you have to reboot computer. MSI tool only writes values to registry, and they take effect namely at boot of Windows and device drivers.

Antwort 7 Likes

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