OVH Cloud OVH Cloud

défaillance réseau

3 réponses
Avatar
Christophe PEREZ
Bonjour,

Ce matin, pour activer une nouvelle option dans mon noyau (direct writing
pour udf), j'ai rebooté mon serveur.
Au boot, j'ai la connexion adsl qui s'est effectuée, comme d'habitude.
Mais là, je me rends compte que je me suis trompé de noyau, je reboote
donc à nouveau.
Et paf, la connexion adsl ne se fait plus.
Sur la machine, j'ai 3 cartes réseau, 1 intégrée, et 2 dlink, pour le
réseau local, pour le réseau wifi (connecté sur un PA), pour le modem
adsl en mode pont.

Après avoir vérifié mes paramètres de connexion, j'ai alors testé ma
connexion physique en inversant les câbles (PA wifi <=> adsl).
Et la connexion est alors fonctionnelle.
Le problème se pose bien du côté de la carte réseau.

Ça pourrait s'arrêter ici si, la carte réseau concernée n'était pas
la carte intégrée, ou s'il me restait des slots PCI libres.

Je cherche donc à savoir si cette carte réseau est réellement morte, ou
si cela pourrait éventuellement venir d'autre chose.

En particulier, j'ai repéré ça dans les logs :
Aug 8 11:55:20 serveur1 kernel: irq 6: nobody cared (try booting with the "irqpoll" option)
Aug 8 11:55:20 serveur1 kernel: <c012a562> __report_bad_irq+0x31/0x74 <c012a63a> note_interrupt+0x7d/0xa3
Aug 8 11:55:20 serveur1 kernel: <c012a128> __do_IRQ+0x65/0x91 <c01040f6> do_IRQ+0x41/0x4e
Aug 8 11:55:20 serveur1 kernel: <c0102b92> common_interrupt+0x1a/0x20 <c012a091> handle_IRQ_event+0x1a/0x4c
Aug 8 11:55:20 serveur1 kernel: <c012a116> __do_IRQ+0x53/0x91 <c01040eb> do_IRQ+0x36/0x4e
Aug 8 11:55:20 serveur1 kernel: =======================
Aug 8 11:55:20 serveur1 kernel: <c0102b92> common_interrupt+0x1a/0x20 <c011007b> recalc_task_prio+0x9/0xd4
Aug 8 11:55:20 serveur1 kernel: <c0117330> __do_softirq+0x2c/0x7d <c01041d3> do_softirq+0x38/0x3f
Aug 8 11:55:20 serveur1 kernel: =======================
Aug 8 11:55:20 serveur1 kernel: <c01040fb> do_IRQ+0x46/0x4e <c0102b92> common_interrupt+0x1a/0x20
Aug 8 11:55:20 serveur1 kernel: <c012a2f1> setup_irq+0x9f/0xe6 <c023655b> rtl8169_interrupt+0x0/0x107
Aug 8 11:55:20 serveur1 kernel: <c012a458> request_irq+0x6f/0x87 <c02355b1> rtl8169_open+0x2c/0x19a
Aug 8 11:55:20 serveur1 kernel: <c023655b> rtl8169_interrupt+0x0/0x107 <c028ba88> dev_open+0x2e/0x63
Aug 8 11:55:20 serveur1 kernel: <c028cab4> dev_change_flags+0x4a/0xeb <c02bc405> devinet_ioctl+0x25a/0x4c8
Aug 8 11:55:20 serveur1 kernel: <c02bddce> inet_ioctl+0x77/0x95 <c0284488> sock_ioctl+0x1a6/0x1c3
Aug 8 11:55:20 serveur1 kernel: <c0150eb2> do_ioctl+0x26/0x4e <c0151101> vfs_ioctl+0x172/0x17f
Aug 8 11:55:20 serveur1 kernel: <c0151154> sys_ioctl+0x46/0x62 <c010295f> sysenter_past_esp+0x54/0x75
Aug 8 11:55:20 serveur1 kernel: handlers:
Aug 8 11:55:20 serveur1 kernel: [<c023655b>] (rtl8169_interrupt+0x0/0x107)
Aug 8 11:55:20 serveur1 kernel: Disabling IRQ #6
Aug 8 11:55:20 serveur1 kernel: r8169: eth2: link up

