Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
nvidia chipsets + Core 2 Duo = uniprocessor [solved]
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Tue Feb 06, 2007 11:09 pm    Post subject: nvidia chipsets + Core 2 Duo = uniprocessor [solved] Reply with quote

Some nvidia NFORCE chipsets appear to be pretty thoroughly broken for use with
SMP under linux. Probably under windows too, but of course the problem is
better hidden there. I have an ASUS P5NSLI board that shows this problem,
but it appears that other boards show the same problem.

Sumptom 1: During boot you get messages like:
Code:

ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=0 apic2=-1 pin2=-1
..MP-BIOS bug: 8254 timer not connected to IO-APIC
...trying to set up timer (IRQ0) through the 8259A ...  failed.
...trying to set up timer as Virtual Wire IRQ... failed.
...trying to set up timer as ExtINT IRQ... works.
checking TSC synchronization across 2 CPUs: passed.


Symptom 2: You then find that only CPU0 is allowed to process interrupts:

Code:


jesnow@Merckx ~ $ cat /proc/interrupts
           CPU0       CPU1
  0:     548400          0    XT-PIC-XT        timer
  1:       1328          0   IO-APIC-edge      i8042
  6:          3          0   IO-APIC-edge      floppy
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 14:         50          0   IO-APIC-edge      ide0
 16:       5672          0   IO-APIC-fasteoi   eth0
 17:      15399          0   IO-APIC-fasteoi   libata, ohci_hcd:usb2
 18:          0          0   IO-APIC-fasteoi   libata
 19:        302          0   IO-APIC-fasteoi   ehci_hcd:usb1
 20:       6670          0   IO-APIC-fasteoi   HDA Intel
 21:      74848          0   IO-APIC-fasteoi   nvidia
NMI:          0          0
LOC:     536748     537048
ERR:          1
MIS:          0


Nvidia themselves have this to say about it:
http://download.nvidia.com/XFree86/nforce/1.0-0301/KnownProblems.html
Quote:


Network and other devices randomly stop working when ACPI is enabled
This problem may be caused by an incorrect ACPI table entry that causes the timer interrupt to be incorrectly configured.
If the kernel console boot trace (viewable using dmesg) contains messages such as these:
..MP-BIOS bug: 8254 timer not connected to IOAPIC
...trying to set up timer (IRQ0) through the 8259A . failed.
...trying to set up timer as Virtual Wire IRQ... failed.
...trying to set up timer as ExtINT IRQ... works.

then the incorrect ACPI table entry is present. On 2.6 kernels, this can be worked around by specifying the 'acpi_skip_timer_override' boot line option. An alternative workaround is to disable ACPI in the BIOS or by using the 'acpi=off' boot line option.



as well as
http://download.nvidia.com/XFree86/Linux-x86/1.0-8774/README/appendix-l.html
Quote:


Appendix L. Known Issues
The following problems still exist in this release and are in the process of being resolved.
Known Issues
<...>
Problems that Will Not Be Fixed
<...>
I/O APIC (SMP)
If you are experiencing stability problems with a Linux SMP machine and seeing I/O APIC warning messages from the Linux kernel, system reliability may be greatly improved by setting the "noapic" kernel parameter.


