[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Changement de l'énumération des interfaces sur NEXCOM 1083L et interrupt cpu à fond



Bonjour,

Sur un boitieir NEXCOM 1083L disposant de 8 interfaces GE, j'installe
OpenBSD 4.3 GENERIC ou GENERIC.MP.

Après installation, l'énumération des interfaces est un peu illogique : les
interfaces du NEXCOM libellées en face avant ETH1 à ETH8 se voient sous
OpenBSD respectivment en em6, em7, em0,.... em5. Comme il serait préférable
d'avoir une correspondance ETH1 <-> em1, ETH2 <-> em2,... ETH8 <-> em8, je
procéde à la modification suivante de configuration (pour OpenBSD 4.3, en
4.4 le numéro de device 116 change, il suffit donc d'adapter) :

# config -e -f /bsd
OpenBSD 4.3 (GENERIC) #698: Wed Mar 12 11:07:05 MDT 2008
    deraadt AT i386 POINT openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc> find em
116 em* at pci* dev -1 function -1 flags 0x0
ukc> add em1
Clone Device (DevNo, 'q' or '?') ? 116
Insert before Device (DevNo, 'q' or '?') ? 116
116 em1 at pci* dev -1 function -1 flags 0x0
ukc> add em2
Clone Device (DevNo, 'q' or '?') ? 117
Insert before Device (DevNo, 'q' or '?') ? 117
117 em2 at pci* dev -1 function -1 flags 0x0
ukc> change 116
116 em1 at pci* dev -1 function -1 flags 0x0
change [n] y
dev [-1] ? 14
function [-1] ? 0
flags [0] ?
116 em1 changed
116 em1 at pci* dev 14 function 0 flags 0x0
ukc> change 117
117 em2 at pci* dev -1 function -1 flags 0x0
change [n] y
dev [-1] ? 15
function [-1] ? 0
flags [0] ?
117 em2 changed
117 em2 at pci* dev 15 function 0 flags 0x0
ukc> quit
Saving modified kernel.
#

Après reboot, on a bien ETH1 <-> em1,... ETH8 <-> em8.



Le problème est que si on est en GENERIC-MP (Muilti-Processeur) ce qui est
nécessaire pour utiliser la cpu dual-core de ce boitier, la cpu sur le 1er
processeur passe à 70%-80% en mode interrupt (et bien évidemment rien ne
marche !) :

load averages:  0.25,  0.18,  0.08
15:39:05
14 processes:  13 idle, 1 on processor
CPU0 states:  0.0% user,  0.0% nice,  0.0% system, 71.6% interrupt, 28.4%
idle
CPU1 states:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100%
idle
Memory: Real: 5476K/44M act/tot  Free: 948M  Swap: 0K/3906M used/tot

  PID USERNAME PRI NICE  SIZE   RES STATE    WAIT      TIME    CPU COMMAND
23438 _syslogd   2    0  348K  648K sleep/0  poll      0:00  0.00% syslogd
 9729 root      18    0  484K  420K sleep/0  pause     0:00  0.00% ksh
17184 root      28    0  620K 1216K onproc/0 -         0:00  0.00% top
24477 root       2    0 1000K 1420K sleep/0  select    0:00  0.00% sendmail
    1 root      10    0  252K  284K idle     wait      0:00  0.00% init
24921 root       3    0  388K  712K idle     ttyin     0:00  0.00% getty
22967 root       2    0  500K  748K sleep/0  select    0:00  0.00% cron
26149 root       3    0  352K  700K idle     ttyin     0:00  0.00% getty
 9760 root       3    0  204K  708K idle     ttyin     0:00  0.00% getty
 5891 root       3    0  220K  704K idle     ttyin     0:00  0.00% getty
22584 root       3    0  240K  708K idle     ttyin     0:00  0.00% getty
23971 root       2    0  492K  660K idle     select    0:00  0.00% inetd
  391 root       2    0  328K  612K idle     netio     0:00  0.00% syslogd
11003 root       2    0  516K 1072K idle     select    0:00  0.00% sshd



J'ai fait les tests suivants :
- OpenBSD 4.3 GENERIC (pas MP) sans changer l'énumération des interfaces :
OK
- OpenBSD 4.3 GENERIC (pas MP) avec changement de l'énumération des
interfaces : OK
- OpenBSD 4.3 GENERIC.MP sans changer l'énumération des interfaces : OK
- OpenBSD 4.3 GENERIC.MP avec changement de l'énumération des interfaces :
interrupt cpu à 70%-80%

idem en OpenBSD 4.4

Nous sommes donc en présence d'un problème qui n'arrive qu'en
GENERIC.MPlorsque l'énumération des interfaces a été changée. En
dehots de la cpu à
80% d'interrupt, la seule chose que j'ai pu remarquer c'est le message
suivant dans dmesg:
em2: watchdog timeout -- resetting
(em2 est la seule interface up à cet instant)



Contournement toruvé :
J'ai trouvé qu'en désactivant l'ACPI soit dans le BIOS soit dans OpenBSD, le
problème disparaissait. A priori, je pense que désactiver l'ACPI sur un tel
boiteir ne doit pas avoir d'impact (ce n'est pas un PC portable!).



La question que je me pose est de savoir s'il s'agit d'un bug ou bien si
j'ai "cassé" quelque chose en faisant maladroitement le changement
d'énumération des interfaces. Si quelqu'un a une idée, merci de son aide.

Cordialement,
Guy Widloecher

PS : un dmesg en OpenBSD 4.4 GENERIC.MP avec changement de l'émumération des
interfaces (donc qui conduit à la cpu à 70%-80% en interrupt)

OpenBSD 4.4-current (GENERIC.MP) #857: Tue Aug 26 20:32:36 MDT 2008
    deraadt AT i386 POINT openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC.MP
cpu0: Intel(R) Core(TM)2 CPU 6420 @ 2.13GHz ("GenuineIntel" 686-class) 2.13
GHz
cpu0:
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR
real mem  = 1063743488 (1014MB)
avail mem = 1020076032 (972MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 07/09/07, BIOS32 rev. 0 @ 0xf93f0,
SMBIOS rev. 2.3 @ 0xf0000 (39 entries)
bios0: vendor Phoenix Technologies, LTD version "6.00 PG" date 07/09/2007
bios0: Intel i965-ITE8712
acpi0 at bios0: rev 0
acpi0: tables DSDT FACP MCFG APIC
acpi0: wakeup devices PEX0(S5) PEX1(S5) PEX2(S5) PEX3(S5) PEX4(S5) PEX5(S5)
HUB0(S5) UAR1(S5) UAR2(S5) IGBE(S5) USB0(S1) USB1(S1) USB2(S1) USB3(S1)
USB4(S1) USB6(S1) USB7(S1) AZAL(S5) PCI0(S5)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: apic clock running at 265MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM)2 CPU 6420 @ 2.13GHz ("GenuineIntel" 686-class) 2.13
GHz
cpu1:
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR
ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 20, 24 pins
ioapic0: misconfigured as apic 0, remapped to apid 4
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 4 (PEX0)
acpiprt2 at acpi0: bus 5 (PEX1)
acpiprt3 at acpi0: bus 6 (PEX2)
acpiprt4 at acpi0: bus 7 (PEX3)
acpiprt5 at acpi0: bus 8 (PEX4)
acpiprt6 at acpi0: bus 9 (PEX5)
acpiprt7 at acpi0: bus 10 (HUB0)
acpicpu0 at acpi0
acpicpu1 at acpi0
acpitz0 at acpi0: critical temperature 75 degC
acpibtn0 at acpi0: PWRB
bios0: ROM list: 0xc0000/0xb000! 0xef000/0x1000!
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82Q965 Host" rev 0x02
ppb0 at pci0 dev 1 function 0 "Intel 82Q965 PCIE" rev 0x02: apic 4 int 16
(irq 14)
pci1 at ppb0 bus 1
ppb1 at pci1 dev 0 function 0 "Intel PCIE-PCIE" rev 0x09
pci2 at ppb1 bus 2
ppb2 at pci1 dev 0 function 2 "Intel PCIE-PCIE" rev 0x09
pci3 at ppb2 bus 3
vga1 at pci0 dev 2 function 0 "Intel 82Q965 Video" rev 0x02
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
agp0 at vga1: aperture at 0xd0000000, size 0x10000000
ppb3 at pci0 dev 28 function 0 "Intel 82801H PCIE" rev 0x02: apic 4 int 16
(irq 14)
pci4 at ppb3 bus 4
em3 at pci4 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 4
int 16 (irq 14), address 00:10:f3:10:84:48
ppb4 at pci0 dev 28 function 1 "Intel 82801H PCIE" rev 0x02: apic 4 int 17
(irq 10)
pci5 at ppb4 bus 5
em4 at pci5 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 4
int 17 (irq 10), address 00:10:f3:10:84:49
ppb5 at pci0 dev 28 function 2 "Intel 82801H PCIE" rev 0x02: apic 4 int 18
(irq 11)
pci6 at ppb5 bus 6
em5 at pci6 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 4
int 18 (irq 11), address 00:10:f3:10:84:4a
ppb6 at pci0 dev 28 function 3 "Intel 82801H PCIE" rev 0x02: apic 4 int 19
(irq 15)
pci7 at ppb6 bus 7
em6 at pci7 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 4
int 19 (irq 15), address 00:10:f3:10:84:4b
ppb7 at pci0 dev 28 function 4 "Intel 82801H PCIE" rev 0x02: apic 4 int 16
(irq 14)
pci8 at ppb7 bus 8
em7 at pci8 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 4
int 16 (irq 14), address 00:10:f3:10:84:4c
ppb8 at pci0 dev 28 function 5 "Intel 82801H PCIE" rev 0x02: apic 4 int 17
(irq 10)
pci9 at ppb8 bus 9
em8 at pci9 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00: apic 4
int 17 (irq 10), address 00:10:f3:10:84:4d
uhci0 at pci0 dev 29 function 0 "Intel 82801H USB" rev 0x02: apic 4 int 23
(irq 5)
uhci1 at pci0 dev 29 function 1 "Intel 82801H USB" rev 0x02: apic 4 int 19
(irq 15)
ehci0 at pci0 dev 29 function 7 "Intel 82801H USB" rev 0x02: apic 4 int 23
(irq 5)
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb9 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0xf2
pci10 at ppb9 bus 10
em1 at pci10 dev 14 function 0 "Intel PRO/1000MT (82541GI)" rev 0x05: apic 4
int 18 (irq 11), address 00:10:f3:10:84:4e
em2 at pci10 dev 15 function 0 "Intel PRO/1000MT (82541GI)" rev 0x05: apic 4
int 19 (irq 10), address 00:10:f3:10:84:4f
ichpcib0 at pci0 dev 31 function 0 "Intel 82801H LPC" rev 0x02: PM disabled
pciide0 at pci0 dev 31 function 2 "Intel 82801H SATA" rev 0x02: DMA, channel
0 configured to native-PCI, channel 1 configured to native-PCI
pciide0: using apic 4 int 19 (irq 15) for native-PCI interrupt
ichiic0 at pci0 dev 31 function 3 "Intel 82801H SMBus" rev 0x02: apic 4 int
19 (irq 15)
iic0 at ichiic0
spdmem0 at iic0 addr 0x52: 1GB DDR2 SDRAM non-parity PC2-5300CL5
pciide1 at pci0 dev 31 function 5 "Intel 82801H SATA" rev 0x02: DMA, channel
0 wired to native-PCI, channel 1 wired to native-PCI
pciide1: using apic 4 int 19 (irq 15) for native-PCI interrupt
wd0 at pciide1 channel 0 drive 0: <MAXTOR STM380215AS>
wd0: 16-sector PIO, LBA48, 76319MB, 156301488 sectors
wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 5
usb1 at uhci0: USB revision 1.0
uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb2 at uhci1: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at ichpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
it0 at isa0 port 0x2e/2: IT8712F rev 0x07, EC port 0x290
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
mtrr: Pentium Pro MTRR support
softraid0 at root
root on wd0a swap on wd0b dump on wd0b
em2: watchdog timeout -- resetting
em2: watchdog timeout -- resetting