On 2/25/06, <b class="gmail_sendername">Yan-Fa Li</b> &lt;<a href="mailto:yanfali@gmail.com">yanfali@gmail.com</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 2/25/06, Osma Ahvenlampi &lt;<a href="mailto:oa@iki.fi">oa@iki.fi</a>&gt; wrote:<br>&gt; &gt; &gt; I'm trying to reset the latency_timer on my on-board nforce2 sound to<br>&gt; &gt; &gt; 32 instead of 0, but it doesn't seem to work. I issue the command
<br>&gt; &gt; &gt; &quot;setpci -v -s 00:06.0 latency_timer=20 as root, but lspci still shows<br>&gt; &gt; &gt; the latency as being 0. Any ideas?<br>&gt;<br>&gt; I wonder if someone might be able to advice on a somewhat related
<br>&gt; problem. I also have an nforce2 IGP system, but I'm suffering from<br>&gt; graphics related instability. The X server sometimes crashes, sometimes<br>&gt; locks up intermittently. It's 100% repeatable when trying to do anything
<br>&gt; OpenGL related (mythtv opengl vsync, glxgears, etc), and otherwise very<br>&gt; unpredictable. The same box has, however, already run MythTV otherwise<br>&gt; fine for over a year, and OpenGL has worked before.<br>
&gt;<br>&gt; I've gone through a lot of stuff - different NVidia driver versions (now<br>&gt; using 7676, but tried many of the 8xxx releases as well), system<br>&gt; temperatures (fairly high in the Silverstone LC11 case, but not totally
<br>&gt; overboard), turning off AGP modes, underclocking the graphics, etc. The<br>&gt; thing I'm beginning to suspect might be the reason is a shared interrupt<br>&gt; between the nvidia IGP and one of my DVB capture cards. However, I
<br>&gt; haven't figured out a way to change that. I do have free IRQ lines in<br>&gt; the system, but no free PCI slots (the small case leaves me no<br>&gt; flexibility in this respect).<br>&gt;<br>&gt; I'm using an ASUS A7N8X-VM/400, with two Technisat AirStar 2 PCI cards.
<br>&gt; These are the only components in the system, with all other functions<br>&gt; integrated on the M/B. The BIOS does not give me a lot of options. I<br>&gt; haven't tried ripping out the DVB cards to verify my suspicion, since
<br>&gt; this box is the only TV receiver we have...<br>&gt;<br>&gt; So, how could I move some functions out of the IRQ lines 10 and 11, to<br>&gt; any of the free ones, like 3, 6, 7, or 13? Some hardware info below..<br>
&gt;<br><br>You don't mention what distribution or kernel you are running, there<br>was a problem IO-APIC lockup problem with older 2.4 kernels on NForce2<br>boards, but I doubt you are running anything that old.<br><br>Try recompiling your kernel and enabling CONFIG_X86_UP_IOAPIC in your
<br>kernel config.&nbsp;&nbsp;This will make it switch to using different interrupt<br>controller code rather than the legacy XT PIC that your board is<br>currently using, here's the output from my SIS755 mythbackend, the<br>high errors are being caused by a known phantom IRQ problem on this
<br>board which is harmless:<br><br>[root@mythbackend ~]# cat /proc/interrupts<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU0<br>&nbsp;&nbsp;0:&nbsp;&nbsp;355696015&nbsp;&nbsp;&nbsp;&nbsp;IO-APIC-edge&nbsp;&nbsp;timer<br>&nbsp;&nbsp;1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;284&nbsp;&nbsp;&nbsp;&nbsp;IO-APIC-edge&nbsp;&nbsp;i8042<br>&nbsp;&nbsp;7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;IO-APIC-edge&nbsp;&nbsp;parport0
<br>&nbsp;&nbsp;8:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;IO-APIC-edge&nbsp;&nbsp;rtc<br>&nbsp;&nbsp;9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;acpi<br> 12:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;110&nbsp;&nbsp;&nbsp;&nbsp;IO-APIC-edge&nbsp;&nbsp;i8042<br> 15:&nbsp;&nbsp; 12754335&nbsp;&nbsp;&nbsp;&nbsp;IO-APIC-edge&nbsp;&nbsp;ide1<br>169:&nbsp;&nbsp;&nbsp;&nbsp;9252860&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;ide2, ide3, ide4, ide5, libata
<br>177:&nbsp;&nbsp; 10711697&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;eth0<br>185:&nbsp;&nbsp; 10314019&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;ivtv0<br>193:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;ehci_hcd:usb1<br>201:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;ohci_hcd:usb2<br>209:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;ohci_hcd:usb3
<br>217:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; IO-APIC-level&nbsp;&nbsp;ohci_hcd:usb4<br>NMI:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;75895<br>LOC:&nbsp;&nbsp;355714402<br>ERR:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;85708<br>MIS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br><br>Switching to APIC should allow your peripherals to use &quot;level&quot;<br>detected PCI interrupts instead of &quot;edge&quot;, which are much more
<br>efficient.</blockquote><div><br><br><br>I'm using the APIC mode on my x86-64 system.&nbsp; But, I still get several devices bunched up on one IRQ, with others not being used at all.&nbsp;&nbsp;&nbsp;&nbsp; Is there any way to tell the Linux kernel to distribute the interrupts differently?&nbsp; Or, is that hardwired in the PCI configuration?&nbsp;&nbsp; Also, the old IRQ's for standard devices (IRQ 3/4 for serial, IRQ 7 for Parallel, etc) never seem to get re-used. 
<br></div><br>Is there any way to optimize this in Linux?<br></div><br>