The 'acpi_skip_timer_override' boot-time option did something for a while, but I had stability issues
and stopped using it. 'noapic' makes you a uniprocessor machine, and kills the sound. In the meantime, I have replicated this behavior on all recent kernels, and combinations of relevant boot parameters. My conclusion is, until somebody takes an interest and fixes this problem, motherboards with the affected chipsets (I don't know which these are) are seriously degraded in performance for most tasks. My mobo has the NForce MCP55 chipset.

Anybody who might know more about this, or a possible workaround, please post!

Cheers,

Jon.


Last edited by jesnow on Sat Dec 22, 2007 10:30 pm; edited 3 times in total
Back to top
View user's profile Send private message
ntrl
n00b
n00b


Joined: 26 Sep 2004
Posts: 34
Location: SPb, Russia

PostPosted: Thu Mar 15, 2007 7:56 pm    Post subject: Reply with quote

Hi.

try pci=bios
_________________
--
WBR
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Tue Mar 20, 2007 8:27 pm    Post subject: Reply with quote

ntrl wrote:
Hi.

try pci=bios


Tried that, tried acpi_skip_timer_override, which worked on some kernels
a while a go, nada.

jon
Back to top
View user's profile Send private message
ntrl
n00b
n00b


Joined: 26 Sep 2004
Posts: 34
Location: SPb, Russia

PostPosted: Tue Mar 20, 2007 9:03 pm    Post subject: Reply with quote

What MB? Asus, gigabyte? May be flash new bios?
_________________
--
WBR
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Wed Mar 21, 2007 12:03 am    Post subject: Reply with quote

ntrl wrote:
What MB? Asus, gigabyte? May be flash new bios?


Yes, an ASUS P5NSLI, newest available BIOS. I'm really at Witts End on this.

Jon.
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Wed Mar 21, 2007 2:48 am    Post subject: Reply with quote

I have submitted a bug report on kernel bugzilla, will report back.

Jon.
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Wed Mar 21, 2007 3:42 pm    Post subject: Reply with quote

Someone in Kernel bugzilla had this to say:
Quote:

------- Additional Comment #1 From Dave Jones 2007-03-20 14:53 -------
CPU1 won't handle interrupts unless irqbalance is run.
See http://www.irqbalance.org


So I tried that and got:

Code:

Merckx jesnow # equery list irqbalance
[ Searching for package 'irqbalance' in all categories among: ]
 * installed packages
[I--] [  ] sys-apps/irqbalance-0.55 (0)

Merckx jesnow # /etc/init.d/irqbalance start
 * irqbalance: your machine lacks different physical processors; not enabling


Which is strange, since both cpus are recognized everywhere else, like in /proc and so forth.
Back to top
View user's profile Send private message
ZeroDivide
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2003
Posts: 83

PostPosted: Sun Mar 25, 2007 3:24 pm    Post subject: Reply with quote

I was having the same problems with an Epox 9NPA3-SLI motherboard.

Eventually I found that disabling ACPI caused APIC to work properly. So I just have to pass "acpi=no" as a kernel parameter and smp appears to work fine.
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Mon Apr 02, 2007 6:40 pm    Post subject: Reply with quote

ZeroDivide wrote:
I was having the same problems with an Epox 9NPA3-SLI motherboard.

Eventually I found that disabling ACPI caused APIC to work properly. So I just have to pass "acpi=no" as a kernel parameter and smp appears to work fine.


I tried this, and interestingly, it had no effect at all -- that is SMP dontinued to be broken as before, and there are lots of ACPI messages in dmesg.
Back to top
View user's profile Send private message
Rikai
n00b
n00b


Joined: 05 Feb 2005
Posts: 65
Location: Huntsville, AL

PostPosted: Tue Apr 03, 2007 7:40 am    Post subject: Reply with quote

If there's a bad ACPI table entry, you might try fixing it youself with a custom DSDT?

At the very least, I don't think it can hurt.
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Tue Apr 03, 2007 11:05 pm    Post subject: Reply with quote

Rikai wrote:
If there's a bad ACPI table entry, you might try fixing it youself with a custom DSDT?

At the very least, I don't think it can hurt.


Wow, this looks daunting, but I can give it a try. I could find no references to
DSDT in connection with my MB in the web, so no indication that this has worked for
anyone else.

The procedure outlined seems so simplistic that I can't imagine it working for me except by pure chance without specific knowledge of ACPI programming. Worth a try though. Thanks!
Back to top
View user's profile Send private message
transsib
Guru
Guru


Joined: 26 Jul 2003
Posts: 536

PostPosted: Wed Apr 04, 2007 4:35 am    Post subject: Reply with quote

I haven't looked so hard at the boot messages on booting. My mobo is a asus p5n32-e sli with nforce680 chipset and a pentium 4 .
I don't know whether it is related to that problem but I had to give the kernel pci=nomsi on boot to make net.eth0 actually work. I've tried several kernels and for each of them I had to write that into grub.

Does anyone know what pci=nomsi does and how it affects other pci traffic on the board?

I have a beta bios and intend to flash it to the same bios rev. because it just got out of beta status. The system is all in all pretty fast and has no stability problems but I haven't pushed it to its limits yet. It is only 4 weeks old.

My /proc/interrupts looks like this
Code:
cat /proc/interrupts
           CPU0       CPU1
  0:    1382981          0   IO-APIC-edge      timer
  1:          2          0   IO-APIC-edge      i8042
  6:          3          0   IO-APIC-edge      floppy
  8:          1          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 14:      12293          0   IO-APIC-edge      ide0
 16:      83499          0   IO-APIC-fasteoi   nvidia
 17:          7          0   IO-APIC-fasteoi   Bt87x audio, bttv0
 20:      21919          0   IO-APIC-fasteoi   ohci_hcd:usb1
 21:        215          0   IO-APIC-fasteoi   libata, HDA Intel
 22:     141894          0   IO-APIC-fasteoi   libata, eth0
 23:       8632          0   IO-APIC-fasteoi   libata, ehci_hcd:usb2
NMI:        201        149
LOC:    1382974    1382973
ERR:          0


Lioba
_________________
*** Challenge your preconceptions or they will challenge you ***
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Thu Apr 05, 2007 4:15 pm    Post subject: Reply with quote

Rikai wrote:
If there's a bad ACPI table entry, you might try fixing it youself with a custom DSDT?

At the very least, I don't think it can hurt.


OK, I did that, and got only warnings, no errors:

Code:

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060912 [Apr  5 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt.dsl   386:     Method (\_WAK, 1, NotSerialized)
Warning  1079 -                 ^ Reserved method must return a value (_WAK)

dsdt.dsl  2310:                     Method (GFSB, 0, NotSerialized)
Warning  1086 -                                ^ Not all control paths return a value (GFSB)

dsdt.dsl  4629:                 Method (RVLT, 1, NotSerialized)
Warning  1086 -                            ^ Not all control paths return a value (RVLT)

dsdt.dsl  4749:                 Method (RTMP, 1, NotSerialized)
Warning  1086 -                            ^ Not all control paths return a value (RTMP)

dsdt.dsl  4901:                     Store (GFSB (), Local0)
Warning  1091 -                               ^ Called method may not always return a value

dsdt.dsl  4927:                 Method (OCOP, 1, NotSerialized)
Warning  1086 -                            ^ Not all control paths return a value (OCOP)

dsdt.dsl  4943:                             Subtract (Local1, GFSB (), Local1)
Warning  1091 -                                            ^ Called method may not always return a value

dsdt.dsl  5206:                             Multiply (GFSB (), Local1, Local1)
Warning  1091 -                                          ^ Called method may not always return a value

dsdt.dsl  5213:                             Subtract (Local1, GFSB (), Local1)
Warning  1091 -                                            ^ Called method may not always return a value

ASL Input:  dsdt.dsl - 8318 lines, 261914 bytes, 3426 keywords
AML Output: dsdt.aml - 27191 bytes 1073 named objects 2353 executable opcodes

Compilation complete. 0 Errors, 9 Warnings, 0 Remarks, 939 Optimizations


But it looks to me like these are not warnings that are relevant to the timer binding. At least I can't make heads or tails of them, and anyway, they're warnings.

What now?

Cheers,

Jon.
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Sun Apr 08, 2007 1:45 pm    Post subject: Reply with quote

I'm a little upset that this thread is petering out and that there is no action on the kernel.org bug I submitted. I think this may go back to the general linux mentality of "it boots, it works". There have to be a lot of people out there with broken SMP who don't know it, and they wonder why their machine is less responsive under linux than under that other OS.

Is it really OK fo a large fraction of machines out there to not process interrupts on both CPU's? What happens when the primary advance in computing power is by adding cores? That's happening now.

At the very least can people with Core 2 processors run cat /proc/interrupts and post here if their machine works (say what your mobo and chipset are).

Cheers,

Jon.
Back to top
View user's profile Send private message
arkhan_jg
Apprentice
Apprentice


Joined: 18 Mar 2003
Posts: 199
Location: Dorset, UK

PostPosted: Mon Apr 09, 2007 8:25 am    Post subject: Reply with quote

It may also be that it's not strictly a fault in the kernel; if the ACPI table is broken on the motherboard, i.e. ASUS only tested that their BIOS worked with the incredibly out-of-spec tolerating windows, and the nforce chipset drivers aren't happy with a badly implemented ACPI table under linux...

I presume you've tried disabling ACPI in the BIOS directly rather than just passing ACPI=no in the kernel arguments? APM will do the job for a desktop, ACPI causes more problems than it solves IMO for desktops, the implementations are usually so badly written, which is a shame is it does solve some IRQ issues.

I don't have linux installed on any of my core 2 at home, but I have ubuntu on my nforce 4 sli x16 (asus p5n32-sli se deluxe) core 2 at work; I'll have a look at that one when I come back off holiday.
Also, I thought the MCP55 chipset was an athlon AM2 one? The P5NSLI normally has an nforce 570.
_________________
make menuconfig not war
Back to top
View user's profile Send private message
xanas3712
Guru
Guru


Joined: 15 Oct 2004
Posts: 455

PostPosted: Mon Apr 09, 2007 7:20 pm    Post subject: Reply with quote

I'll try to check on this when I get home, but I'm not running nforce and both cores seem to work fine, but I'm curious of what the output is supposed to look like by comparison since I've not looked into this before.

Code:

           CPU0       CPU1       
  0:   22889202          0   IO-APIC-edge      timer
  1:          2          0   IO-APIC-edge      i8042
  6:          5          0   IO-APIC-edge      floppy
  7:          0          0   IO-APIC-edge      parport0
  8:          0          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 16:   10362546          0   IO-APIC-fasteoi   uhci_hcd:usb3, eth0, libata, nvidia
 18:          3          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7
 19:     954920          0   IO-APIC-fasteoi   uhci_hcd:usb6, libata, libata, libata
 21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
 22:     536054          0   IO-APIC-fasteoi   HDA Intel
 23:     643674          0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb5
NMI:      14487      13645
LOC:   22706729   22706709
ERR:          0


I guess this would mean I am not working quite right either?

IRQbalance didn't have the problem for me it did for you, it seems to start anyhow, but maybe it won't assign interrupts until I reboot?

Quote:

CPU0 CPU1
0: 25065078 0 IO-APIC-edge timer
1: 2 0 IO-APIC-edge i8042
6: 5 0 IO-APIC-edge floppy
7: 0 0 IO-APIC-edge parport0
8: 0 0 IO-APIC-edge rtc
9: 0 0 IO-APIC-fasteoi acpi
12: 4 0 IO-APIC-edge i8042
16: 11718170 18365 IO-APIC-fasteoi uhci_hcd:usb3, eth0, libata, nvidia
18: 3 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb7
19: 998367 434 IO-APIC-fasteoi uhci_hcd:usb6, libata, libata, libata
21: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
22: 690203 0 IO-APIC-fasteoi HDA Intel
23: 1016522 0 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb5
NMI: 14929 14056
LOC: 24861674 24861654
ERR: 0


It changed some while running I noticed
Back to top
View user's profile Send private message
jesnow
Guru
Guru


Joined: 26 Apr 2006
Posts: 394

PostPosted: Tue Apr 10, 2007 7:47 am    Post subject: Reply with quote

xanas3712 wrote:
I'll try to check on this when I get home, but I'm not running nforce and both cores seem to work fine, but I'm curious of what the output is supposed to look like by comparison since I've not looked into this before.

Code:

           CPU0       CPU1       
  0:   22889202          0   IO-APIC-edge      timer
  1:          2          0   IO-APIC-edge      i8042
  6:          5          0   IO-APIC-edge      floppy
  7:          0          0   IO-APIC-edge      parport0
  8:          0          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 16:   10362546          0   IO-APIC-fasteoi   uhci_hcd:usb3, eth0, libata, nvidia
 18:          3          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7
 19:     954920          0   IO-APIC-fasteoi   uhci_hcd:usb6, libata, libata, libata
 21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
 22:     536054          0   IO-APIC-fasteoi   HDA Intel
 23:     643674          0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb5
NMI:      14487      13645
LOC:   22706729   22706709
ERR:          0


I guess this would mean I am not working quite right either?

IRQbalance didn't have the problem for me it did for you, it seems to start anyhow, but maybe it won't assign interrupts until I reboot?

Code:

         CPU0       CPU1       
  0:   25065078          0   IO-APIC-edge      timer
  1:          2          0   IO-APIC-edge      i8042
  6:          5          0   IO-APIC-edge      floppy
  7:          0          0   IO-APIC-edge      parport0
  8:          0          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 16:   11718170      18365   IO-APIC-fasteoi   uhci_hcd:usb3, eth0, libata, nvidia
 18:          3          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7
 19:     998367        434   IO-APIC-fasteoi   uhci_hcd:usb6, libata, libata, libata
 21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
 22:     690203          0   IO-APIC-fasteoi   HDA Intel
 23:    1016522          0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb5
NMI:      14929      14056
LOC:   24861674   24861654
ERR:          0


It changed some while running I noticed


Not running nforce? Maybe this problem is more widespread than I thought! How many "happy" linux users out there have broken SMP and don't know it? Your luck with irqbalange is encouraging, but it looks like you have only 0.1% use of CPU1 on two interrupts. I guesss this is better than I have, but still not impressive. And why did you need it at all? Isn't the linux kernel supposed to handle multiprocessing all by itself? Who knows the answer to this?

Jon.
Back to top
View user's profile Send private message
aceFruchtsaft
Guru
Guru


Joined: 16 May 2004
Posts: 435
Location: Vienna, Austria

PostPosted: Tue Apr 10, 2007 8:05 am    Post subject: Reply with quote

My output is also similar and I have an Asus P5B Deluxe with an Intel P965 Chipset:
Code:

# cat /proc/interrupts
           CPU0       CPU1       
  0:    3986155          0   IO-APIC-edge      timer
  1:          2          0   IO-APIC-edge      i8042
  6:          3          0   IO-APIC-edge      floppy
  8:          1          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 16:     284222          0   IO-APIC-fasteoi   stex, uhci_hcd:usb3, nvidia
 17:      78225          0   IO-APIC-fasteoi   libata, uhci_hcd:usb4
 18:          0          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7
 19:      24421          0   IO-APIC-fasteoi   uhci_hcd:usb6
 21:          3          0   IO-APIC-fasteoi   ohci1394
 22:       1267          0   IO-APIC-fasteoi   EMU10K1
 23:          6          0   IO-APIC-fasteoi   ohci1394, ehci_hcd:usb2, uhci_hcd:usb5
314:      48582          0   PCI-MSI-edge      eth0
315:      17035          0   PCI-MSI-edge      libata
NMI:        395        252
LOC:    3906513    3906431
ERR:          0


Irqbalance seems to change this a bit:
Code:

# cat /proc/interrupts
           CPU0       CPU1       
  0:    4215430          0   IO-APIC-edge      timer
  1:          2          0   IO-APIC-edge      i8042
  6:          3          0   IO-APIC-edge      floppy
  8:          1          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          4          0   IO-APIC-edge      i8042
 16:     285262      13461   IO-APIC-fasteoi   stex, uhci_hcd:usb3, nvidia
 17:      78613       4471   IO-APIC-fasteoi   libata, uhci_hcd:usb4
 18:          0          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7
 19:      24464       2917   IO-APIC-fasteoi   uhci_hcd:usb6
 21:          3          0   IO-APIC-fasteoi   ohci1394
 22:       1267          0   IO-APIC-fasteoi   EMU10K1
 23:          6          0   IO-APIC-fasteoi   ohci1394, ehci_hcd:usb2, uhci_hcd:usb5
314:      48597        409   PCI-MSI-edge      eth0
315:      17955          0   PCI-MSI-edge      libata
NMI:        401        261
LOC:    4131093    4131011
ERR:          0
Back to top
View user's profile Send private message
drescherjm
Advocate
Advocate


Joined: 05 Jun 2004
Posts: 2729
Location: Pittsburgh, PA, USA

PostPosted: Tue Apr 10, 2007 8:07 am    Post subject: Reply with quote

Here is my result for a dual processor Opteron on a 2.6.19 vserver sources kernel:

Code:

# cat /proc/interrupts
           CPU0       CPU1
  0:     180589   54482577   IO-APIC-edge      timer
  1:        385      96788   IO-APIC-edge      i8042
  8:      12110    1348081   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:      10010    1907253   IO-APIC-edge      i8042
 14:          1        455   IO-APIC-edge      ide0
 15:        212      35128   IO-APIC-edge      ide1
 16:      17716   18720723   IO-APIC-fasteoi   ivtv0, nvidia
 17:      17442    2716677   IO-APIC-fasteoi   libata, AMD AMD8111, ivtv1
 19:          0          3   IO-APIC-fasteoi   ohci_hcd:usb1, ohci_hcd:usb2, ohci1394
 24:      53393    7817791   IO-APIC-fasteoi   eth0
NMI:       2358       2773
LOC:   54662053   54661795
ERR:          0


It looks like interrupts favor CPU1 for me.
_________________
John

My gentoo overlay
Instructons for overlay
Back to top
View user's profile Send private message
DirtyHairy
Guru
Guru


Joined: 03 Jul 2006
Posts: 520
Location: Freiburg, Deutschland

PostPosted: Tue Apr 10, 2007 9:49 am    Post subject: Reply with quote

Sorry folks, I might be wrong on that one, but imho balancing interrupts is irrelevant where speed is concerned (at least for an usual desktop configuration). The speed improvement with multicore systems comes from the ability of balancing multiple threads between several physical CPUs, nothing else. If this works (and you can check this as easily as firing up several time-consuming processes and then looking at top output), your SMP is working fine. For example,
Code:
cat /proc/interrupts
gives
Code:
  0:   29318702          0   IO-APIC-edge      timer
  1:      39862          0   IO-APIC-edge      i8042
  3:     136564          0   IO-APIC-edge      serial
  8:         70          0   IO-APIC-edge      rtc
  9:      64191          0   IO-APIC-fasteoi   acpi
 12:    5859246          0   IO-APIC-edge      i8042
 14:     401980          0   IO-APIC-edge      libata
 15:        181          0   IO-APIC-edge      libata
 16:    2596924          0   IO-APIC-fasteoi   yenta, uhci_hcd:usb2, fglrx
 21:          1          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5
 22:    1546273          0   IO-APIC-fasteoi   uhci_hcd:usb3, ipw3945, HDA Intel
 23:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
218:      29486          0   PCI-MSI-edge      eth0
NMI:          0          0
LOC:   29318542   29145006
ERR:          0
MIS:          0

on my machine (CoreDuo) right now, but SMP is working perfectly...
Back to top
View user's profile Send private message
Cyker
Veteran
Veteran


Joined: 15 Jun 2006
Posts: 1427

PostPosted: Tue Apr 10, 2007 11:35 am    Post subject: Reply with quote

Just for kicks, here's my S3 VirgeDX-powered headless server :)

Code:
           CPU0       CPU1       
  0:  334558800  368774720   IO-APIC-edge      timer
  1:   16698570          9   IO-APIC-edge      i8042
  8:          1          1   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          0          4   IO-APIC-edge      i8042
 14:     634681     436830   IO-APIC-edge      ide0
 15:    1227436     718240   IO-APIC-edge      ide1
 16:   86082431   59423925   IO-APIC-fasteoi   eth0
 17:  339155214  320390828   IO-APIC-fasteoi   ohci_hcd:usb2, eth1
 18:          0          0   IO-APIC-fasteoi   libata
 19:   18419792   15351524   IO-APIC-fasteoi   libata
 20:   15879395   16773603   IO-APIC-fasteoi   libata
 21:     767036    4517244   IO-APIC-fasteoi   ehci_hcd:usb1
NMI:          0          0
LOC:  703332108  703332107
ERR:          1
MIS:          0


I'm not sure about the workarounds for the interrupt stuff; Having only one CPU handle interrupts will bottleneck the system quite badly, espescially during heavy I/O.

We really need to assemble a list of 'Linux-approved' motherboards and hardware in general...
Back to top
View user's profile Send private message
xanas3712
Guru
Guru


Joined: 15 Oct 2004
Posts: 455

PostPosted: Tue Apr 10, 2007 11:41 am    Post subject: Reply with quote

I'm not sure honestly. I do know the system runs better even before the interrupt change than the single cores here. And I've not noticed an issue until it was brought up about it.

Anyhow, I didn't say my chipset earlier and forgot what motherboard I was using for some strange reason. It's an intel 965P. Gigabyte-965P-S3 if I recall correctly.
Back to top
View user's profile Send private message
DirtyHairy
Guru
Guru


Joined: 03 Jul 2006
Posts: 520
Location: Freiburg, Deutschland

PostPosted: Tue Apr 10, 2007 11:49 am    Post subject: Reply with quote

Running irqbalance changed things for me a bit
Code:
           CPU0       CPU1
  0:   36419287          0   IO-APIC-edge      timer
  1:      43461       3358   IO-APIC-edge      i8042
  3:     141920      27782   IO-APIC-edge      serial
  8:         70          0   IO-APIC-edge      rtc
  9:      66966       3981   IO-APIC-fasteoi   acpi
 12:    5993784     920334   IO-APIC-edge      i8042
 14:     472453     142750   IO-APIC-edge      libata
 15:        181          0   IO-APIC-edge      libata
 16:    2690653     499048   IO-APIC-fasteoi   yenta, uhci_hcd:usb2, fglrx
 21:          1          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5
 22:    1546324       5800   IO-APIC-fasteoi   uhci_hcd:usb3, ipw3945, HDA Intel
 23:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
218:      34126      30765   PCI-MSI-edge      eth0
NMI:          0          0
LOC:   36419127   36245351
ERR:          0
MIS:          0

but I really didn't notice any performance differences... I suppose it is the case as with many optimizations: there ARE configurations where they may pay off, but for an ordinary user using an ordinary desktop configuration, the difference will be barely noticable. I have been doing scientific calculations on that machine which involved much number crunching as well as heavy data transfers, and never noticed any sign of the system becoming laggy or unresponsive (without irqbalance which I just tried out now), the system was very snappy even with both cores 100% loaded :)
Back to top
View user's profile Send private message
Cyker
Veteran
Veteran


Joined: 15 Jun 2006
Posts: 1427

PostPosted: Tue Apr 10, 2007 2:09 pm    Post subject: Reply with quote

Yeah... Linux already has a fantastic scheduler, and most Linux users don't really need two cores anyway so I think for the most part the performance difference will be negligible.
If you're doing heavy processing (Like this Folding@Home thing which seems to be popular ;)), then the interrupts used will not be as bad since it actually does only very little I/O.

I suspect on my system it might have more of an effect because I *am* doing ridiculous amounts of I/O; Between the RAID array and the two gigabit cards espescially, and on systems that heavily use both cores for real-time stuff (I'm thinking FPS games and such) then it could also suck pretty bad.
Back to top
View user's profile Send private message
xanas3712
Guru
Guru


Joined: 15 Oct 2004
Posts: 455

PostPosted: Tue Apr 10, 2007 7:10 pm    Post subject: Reply with quote

Maybe newer games, I'll only be able to test it maybe when unreal 2007 comes out. With an 8800 GTS quake 4 runs flawlessly, but there aren't too many other linux games with high end graphics (and that one is aging quickly) to really know for sure.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum