I have two x86 linux systems, one(system A) is RHEL4 U4 installed and
the other(system B) CentOS4.5(system B)
Everything seems to be O.K except for one thing.

looking /proc/interrupts of "B",
-------------------------------------------------------------------------------------------------------
CPU0 CPU1 CPU2 CPU3
0: 16956329 17014075 16895686 16855610 IO-APIC-edge
timer
1: 1137 582 227 0 IO-APIC-edge
i8042
8: 0 0 0 0 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
12: 66 0 0 0 IO-APIC-edge
i8042
14: 300292 9432 719 298234 IO-APIC-edge ide0
169: 21 125651 0 0 IO-APIC-level
eth1 <====================
177: 0 0 0 0 IO-APIC-level
uhci_hcd
185: 0 0 0 0 IO-APIC-level
ehci_hcd, uhci_hcd
193: 48052 14156 493 42436 IO-APIC-level
uhci_hcd, libata
201: 0 0 0 0 IO-APIC-level
uhci_hcd
217: 411201 0 0 0 PCI-MSI
eth0 <=====================
NMI: 67721443 67721398 67721397 67721396
LOC: 67712113 67712121 67712121 67712122
ERR: 0
MIS: 0

CPU0 receives most of interrups from eth0 and CPU1 from eth1.

but in case of "A"
----------------------------------------------------------------------------------------------------------------------
CPU0 CPU1 CPU2 CPU3
0: 1642843371 1642834739 1642841591 1642839949 IO-APIC-edge
timer
1: 2 4 1 1 IO-APIC-edge
i8042
8: 0 0 0 1 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
12: 31 11 7 17 IO-APIC-edge
i8042
14: 6 5 3 5 IO-APIC-edge ide0
169: 0 0 0 0 IO-APIC-level
uhci_hcd
177: 0 0 0 0 IO-APIC-level
uhci_hcd
185: 207715893 207711641 207714371 207712219 IO-APIC-level
ehci_hcd
209: 31611485 31623879 31608585 31625623 IO-APIC-level eth0
<==============
217: 5117754 5121006 5122758 5111389 IO-APIC-level
eth1 <=============
225: 2485836 2482684 2486653 2484763 IO-APIC-level ioc0
233: 8 8 8 7 IO-APIC-level ioc1
NMI: 0 0 0 0
LOC: 2276312883 2276312882 2276312881 2276312880
ERR: 0
MIS: 0

both eth0, eth1 works fine with 4 processors.
system B is running in heavy network-traffic environment and this
interrupt handling behavior results in performance problem.
What is the problem and what should I do to make it work just like
system "A"?

Here are some of hardware information for system A/B.
Any suggestion would be appreciated.

system A
---------------------------------------------------- lspci -vv
-----------------------------------------------
07:04.0 Ethernet controller: Intel Corporation 82546GB Gigabit
Ethernet Controller (rev 03)
Subsystem: Samsung Electronics Co Ltd: Unknown device d001
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr+ Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- SERR-
Latency: 32 (63750ns min), Cache Line Size 10
Interrupt: pin A routed to IRQ 209
Region 0: Memory at fe9e0000 (64-bit, non-prefetchable)
[size=128K]
Region 4: I/O ports at cc00 [size=64]
Capabilities:

07:04.1 Ethernet controller: Intel Corporation 82546GB Gigabit
Ethernet Controller (rev 03)
Subsystem: Samsung Electronics Co Ltd: Unknown device d001
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr+ Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- SERR-
Latency: 32 (63750ns min), Cache Line Size 10
Interrupt: pin B routed to IRQ 217
Region 0: Memory at fe9c0000 (64-bit, non-prefetchable)
[size=128K]
Region 4: I/O ports at c800 [size=64]
Capabilities:


system B
---------------------------------------------------- lspci -vv
------------------------------------------------
04:00.0 Ethernet controller: Intel Corporation 82573E Gigabit Ethernet
Controller (Copper) (rev 03)
Subsystem: Intel Corporation: Unknown device 348d
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr+ Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
SERR- Latency: 0, Cache Line Size 10
Interrupt: pin A routed to IRQ 169
Region 0: Memory at 48180000 (32-bit, non-prefetchable)
[size=128K]
Region 1: Memory at 48100000 (32-bit, non-prefetchable)
[size=512K]
Region 2: I/O ports at 2000 [size=32]
Capabilities: [c8] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [d0] Message Signalled Interrupts: 64bit+
Queue=0/0 Enable-
Address: 00000000fee00000 Data: 40d9
Capabilities: [e0] Express Endpoint IRQ 0
Device: Supported: MaxPayload 256 bytes, PhantFunc 0,
ExtTag-
Device: Latency L0s <512ns, L1 <64us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal- Fatal-
Unsupported-
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1,
Port 0
Link: Latency L0s <128ns, L1 <64us
Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
Link: Speed 2.5Gb/s, Width x1
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number 34-09-01-ff-
ff-17-15-00


05:05.0 Ethernet controller: Intel Corporation 82541GI Gigabit
Ethernet Controller (rev 05)
Subsystem: Intel Corporation: Unknown device 348d
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr+ Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- SERR-
Latency: 32 (63750ns min), Cache Line Size 10
Interrupt: pin A routed to IRQ 169
Region 0: Memory at 48020000 (32-bit, non-prefetchable)
[size=128K]
Region 1: Memory at 48000000 (32-bit, non-prefetchable)
[size=128K]
Region 2: I/O ports at 1100 [size=64]
Expansion ROM at fffe0000 [disabled] [size=128K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [e4] PCI-X non-bridge device.
Command: DPERE- ERO+ RBC=0 OST=0
Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-,
DC=simple, DMMRBC=2, DMOST=0, DMCRS=0, RSCEM-