# mii-tool
eth0: negotiated 100baseTx-FD flow-control, link ok
eth1: no autonegotiation, 10baseT-HD, link ok
SIOCGMIIPHY on 'eth2' failed: Operation not supported

Je ne sais pas trop quoi vous donner comme information complémentaire.

Si tout ça vous dit quelque chose, je suis à votre écoute.
Merci d'avance.

--
Christophe PEREZ
Écrivez moi sans _faute !

3 réponses

Avatar
Vincent Bernat
OoO Lors de la soirée naissante du mardi 08 août 2006, vers 18:13,
Christophe PEREZ disait:

En particulier, j'ai repéré ça dans les logs :
Aug 8 11:55:20 serveur1 kernel: irq 6: nobody cared (try booting with the "irqpoll" option)
Aug 8 11:55:20 serveur1 kernel: <c012a562> __report_bad_irq+0x31/0x74 <c012a63a> note_interrupt+0x7d/0xa3
Aug 8 11:55:20 serveur1 kernel: <c012a128> __do_IRQ+0x65/0x91 <c01040f6> do_IRQ+0x41/0x4e
Aug 8 11:55:20 serveur1 kernel: <c0102b92> common_interrupt+0x1a/0x20 <c012a091> handle_IRQ_event+0x1a/0x4c
Aug 8 11:55:20 serveur1 kernel: <c012a116> __do_IRQ+0x53/0x91 <c01040eb> do_IRQ+0x36/0x4e
Aug 8 11:55:20 serveur1 kernel: ====================== > Aug 8 11:55:20 serveur1 kernel: <c0102b92> common_interrupt+0x1a/0x20 <c011007b> recalc_task_prio+0x9/0xd4
Aug 8 11:55:20 serveur1 kernel: <c0117330> __do_softirq+0x2c/0x7d <c01041d3> do_softirq+0x38/0x3f
Aug 8 11:55:20 serveur1 kernel: ====================== > Aug 8 11:55:20 serveur1 kernel: <c01040fb> do_IRQ+0x46/0x4e <c0102b92> common_interrupt+0x1a/0x20
Aug 8 11:55:20 serveur1 kernel: <c012a2f1> setup_irq+0x9f/0xe6 <c023655b> rtl8169_interrupt+0x0/0x107
Aug 8 11:55:20 serveur1 kernel: <c012a458> request_irq+0x6f/0x87 <c02355b1> rtl8169_open+0x2c/0x19a
Aug 8 11:55:20 serveur1 kernel: <c023655b> rtl8169_interrupt+0x0/0x107 <c028ba88> dev_open+0x2e/0x63
Aug 8 11:55:20 serveur1 kernel: <c028cab4> dev_change_flags+0x4a/0xeb <c02bc405> devinet_ioctl+0x25a/0x4c8
Aug 8 11:55:20 serveur1 kernel: <c02bddce> inet_ioctl+0x77/0x95 <c0284488> sock_ioctl+0x1a6/0x1c3
Aug 8 11:55:20 serveur1 kernel: <c0150eb2> do_ioctl+0x26/0x4e <c0151101> vfs_ioctl+0x172/0x17f
Aug 8 11:55:20 serveur1 kernel: <c0151154> sys_ioctl+0x46/0x62 <c010295f> sysenter_past_esp+0x54/0x75
Aug 8 11:55:20 serveur1 kernel: handlers:
Aug 8 11:55:20 serveur1 kernel: [<c023655b>] (rtl8169_interrupt+0x0/0x107)
Aug 8 11:55:20 serveur1 kernel: Disabling IRQ #6
Aug 8 11:55:20 serveur1 kernel: r8169: eth2: link up


Je suppose que la carte réseau est sur l'IRQ 6 (cat
/proc/interrupts) ? L'erreur indiquée signifie qu'aucun driver n'est
venu réclamé l'interruption sur la ligne 6.

Maintenant, je ne sais pas exactement comment cela
fonctionne. Peut-être que le driver était bloqué ailleurs. Ou
peut-être a-t-il mis trop de temps à traiter l'interruption (parce que
par exemple, la carte ne donnait pas l'info demandée).

As-tu simplement testé avec un live CD pour mettre hors de cause toute
la config logicielle ? As-tu essayé l'option irqpoll comme indiqué ?
--
Make it clear before you make it faster.
- The Elements of Programming Style (Kernighan & Plauger)

