Manually setting and prioritising IRQs in Windows Vista

  • Thread starter Thread starter Rog.
  • Start date Start date
R

Rog.

I have what is a simple question, though I have been unable to find an answer
as yet; the question is in 2 parts:

1/ How do I tell Vista that I want to change the IRQs that Vista chooses to
assign to hardware devices?
2/ How do I tell Vista in what priority order I want these IRQs handled?

Strictly the second part is not needed if you can change all the IRQs (and
you know their fixed priority order), but it would be useful.

The PC in question is a modern device with both ACPI and APIC, using only
PCI devices (the COM/PARALLEL devices on the legacy bus are turned off).

This means there are 24 available IRQs - far more than there are devices
needing them.

Unfortunately the Vista resource broker lamely decides to share just a few
IRQs between the most resource intensive devices. Although all the devices
are CAPABLE of sharing IRQs, this does not mean that sharing is DESIRABLE.

For example, the sound chip shares an IRQ with the main hard disk. Given
that Vista has reduced the audio buffering available to better support
realtime music, making it share an IRQ with a resource-intensive device like
a disk or network card leads to appaling sound breakup - not very helpful.

Similarly, the USB bus and 1394 bus have Isochronous modes which can/will
fail if forced to share IRQs with inappropriate resources.

Just to avoid wasting anyone's time, these resources cannot be changed by
switching slots (they are all on the motherboard), nor can they be changed in
the bios. The Vista HAL happily assigns resources using its poorly thought
out algorithms, and as there are no conflicts, the device manager does not
allow any changes.

I'm fairly sure these IRQ changes SHOULD be possible; it's just a question
of whether Microsoft are restricting this information, or whether they have
been drinking their own cool-aid too much and not put this manual adjustment
capability in.

Anyone have any clues where I might look?

Rog.
 
Rog,

I don' think there is any easy way of manually assigning interrupts in
Vista, short of editing the registry, which without guidance from the
mobo manufacturer would be very dangerous. If there are true device
conflicts, Vista will let you change resources like IRQs in the Device
Manager. But you only have legitimate sharing, not conflicts.

Your only hope is to uninstall the drivers for all the onboard devices
that you can, shut down, reboot and then disable the same onboard
devices that use IRQs in the BIOS. Reboot and re-enable them in the BIOS
one by one to see if the IRQs change. Obviously you can't disable any
devices needed for booting, but floppy disk controller, audio, USB
(assuming your mouse and keyboard aren't USB) and Firewire controllers
are good examples ones that can be disabled.

The only other possibilities are to try changing the "Plug and Play OS"
option in the BIOS or to see if the mobo has a BIOS upgrade. You could
try a fresh install, but I suspect that would be a big hassle and prolly
wouldn't work anyway.

Is it possible that your sound problems are not related to the IRQ
sharing? One way to test it is to disable onboard sound and buy (or
borrow) a cheap sound card.

Sorry I can't be of any more help.

Jay
 
Can you tell us the mobo and CPU model?
Is the BIOS updated ?
Is the system working in APIC mode?

Regards,
--PA
 
Thanks for the reply Jay.

This sent me away looking at rather more pages of hardware and standards
specifications than I cared for!

There is a tremendous lack of clarity from both OS and hardware/BIOS
vendors as to what exactly is going on. After looking at ACPI, PCI and other
specs, along with random design guidelines that seem to get issued
periodically, I can see why.

Most of the solutions proposed by various people on the internet for device
configuration tend to be empirical. Many of the things you are suggesting do
indeed work, sometimes, on some PCs. But (as you seem to understand by the
way you write) they are non-deterministic, and don't really give you much
control.

I may write more later, but thanks for taking the time to reply.

Rog.
 
Hello Pavel.

The mobo is ASUS M2N32-SLI with a AMD X2 3800+
BIOS is at 16.03 : the latest
APIC is enabled/working under both Vista and Ubuntu

My query isn't really the the usual sort of whine about not getting a
particular device to work properly, more that I am trying to understand
better how to control PCs under various OSs. Most of the time it seems more
the other way around!

Most modern OS implementations are so complex that little attempt seems to
be made to let those who use them understand and control how they work.

So my question is really, what facilities does Vista provide to allow you
some control over how the hardware is configured. The simple answer may well
be "none", in keeping with the philosophy that Microsoft knows best :-)

Rog.
 
Rog. said:
Hello Pavel.

The mobo is ASUS M2N32-SLI with a AMD X2 3800+
BIOS is at 16.03 : the latest
APIC is enabled/working under both Vista and Ubuntu

My query isn't really the the usual sort of whine about not getting a
particular device to work properly, more that I am trying to understand
better how to control PCs under various OSs. Most of the time it seems more
the other way around!

Most modern OS implementations are so complex that little attempt seems to
be made to let those who use them understand and control how they work.

So my question is really, what facilities does Vista provide to allow you
some control over how the hardware is configured. The simple answer may well
be "none", in keeping with the philosophy that Microsoft knows best :-)

Rog.

The simple answer, of course is "none". The philosophy behing it is that PnP OS
can manage resourses for PnP devices without any user interference.
Also, with ACPI, interrupt sharing should not occur. It's strange.
I'm not familiar with AMD systems, it can be that your's is not specially
designed for ACPI mode but just "compatible".
There may be ways to force Windows to use other IRQs (again, if the actual
hardware, mobo etc. support it) but no such interfaces are exposed to the user.

For more info on this, please try
microsoft.public.development.device.drivers or NTDEV forum on osr.com.

Regards,
--PA
 
Back
Top