How to set many IRQ to lowest priorty

0

I see in msinfo32.exe that I have a ACPI-compliant system.

For IRQs 54 to 511, I want to set them all to the lowest priority.

by using registry

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

it's hard to set it one by one

I want to set all by easy way

like "IRQ54-551Priority"

is it possible?

Nawaf dmg

Posted 2018-12-29T18:25:38.687

Reputation: 11

Answers

0

Create and run a .bat file containing the following commands:

@echo off
echo Windows Registry Editor Version 5.00 >f.reg
echo. >>f.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl] >>f.reg
for /l %%G IN (54,1,511) DO echo "IRQ%%GPriority"=dword:00000001 >>f.reg

This will create the file f.reg in the current folder that will contain:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl] 
"IRQ54Priority"=dword:00000001 
"IRQ55Priority"=dword:00000001 
...
"IRQ511Priority"=dword:00000001 

Double-click on the file f.reg to import all these registry entries.

Replace in the script the 00000001 with the priority that you want to assign all these IRQs.

harrymc

Posted 2018-12-29T18:25:38.687

Reputation: 306 093

1

TL,DR version: It's a hoax. Don't bother.

Clarification: harrymc's script will certainly generate the indicated .reg file! But adding these values to your registry will have no effect on your machine at all. (Won't help; won't hurt either.)

There is no code in Windows that will pay any attention to these registry values. It just isn't there.

There is a value in the PriorityControl key called Win32PrioritySeparation. This is used to specify variations in the scheduler's timeslice for Server vs. "client" Windows systems and, on client systems, for the process that owns the foreground window vs. all others. (The details on this are of course in Windows Internals by Solomon, Russinovich, et al.)

But that's the only thing that Windows looks at, or looks for, in this key. All of these carefully-created "IRQ_nn_Priority" values will just be ignored. You can create a value in there called ComeOnMicrosoftMakeMyMachineFaster and it will have exactly as much result.

history

This hoax goes back to at least Windows XP time, when large numbers of desktop users were moving from Win9x to XP and dozens of "XP tweak" sites appeared. Many of them breathlessly promised that setting "IRQ8Priority" to 1 would improve performance by giving preference to the system's timer interrupts. Maybe this was a valid setting for one of Win9x's configuration files; I wouldn't know. Or maybe for yet some other OS. But not for the NT family (NT 3.1 through Windows 10).

(Note that the story has shifted. Back then the myth was that setting "IRQ8Priority" to 1 would have the device on that IRQ the highest priority. Now the myth has expanded and you can set different "priorities" to many different IRQs, and 1 is now the lowest priority! Uh huh.)

Back in 2003 I asked one of Windows' HAL and platform support lead developers about this. He confirmed that it's completely bogus. Nor could he think of any reason for anyone to have ever thought that anything remotely related could ever have existed.

Conclusion... someone made it up out of whole cloth.

If you want to confirm that Windows doesn't look at this, just use the sysinternals tool "Process Monitor" (procmon), set it up to monitor registry access from boot, and look for accesses to any registry values in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl other than to Win32PrioritySeparation. You won't find any.

By the way, "priority" in Windows is an attribute of threads. But interrupt handlers aren't threads, so they don't even have "priorities" to begin with.

Find ProcMon here. You'll need to have admin privs to use it.

Jamie Hanrahan

Posted 2018-12-29T18:25:38.687

Reputation: 19 777