Avatar
Christophe PEREZ
Le Tue, 08 Aug 2006 19:04:38 +0200, Vincent Bernat a écrit:

As-tu simplement testé avec un live CD pour mettre hors de cause toute
la config logicielle ? As-tu essayé l'option irqpoll comme indiqué ?


Non, non, parce que sans serveur, tout est coupé ici.
Je n'ai plus rien fait depuis que j'ai réussi à récupérer la connexion
internet. J'en suis à chercher des informations.

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Christophe PEREZ
Le Tue, 08 Aug 2006 13:42:11 -0400, Christophe PEREZ a écrit:

Le Tue, 08 Aug 2006 19:04:38 +0200, Vincent Bernat a écrit:

As-tu simplement testé avec un live CD pour mettre hors de cause toute
la config logicielle ? As-tu essayé l'option irqpoll comme indiqué ?


J'en suis à chercher des informations.


bon, plus je réfléchissais, moins je parvenais à mettre en cause
physiquement la carte réseau. En effet, le fait que la panne se soit
produite pile poil au changement de noyau m'a fortement fait douter.

J'ai donc passé plusieurs heures à compiler des noyaux, à rebooter, et
à tester le fonctionnement de l'interface réseau.
A l'heure actuelle, ça fonctionne, et je suis maintenant sûr que ça
vient du noyau, mais j'ai été complètement incapable de trouver quelle
option exactement est en cause.

A un moment, j'ai cru que c'était l'absence de APIC et/ou IOAPIC, mais
non, car le même noyau, en désactivant ou activant juste l'une ou
l'autre de ces 2 options, fonctionne.
Je n'ai pas eu le courage de passer ma nuit à tester une par une les
autres options, d'autant qu'avec les dépendances entre options (la
désactivation de l'une en désactivant une autre), je ne m'en sortais
plus.

Ce que je crois pouvoir affirmer (mais sans même en être sûr tellement
j'ai réussi à me mélanger les pinceaux) c'est que l'erreur devrait
être parmi ceci (diff noyau avec erreur => noyau sans erreur):
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-gentoo-r4
-# Mon Aug 7 16:03:43 2006
+# Tue Aug 8 19:22:21 2006
#
CONFIG_X86_32=y
CONFIG_SEMAPHORE_SLEEPERS=y
@@ -139,9 +139,13 @@
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
-# CONFIG_X86_UP_APIC is not set
+CONFIG_X86_UP_APIC=y
+CONFIG_X86_UP_IOAPIC=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
+CONFIG_X86_MCE_P4THERMAL=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
@@ -197,17 +201,15 @@
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_SLEEP_PROC_FS=y
-# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
+# CONFIG_ACPI_SLEEP is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
# CONFIG_ACPI_BUTTON is not set
# CONFIG_ACPI_VIDEO is not set
# CONFIG_ACPI_HOTKEY is not set
-CONFIG_ACPI_FAN=m
-CONFIG_ACPI_PROCESSOR=m
-CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_FAN is not set
+CONFIG_ACPI_PROCESSOR=y
+# CONFIG_ACPI_THERMAL is not set
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_IBM is not set
# CONFIG_ACPI_TOSHIBA is not set
@@ -242,6 +244,7 @@
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_PCIEPORTBUS is not set
+# CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
@@ -1568,6 +1571,8 @@
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_RODATA is not set
CONFIG_4KSTACKS=y
+CONFIG_X86_FIND_SMP_CONFIG=y
+CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y


D'ailleurs, tant que j'y suis, comme je ne suis jamais trop sûr de mes
options, et que je ne parviens pas bien à cerner l'histoire de (L)APIC,
avec un proc tel que :
# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Celeron(R) CPU 2.66GHz stepping : 1 cpu
MHz : 2667.423
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
constant_tsc up pni monitor ds_cpl cid xtpr bogomips : 5339.01

Je vois apic, je dois donc avoir CONFIG_X86_LOCAL_APIC ou pas ?
Et pour le CONFIG_X86_IO_APIC, on voit aussi un flag du processeur ou pas ?
En clair et résumé, dois-je ou pas les activer ?

Si vous voulez bien réduire un peu mon ignorance...
Merci.


--
Christophe PEREZ
Écrivez moi sans _faute !