Audio Audio/Peripherals Basics Motherboard Reviews Soundcards System

Solving “unexplained” interrupt problems: Message-Signaled Interrupts (MSI) against sound dropouts, USB problems & Co. | Practice

If the sound card drops out or cracks, USB devices do not work or only work sporadically or the performance drops, then interrupt conflicts are usually the cause. This is something that Windows users have long since ignored out of sheer convenience, although the problem is as old as PCs and has only shifted under the colorful operating system interface in the meantime. As long as everything works as planned, you won’t notice anything, but if something goes wrong, you will. Then good advice is expensive and one searches frantically for solutions.

My thanks in this context go to our community member FcryCola, who made me aware of his solution and the matching posts on Reddit and also did some proper preparatory work. His sound card now does it again, I have one more article in my practice collection and you can of course benefit from both. The solution is actually closer than you think and yet so far away. However, this is also due to the fact that Windows pretends to be able to solve everything elegantly on its own. Only sometimes you have to do it yourself. The necessary tools of the trade and basic knowledge are available free of charge today.

Not all interrupts are created equal

Don’t worry, I’m not going to bombard you with boring theory, but you should remember a few small, broken-down pieces of the puzzle. Therefore we first ask ourselves what such an interrupt (IRQ) is and why it is needed. Roughly speaking, such an interrupt is a short-term interruption of the normal program execution to process a short and time-critical operation (interrupt request). The whole thing usually works asynchronously and, in the worst case, can also disrupt the entire process in the long term, i.e. noticeably. If a device wants to be served, it can trigger such an interrupt request at any time. But it’s just like in real life: When everyone is chattering away, the winner is usually the one who shouts first or the loudest, while others simply get lost in the shouting or have to get in line. So order must be, but how?

Shared interrupts are now nothing else than the just mentioned shouting. In the worst case, this results in real dropouts, reduced stability or at least high interrupt latency times, which can have a very negative effect on system performance. The reason for this is the limited number of physical interrupt lines on a computer, where many devices have to share a common IRQ line. It would be safe if each device had its own interrupt (as in the past) and it was always clear from which device they originated.

One solution to all these problems is a new interrupt mechanism. devices for ports and buses prior to PCI 2.2 generate line-based interrupts (LBI). A device creates the interrupt by sending an electrical signal to a special pin known as the interrupt line. All Windows versions before Windows Vista support only line-based interrupts. As of PCI 2.2, however, PCI devices can (and should!) also generate message-signaled interrupts. These are the so-called Message-Signaled Interrupts (MSI). A device generates a message-signaled interrupt by writing a data value to a specific address.  Current Windows versions support LBI and MSI equally, which of course can lead to problems.

Since with the MSI, communication is based only on a memory value and the content is delivered with the interrupt, the need for IRQ lines is eliminated (so that the total system limit for MSIs is equal to the number of interrupt vectors, not IRQ lines), as is the need for a driver ISR to poll the device for data related to the interrupt, which reduces latency. However, there were again bottle necks due to the high information abundance, so that MSI-X was then introduced with PCIe 3.0. This provides support for 32-bit messages (instead of 16-bit), a maximum of 2048 different messages (instead of just 32) and, more importantly, the ability to use a different address for each of the MSI payloads (which can be determined dynamically), which improves interrupt delivery.

But enough of the theory, that was surely already much too much for most. But we note please once that LBI and MSI compete with each other and do not belong mixed on a common line (PCI bus). These are truisms, but who checks? And this is exactly where our user FcryCola comes into play again, who bought the EVGA nuAudio sound card after my review and suddenly faced a seemingly unsolvable problem, because the increased graphics card load led to nasty sound dropouts.

MSI tool

The software needed to display the interrupt modes I once hosted on our server just to be on the safe side, because with file hosts you always never know how long such links will really work then. The small program contained in the ZIP file does not require any extra installation, but must be explicitly run as administrator. But you probably already know that with the right click and “Run as administrator” from the popup menu.

 

 

Latency Monitor

I have linked this download to the manufacturer’s page , where you can also find further information.

 

 

 

154 Antworten

Kommentar

Lade neue Kommentare

ipat66

Urgestein

1,353 Kommentare 1,353 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

296 Kommentare 300 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

72 Kommentare 39 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

663 Kommentare 370 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

10,174 Kommentare 18,759 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

239 Kommentare 93 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

60 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

124 Kommentare 48 Likes

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

Antwort Gefällt mir

F
Furda

Urgestein

663 Kommentare 370 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

663 Kommentare 370 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

220 Kommentare 146 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

Editor-in-chief and name-giver of igor'sLAB as the content successor of Tom's Hardware Germany, whose license was returned in June 2019 in order to better meet the qualitative demands of web content and challenges of new media such as YouTube with its own channel.

Computer nerd since 1983, audio freak since 1979 and pretty much open to anything with a plug or battery for over 50 years.

Follow Igor:
YouTube Facebook Instagram Twitter

Werbung

Werbung