# [Noyau] Configuration de l’ACPI et du multi-processeurs

## Le Farfadet Spatial

Salut à tous !

   Au cours de la phase d’initialisation, alors que « Waiting for uevents to be processed … » s’affiche, j’ai un long délai d’attente. En accord avec ce que j’ai pu trouver sur net, j’ai fait une copie de sauvegarde puis supprimé les fichiers « /etc/udev/rules.d/70-persistent*.rules ». Ensuite, j’ai tapé la commande suivante :

```

emerge udev

```

   Le calcul des dépendances se passe bien. Cependant, le système bloque à ce niveau :

```

>>> Downloading ’http://distfiles.gentoo.org/distfiles/udev-164.tar.bz2’

--2011-07-18 22:13:14-- http://distfiles.gentoo.org/distfiles/udev-164.tar.bz2

Resolving distfiles.gentoo.org…

```

   Ce qui est d’autant plus étrange, c’est que je peux basculer d’une console virtuelle à une autre. En revanche, rien d’autre n’a d’effet : <Ctr> + <C> ou <Ctrl> + <Z> n’a pas d’effet dans la console virtuelle dans laquelle j’ai lancé la réinstallation. Dans les autres consoles virtuelles, je ne peux même pas me connecter. En revanche, les diodes « Caps lock » et « Num lock » répondent encore. Également, l’écran se met encore en veille et je peux le faire sortir de veille. Je n’ai pas la moindre idée de ce qui peut être à l’origine de ce problème. À tout hasard, je vais laisser l’ordinateur tourner pendant la nuit, mais tout cela me semble tout de même étrange.

   À bientôt.

   Le Farfadet SpatialLast edited by Le Farfadet Spatial on Wed Aug 03, 2011 7:20 pm; edited 3 times in total

----------

## Le Farfadet Spatial

Salut à tous !

   J’ai laissé l’ordinateur tourner toute la nuit, au matin il était toujours au même point. Pas d’autre solution que de l’éteindre sauvagement en appuyant sur l’interrupteur.

   Je me suis dit que peut-être serait-il préférable de remettre à jour :

```

# emerge --update --deep --world

 * IMPORTANT: 2 news items need reading for repository ’gentoo’.

 * Use eselect news to read news item.

Calculating dependencies… done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) sys-kernel/gentoo-sources-2.6.39-r3

>>> Downloading ’http://distfiles.gentoo.org/distfiles/linux-2.6.39.tar.bz2’

--2011-07-19 21:50:48--  http://distfiles.gentoo.org/distfiles/linux-2.6.39.tar.bz2

Resolving distfiles.gentoo.org…

```

   Arrivé là, de nouveau, tout bloque, si ce n’est que l’écran se met encore en veille et que je parviens encore à le faire sortir de la veille en appuyant sur une touche arbitraire.

   Après avoir appuyé sur le bouton « reset » et lu les deux nouvelles, j’ai tenté la resynchronisation : même problème. J’ai voulu tenter autre chose :

```

# emerge -e world

Calculating dependencies… done!

>>> Verifying ebuild  manifests

>>> Starting parallel fetch

>>> Emerging (1 of 154) sys-libs/zlib-1.2.5-r2

>>> Downloading ’http://distfiles.gentoo.org/distfiles/zlib-1.2.5.tar.bz2

Resolving distfiles.gentoo.org… 199.6.1.167, 130.239.17.7, 149.20.20.135, …

Connecting to distfiles.gentoo.org|199.6.1.167|80… connected.

HTTP request sent, awaiting response… 302 not found

Location: http://mirrors.kernel.org/gentoo/distfiles/zlib-1.2.5.tar.bz2 [following]

--2011-07-19 22:09:06--  http://mirrors.kernel.org/gentoo/distfiles/zlib-1.2.5.tar.bz2

Resolving mirrors.kernel.org… 149.20.20.135, 149.20.4.71, 130.239.17.1, …

Reusing existing connection to distfiles.gentoo.org:80.

HTPP request sent, awaiting response… 200 OK

Length: 486374 (475K) [application/x-bzip2]

Saving to: ‘/usr/portage/distfiles/zlib-1.2.5.tar.bz2’

26% [=========>                             ] 127,851     309K/s

```

   À ce stade, à nouveau, tout bloque – je ne parle pas de gel dans la mesure où je peux encore changer de console virtuelle, mais toujours est-il que je ne peux même pas ouvrir une nouvelle connexion et que je n’ai pas d’autre solution que d’appuyer sur le bouton « marche/arrêt » ou « reset ». J’ai essayé « emerge emerge », mais j’ai eu encore le même problème.

   Il me semble que j’ai un problème de configuration, mais je ne sais pas d’où cela peut venir et je n’ai pas trouvé un moyen de résoudre mon problème dans la documentation.

   À bientôt.

   Le Farfadet Spatial

----------

## Poussin

Pas d'erreur dans les logs au moment du "blocage"?

----------

## Le Farfadet Spatial

Salut à tous !

 *Poussin wrote:*   

> 
> 
> Pas d'erreur dans les logs au moment du "blocage"?
> 
> 

 

   Désolé, c’est vrai que j’aurais dû en parler. Je suis dubitatif quant à ce qui y est indiqué. Par exemple, voici ce que donne /var/log/emerge.log au sujet d’une commande qui a bloqué :

```

1311018793: Started emerge on: Jul 18, 2011 21:53:13

1311018793:  *** emerge  udev

1311018793:  >>> emerge (1 of 1) Cleaning (sys-fs/udev-164-r2::/usr/portage/sys-fs/udev/udev-164-r2.ebuild)

```

   Je ne suis pas encore habitué des logs de Emerge, mais cela me donne l’impression que cette entrée est normale. Voilà tout ce que j’ai au sujet du « emerge -e world » :

```

1311106142: Started emerge on: Jul 19, 2011 22:09:02

1311106142:  *** emerge --emptytree world

1311106142:  >>> emerge (1 of 154) sys-libs/zlib-1.2.5-r2 to /

1311106142:  === (1 to 154) Cleaning (sys-libs/zlib-1.2.5-r2::/usr/portage/sys-libs/zlib/zlib-1.2.5-r2.ebuild)

```

   Encore une fois, je ne vois rien qui semble anormal. En revanche, on voit que le processus n’est pas allé au bout. Je n’ai rien trouvé qui me semble intéressant dans « /var/log/emerge-fetch.log », ni dans le répertoire « /var/log/portage/ ». Bref, je suis perdu.

   À bientôt.

   Le Farfadet Spatial

----------

## barul

Je pense pas que les logs de portage nous intéressent. Je pense que le /var/log/messages est plus important. Durant une update, tu peux faire

```
tail -f /var/log/messages
```

durant une update, puis nous poster le résultat ; tu peux nous montrer une photo, ou tenter de tout recopier, ou n'importe quel autre moyen existant pour nous montrer les erreurs.

----------

## Le Farfadet Spatial

Salut à tous !

 *Cr0k wrote:*   

> 
> 
> tu peux nous montrer une photo, ou tenter de tout recopier, ou n'importe quel autre moyen existant pour nous montrer les erreurs.
> 
> 

 

   Oui, car pour le coup difficile d’utiliser « pastebin ».

   Toutefois, avant de faire cela, je me suis souvenu que mes problèmes étaient arrivés lorsque j’ai changé le nombre de processeurs dans le noyau.

   Mon processeur étant quadri-cœurs, j’avais réglé la valeur à quatre dans le noyau. Cependant, au moment de lancer l’ACPI, j’avais un message indiquant que huit cœurs étaient détectés. En fouillant un peu sur Internet (je ne me souviens plus des URLs exactes), j’ai compris (peut-être de travers) qu’avec la technologie hyperthreading, chaque cœur est détecté comme deux processeurs, ce qui menait bien à huit. En conséquence, j’ai réglé la valeur du nombre de processeurs à huit dans le noyau. Je me suis alors souvenu (j’ai l’impression de faire le compte rendu d’un épisode de Colombo) qu’on règle dans Emerge le nombre de compilations à lancer en parallèle. Comme mes problèmes ont commencé à ce moment, je me suis dit que le problème se révèle à la première application faisant appel aux multiples processeurs.

   Du coup, j’ai replacé la valeur du nombre de processeurs à quatre et j’ai lancé une synchronisation, qui s’est passé sans problème, ensuite une mise à jour qui est passé toute seule, là je recompile tous les composants du système et pour l’instant tout va bien.

   Donc, il semble bien que la bonne valeur pour le nombre de processeurs est quatre. Cela dit, si quelqu’un peut m’expliquer plus en détail comment le noyau gère le multi-processeurs, je pense que ça ne me ferait pas de mal. En tout cas, le problème est résolu, merci – je reste tout de même intéressé par une bonne référence sur la façon dont le noyau gère le multi-processeurs.

   À bientôt.

   Le Farfadet Spatial

----------

## _Seth_

 *Le Farfadet Spatial wrote:*   

> Donc, il semble bien que la bonne valeur pour le nombre de processeurs est quatre. Cela dit, si quelqu’un peut m’expliquer plus en détail comment le noyau gère le multi-processeurs, je pense que ça ne me ferait pas de mal. 

 

Tu as un quatre coeurs, soit quatre processeurs physiques qui partagent une partie de leurs ressources (cache L2). Le noyau linux gère les multi-coeurs avec SMP (Symmetric multiprocessing) très correctement depuis le 2.6 en affectant un liste de tâches à chaque coeur (et même une liste de variables spécifiques à chaque coeur). En activant SMP dans le noyau et en indiquant le nombre maximum de coeurs dont tu disposes, tu peux tirer pleinement parti de ton matériel. 

En pratique, avoir plusieurs coeurs n'a d'intérêt que si tu utilises des applis multi-threads, c'est à dire qui lancent plusieurs tâches en parallèle; chaque tâche étant affectée sur un coeur, tous les coeurs sont utilisés et ton système peut faire fonctionner ton matériel à plein régime. Sauf que même dans le meilleur des cas, il y a toujours des opérations bloquante ou séquentielle qui ne fonctionnent pas en multi-threads, sans parler des programmes monolithiques (dans le sens non multi-threads). Au quotidien, l'utilisation de tes coeurs dépend ainsi principalement des programmes que tu lances.

En plus de cela, Intel a developpé l'HyperThreading (HT), une techno qui permet de dédoubler artificiellement chaque coeur : si l'option est activé dans le bios, le noyau voit deux fois plus de processeurs que le nombre de coeurs "physiques" (si tu as 8 coeurs, avec l'HT un petit cat /proc/cpuinfo te montrera 16 coeurs). Très sommairement, l'idée d'Intel part du fait que les tâches affectées à chaque coeur sont gérées à interval régulier : si dans un interval donné ton coeur a fini sa tâche, il est inactif. En faisant croire au système que chaque coeur correspond à deux processeurs, l'HT permet de surcharger chaque coeur. Comme chaque coeur a plus de travail, il y a moins de chance qu'il soit inactif. C'est très raccourci mais c'est l'idée. Coté performance, cela dépend de tes applications et de la charge de travail, en caricaturant c'est bien pour un desktop pas trop chargé. 

Pour terminer, emerge te permet de configurer les options que tu passes à make lors de la compilation, dont en particulier le nombre de jobs simultanés (-j). Tu peux voir cela comme des tâches lancées en parallèle. Si je n'ai pas été trop obscur, tu dois avoir compris qu'il est intéressant d'indiquer un nombre de jobs proportionnel à ton nombre de coeur. La page man de make.conf te propose de choisir MAKEOPTS="-jX" où X est compris entre CPUs+1  and  2*CPUs+1. Tu peux également regarder du coté de l'option --load-average de emerge qui te permet de réguler le nombre de jobs si la charge est déjà trop importante.

J'espère t'avoir aidé à y voir un peu plus clair   :Smile: 

----------

## Le Farfadet Spatial

Salut à tous !

 *_Seth_ wrote:*   

> 
> 
> Tu as un quatre coeurs, soit quatre processeurs physiques qui partagent une partie de leurs ressources (cache L2). Le noyau linux gère les multi-coeurs avec SMP (Symmetric multiprocessing) très correctement depuis le 2.6 en affectant un liste de tâches à chaque coeur (et même une liste de variables spécifiques à chaque coeur). En activant SMP dans le noyau et en indiquant le nombre maximum de coeurs dont tu disposes, tu peux tirer pleinement parti de ton matériel. 
> 
> En pratique, avoir plusieurs coeurs n'a d'intérêt que si tu utilises des applis multi-threads, c'est à dire qui lancent plusieurs tâches en parallèle; chaque tâche étant affectée sur un coeur, tous les coeurs sont utilisés et ton système peut faire fonctionner ton matériel à plein régime. Sauf que même dans le meilleur des cas, il y a toujours des opérations bloquante ou séquentielle qui ne fonctionnent pas en multi-threads, sans parler des programmes monolithiques (dans le sens non multi-threads). Au quotidien, l'utilisation de tes coeurs dépend ainsi principalement des programmes que tu lances.
> ...

 

   Je te remercie de me rappeler les bases, c’est toujours bienvenu. Pour t’aider à m’aider, je t’indique où j’en suis.

   J’en suis à presque une quinzaine d’année d’utilisation de système dérivé d’UNIX dont Linux. Comme j’utilise Linux chez moi, je fais aussi un peu d’administration, mais l’avantage c’est qu’il existe maintenant des distributions pour lesquelles cette administration est très simplifiée dans le cas d’une machine de bureau – le revers de la médaille, c’est que l’on passe à côtés de pas mal d’éléments. Je suis aussi en train de monter mon propre serveur, que j’administre avec Debian, mais je n’en suis qu’au tout début, pour l’instant cela ne m’a pas encore fait engranger de l’expérience.

   Pour mon travail, je fais du calcul scientifique, typiquement sur des clusters. Par contre, dans ce cadre, je ne suis pas administrateur de la machine, d’autres s’en chargent. Avec des bibliothèques telles que MPI, on n’a pas à s’inquiéter de savoir comment cela se passe au niveau du système. En plus, vu que l’on cherche à isoler autant que possible chacun des processus (ce qui est je pense assez classique comme approche), ce que l’on peut faire au niveau du parallélisme est finalement assez simple. Également, une fois que le code est parallélisé, on a un peu tendance à laisser ce problème de côté. De plus, ce n’est pas exactement la même chose que pour les applications bureautiques.

   Conclusion, j’ai utilisé le noyau, mais je n’ai qu’une idée vague de comment cela se passe en interne. Notamment, c’est la première fois que je compile mon propre noyau. J’ai aussi fait des expérimentations autour des architectures parallèles, mais si j’ai des notions, je ne peux pas prétendre être un spécialiste. En tout cas, les deux paragraphes que j’ai cités correspondent à ce que j’ai déjà vu par ailleurs, j’arrive à suivre. En revanche, pour pouvoir configurer au mieux, je me demande encore quels sont les principes dans le noyau pour gérer le multi-processeurs. À l’occasion, il faudra que je regarde la partie ordonnanceur du noyau, mais pas dans l’immédiat, il faut déjà que je mette en place un système Gentoo opérationnel – et, accessoirement, il doit me servir à faire des choses, pas seulement à mettre en place et administrer un système.

 *Quote:*   

> 
> 
> En plus de cela, Intel a developpé l'HyperThreading (HT), une techno qui permet de dédoubler artificiellement chaque coeur : si l'option est activé dans le bios, le noyau voit deux fois plus de processeurs que le nombre de coeurs "physiques" (si tu as 8 coeurs, avec l'HT un petit cat /proc/cpuinfo te montrera 16 coeurs). Très sommairement, l'idée d'Intel part du fait que les tâches affectées à chaque coeur sont gérées à interval régulier : si dans un interval donné ton coeur a fini sa tâche, il est inactif. En faisant croire au système que chaque coeur correspond à deux processeurs, l'HT permet de surcharger chaque coeur. Comme chaque coeur a plus de travail, il y a moins de chance qu'il soit inactif. C'est très raccourci mais c'est l'idée. Coté performance, cela dépend de tes applications et de la charge de travail, en caricaturant c'est bien pour un desktop pas trop chargé.
> 
> 

 

   Par contre, si j’ai un peu suivi les annonces d’Intel autour de l’introduction de l’hyperthreading, je n’ai pas approfondit comment cela fonctionne techniquement. Puisque le noyau semblait détecter deux fois plus de processeurs que de cœurs et à partir de ce que j’avais un peu collecté sur Internet, il m’avait semblé qu’il était bienvenu de déclarer huit cœurs dans le noyau, mais c’était de toute évidence une erreur. Dis-moi si j’ai bien compris : il me semble que, finalement, l’hyperthreading[i] est une astuce pour forcer une utilisation importante du [i]pipeline.

 *Quote:*   

> 
> 
> Pour terminer, emerge te permet de configurer les options que tu passes à make lors de la compilation, dont en particulier le nombre de jobs simultanés (-j). Tu peux voir cela comme des tâches lancées en parallèle. Si je n'ai pas été trop obscur, tu dois avoir compris qu'il est intéressant d'indiquer un nombre de jobs proportionnel à ton nombre de coeur. La page man de make.conf te propose de choisir MAKEOPTS="-jX" où X est compris entre CPUs+1  and  2*CPUs+1. Tu peux également regarder du coté de l'option --load-average de emerge qui te permet de réguler le nombre de jobs si la charge est déjà trop importante.
> 
> 

 

   Pour l’instant, comme ce qui est conseillé dans le [url="http://www.gentoo.org/doc/fr/handbook/handbook-amd64.xml"]Gentoo Handbook[/url], j’ai configuré ainsi :

```

MAKEOPTS=-j5

```

   Je verrais si je change cela plus tard.

   Merci pour les informations, avec un peu de chance tu pourras m’en dire un peu plus.

   À bientôt.

   Le Farfadet Spatial

----------

## guilc

Vos histoires me semblent un peu étranges. Vous vous escrimez à brider le nombre de CPU détectés par le noyau. Mais il sait faire ça très bien tout seul. Le réglage par défaut est 8, si tu as <= 8 cores logiques, inutile de toucher ça, il peut seulement être utile de monter la valeur pour les octocores avec HT (16 cores logiques). Pour le reste, le noyau se débrouille.

Par contre, si tu as de l'hyperthreading, il faut activer l'option CONFIG_SCHED_SMT en plus de CONFIG_SMP.

Si ton système freeze en cas d'utilisation de l'HT, ça peut traduire un problème matériel plus inquiétant, mais certainement pas un défaut de support de linux, qui gère très bien l'HT depuis des lustres... Tu ne devrais pas avoir à brider quoi que ce soit... Exemple, en utilisant l'HT, tu vas augmenter la pression sur les caches et la RAM. L'utilisation de l'HT peut donc mettre en évidence plus rapidement un défaut à ce niveau là. Je te suggère donc de lancer un petit memtest !

PS: l'HT, c'est un peu plus que "faire croire" qu'il y a 2 processeurs dans un seul : tous les registres sont dédoublés, seule l'unité de calcul est commune.

----------

## Le Farfadet Spatial

Salut à tous !

 *guilc wrote:*   

> 
> 
> Vos histoires me semblent un peu étranges.
> 
> 

 

   Je découvre le problème de manière assez empirique, il est donc parfaitement possible que je n’ai compris les choses que de manière partielle, voir tout simplement de travers.

 *Quote:*   

> 
> 
> Vous vous escrimez à brider le nombre de CPU détectés par le noyau. Mais il sait faire ça très bien tout seul. Le réglage par défaut est 8, si tu as <= 8 cores logiques, inutile de toucher ça, il peut seulement être utile de monter la valeur pour les octocores avec HT (16 cores logiques). Pour le reste, le noyau se débrouille.
> 
> 

 

   Jusqu’à ce que je compile mon propre noyau, c’est ce qui me semblait. Cependant, aujourd’hui, j’en suis à ce constat : chez-moi, en déclarant quatre processeurs, ça fonctionne, avec huit j’ai un blocage (plus qu’un gel).

 *Quote:*   

> 
> 
> Par contre, si tu as de l'hyperthreading, il faut activer l'option CONFIG_SCHED_SMT 
> 
> 

 

   J’ai vérifié, c’est activé.

 *Quote:*   

> 
> 
> en plus de CONFIG_SMP.
> 
> 

 

   Du coup, j’ai vérifié : c’est activé également.

 *Quote:*   

> 
> 
> Je te suggère donc de lancer un petit memtest !
> 
> 

 

   J’ai lancé Memtest : j’en suis à deux passes sans erreur. Je vais aller au bout de la troisième pour être sûr, mais j’ai bien l’impression que le problème ne vient pas de là.

 *Quote:*   

> 
> 
> PS: l'HT, c'est un peu plus que "faire croire" qu'il y a 2 processeurs dans un seul : tous les registres sont dédoublés, seule l'unité de calcul est commune.
> 
> 

 

   Bon, je vais essayer de regarder  la documentation d’Intel sur le sujet. Que pensez-vous de l’entrée Wikipédia le concernant ?

   Sinon, la mise à jour m’a téléchargé un nouveau noyau (2.6.39). Comment faites-vous dans un tel cas ? Je pensais copier le fichier « .configure » du précédent noyau (2.6.3 :Cool:  et vérifier derrière avec « make menuconfig » qu’il n’y a rien à changer. Est-ce une bonne idée ?

   À bientôt.

   Le Farfadet Spatial

----------

## Poussin

 *Le Farfadet Spatial wrote:*   

> Sinon, la mise à jour m’a téléchargé un nouveau noyau (2.6.39). Comment faites-vous dans un tel cas ? Je pensais copier le fichier « .configure » du précédent noyau (2.6.3 et vérifier derrière avec « make menuconfig » qu’il n’y a rien à changer. Est-ce une bonne idée ?

 

Deux possibilités:

1/ Rien! Si tu dois t'amuser à changer de kernel chaque fois qu'un nouveau est dispo, t'es pas couché

2/ Comme le message elog de ce kernel de l'a indiqué et que tu as bien lu j'en suis sur (   :Twisted Evil:  ), tu lis cette page:  http://www.gentoo.org/doc/en/kernel-upgrade.xml

----------

## guilc

 *Le Farfadet Spatial wrote:*   

>  *Quote:*   
> 
> Vous vous escrimez à brider le nombre de CPU détectés par le noyau. Mais il sait faire ça très bien tout seul. Le réglage par défaut est 8, si tu as <= 8 cores logiques, inutile de toucher ça, il peut seulement être utile de monter la valeur pour les octocores avec HT (16 cores logiques). Pour le reste, le noyau se débrouille.
> 
>  
> ...

 

Oui mais pour moi, ta "solution" reste uniquement un contournement.

 *Quote:*   

>  *Quote:*   
> 
> Je te suggère donc de lancer un petit memtest !
> 
>  
> ...

 

Donc c'est pas la RAM.

Mais je persiste à penser qu'il y a un souci non-logiciel. Que linux plantouille sur un driver exotique c'est une chose, mais sur le support de l'HT, là, même pas en rêve, c'est bien trop utilisé/testé  :Wink: 

Et tu as testé ce genre d'opération sur un LiveCD, avec un noyau générique (qui va te détecter les 4 cores + HT, donc les 8 cores logiques) ?

----------

## scherz0

 *Le Farfadet Spatial wrote:*   

> Jusqu’à ce que je compile mon propre noyau, c’est ce qui me semblait. Cependant, aujourd’hui, j’en suis à ce constat : chez-moi, en déclarant quatre processeurs, ça fonctionne, avec huit j’ai un blocage (plus qu’un gel).

 

Et ça fonctionnerait aussi en déclarant un seul processeur.  Attention à ne pas inverser le raisonnement :  comme déjà indiqué par guilc, le fait que ça fonctionne avec 4 et pas avec 8 indique très probablement un problème au niveau en dessous.  Ça ne signifie pas que 4 est le paramètre correct pour cette machine.

Le nombre de processeurs paramétrés sert à dimensionner la mémoire allouée dans le noyau pour les gérer.  Le nombre de processeurs effectivement utilisés sera le minimum entre ce paramètre et le nombre de processeurs détectés.  Sur un matériel fonctionnant normalement, on peut ainsi en déclarer plus que le nombre de processeurs effectivement disponibles.  Ça n'a pas d'autre conséquence que de gaspiller un peu de mémoire.

Le matériel est-il configuré de façon normale avec tous les paramètres par défaut (fréquences, délais mémoire, etc.) ou a-t-il été "optimisé" ?

Quand le système se bloque, que se passe-t-il lors du déclenchement d'un reboot (Ctrl-Alt-Suppr) ?

 *Quote:*   

> Dans les autres consoles virtuelles, je ne peux même pas me connecter.

 

Est-il possible de saisir le login ?  Si oui, est-il possible de saisir le mot de passe ?

----------

## Le Farfadet Spatial

Salut à tous !

 *Poussin wrote:*   

> 
> 
> 2/ Comme le message elog de ce kernel de l'a indiqué et que tu as bien lu j'en suis sur (   ), tu lis cette page:  http://www.gentoo.org/doc/en/kernel-upgrade.xml
> 
> 

 

   Tiens, la mise à jour m’a donné de la lecture, mais je n’avais pas vu ça. J’ai dû le rater. Cela dit, j’aurais dû me douter qu’il y avait de la documentation sur la mise à jour du noyau.

 *guilc wrote:*   

> 
> 
> Et tu as testé ce genre d'opération sur un LiveCD, avec un noyau générique (qui va te détecter les 4 cores + HT, donc les 8 cores logiques) ?
> 
> 

 

   « cat /proc/cpuinfo » depuis le live-cd me compte quatre cœurs, mais je ne suis pas certain qu’il devrait m’en donner huit.

 *guilc wrote:*   

> 
> 
> Mais je persiste à penser qu'il y a un souci non-logiciel.
> 
> 

 

   Cela fait un bon mois que je teste et fait tester le matériel dans tous les sens. Il est tout à fait possible que j’ai raté quelque chose, mais ce qui me paraît le plus crédible c’est que j’ai fait une erreur dans la configuration du noyau (que l’on fasse une erreur qui conduise à un résultat étrange la première fois que l’on compile le noyau n’est pas quelque chose d’exceptionnel). Reste à trouver laquelle.

 *scherz0 wrote:*   

> 
> 
> Le matériel est-il configuré de façon normale avec tous les paramètres par défaut (fréquences, délais mémoire, etc.) ou a-t-il été "optimisé" ? 
> 
> 

 

   Non, je ne fais pas d’overcloacking et autres choses de ce genre qui sont à mon avis une erreur. Au niveau du BIOS, la configuration est aussi standard que j’en suis capable.

 *scherz0 wrote:*   

> 
> 
> Quand le système se bloque, que se passe-t-il lors du déclenchement d'un reboot (Ctrl-Alt-Suppr) ?
> 
> 

 

   Rien : je suis obligé d’appuyer sur le bouton « reset ».

 *scherz0 wrote:*   

> 
> 
> Est-il possible de saisir le login ?
> 
> 

 

   Non. C’est un peu comme si le clavier ne répondait pas. Sauf que la combinaison <Ctrl> + <Fn> agit toujours comme attendu, c’est-à-dire que cela me fait basculer dans la console virtuelle n.

   À bientôt.

   Le Farfadet Spatial

----------

## guilc

 *Le Farfadet Spatial wrote:*   

> Cela fait un bon mois que je teste et fait tester le matériel dans tous les sens. Il est tout à fait possible que j’ai raté quelque chose, mais ce qui me paraît le plus crédible c’est que j’ai fait une erreur dans la configuration du noyau (que l’on fasse une erreur qui conduise à un résultat étrange la première fois que l’on compile le noyau n’est pas quelque chose d’exceptionnel). Reste à trouver laquelle.
> 
> 

 

D'où l'idée de tester les mêmes opérations depuis un noyau générique de livecd  :Wink: 

Si le même problème survient sur livecd => problème matériel, sinon problème de conf noyau.

----------

## Le Farfadet Spatial

Salut à tous !

 *guilc wrote:*   

> 
> 
> D'où l'idée de tester les mêmes opérations depuis un noyau générique de livecd 
> 
> 

 

   Justement, je n’ai pas détecté de problème particulier avec des Live CDs. À un moment, j‘avais également installé Fedora sur la machine et je n‘avais pas de problème. La seule chose, c’est que je ne suis pas trop sûr de la bonne méthode pour s’assurer que l’hypethreading fonctionne comme il faut.

   Cela dit, décidément, je doute que le problème soit matériel, je pense tout de même qu’à la longue je l’aurais détecté.

   À bientôt.

   Le Farfadet Spatial

----------

## barul

C'est pas compliqué de savoir si l'HT fonctionne bien ou pas ; si ton OS t'affiche le double de cores que tu es censé avoir, il fonctionne.

----------

## Le Farfadet Spatial

Salut à tous !

 *Cr0k wrote:*   

> 
> 
> C'est pas compliqué de savoir si l'HT fonctionne bien ou pas ; si ton OS t'affiche le double de cores que tu es censé avoir, il fonctionne.
> 
> 

 

   Oui, j’ai bien compris que si l’hypethreading est actif, le noyau doit détecter le double des cœurs physiques présent. Encore faut-il savoir où le système est censé afficher le nombre de cœurs…

   Comme je l’ai indiqué précédemment, à partir du LiveCD, « /etc/procinfo » indique quatre cœurs, non pas huit, sachant que mon processeur, un i5, dispose de quatre cœurs et supporte l’hyperthreading. Maintenant, je ne sais pas si je peux en déduire que l’hyperthreading est défectueux au niveau matériel, c’est-à-dire que le processeur est défectueux.

   À bientôt.

   Le Farfadet Spatial

----------

## Winnt

Salut,

Selon le processeur il peut n'avoir que des coeurs physiques sans aucun coeurs logiques.

Tu aura les infos concernant ton processeur ici.

Perso mon i5 750 est correctement détecté (4 coeurs).

----------

## guilc

 *Le Farfadet Spatial wrote:*   

> « /etc/procinfo » indique quatre cœurs, non pas huit, sachant que mon processeur, un i5, dispose de quatre cœurs et supporte l’hyperthreading.

 

Impossible !

AUCUN core i5 avec 4 cores + HT n'existe !

Les cores i5 sont soit dualcore+HT, soit quadcore sans HT

Voir là : http://ark.intel.com/mysearch.aspx?FamilyText=Previous%20Generation%20Intel%C2%AE%20Core%E2%84%A2%20i5%20Processor et là : http://ark.intel.com/mysearch.aspx?FamilyText=2nd%20Generation%20Intel%C2%AE%20Core%E2%84%A2%20i5%20Processors : tous sont à 4 threads (mais 2 ou 4 cores), la combinaison 4 cores 8 threads (donc quadcore+HT) n'existe que en i7.

Donc que ton /proc/cpuinfo ne remonte que 4 cpu (virtuels ou réels suivant ton modèle) est tout à fait normal !

----------

## Le Farfadet Spatial

Salut à tous !

 *guilc wrote:*   

> 
> 
> AUCUN core i5 avec 4 cores + HT n'existe !
> 
> Les cores i5 sont soit dualcore+HT, soit quadcore sans HT
> ...

 

   Très juste, je viens de m’en apercevoir.

   Mon processeur a quatre cœurs et pas d’hyperthreading. Ce qui m’a fait croire qu’il en était pourvu, c’est qu’au moment d’activer l’ACPI, le noyau m’envoyait un message comme quoi huit cœurs étaient détectés.

 *Quote:*   

> 
> 
> Donc que ton /proc/cpuinfo ne remonte que 4 cpu (virtuels ou réels suivant ton modèle) est tout à fait normal !
> 
> 

 

   Hé bien oui. Du coup, je pense décidément que le problème ne vient pas du matériel. Pour que j’ai eu ce message comme quoi huit cœurs étaient détectés, puis ce blocage, je pense que c’est décidément que j’ai fait une erreur dans la configuration du noyau. Sans doute quelque part dans la configuration du multi-processeurs et de l’ACPI.

   À bientôt.

   Le Farfadet Spatial

----------

## Le Farfadet Spatial

Salut à tous !

   Comme visiblement il y a un problème dans la configuration de mon noyau, j’ai profité de la nouvelle version pour en refaire une de zéro. Cependant, j’ai créé un kernel panic :

```

[   62.555918] VFS: Cannot open root device "sda1" or unknown-block(0,0)

[   62.557310] Please append a correct "root=" boot option; here are the available partitions:

[   62.558725] Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

[   62.560140] Pid: 1, comm: swapper Not tainted 2.6.39-gentoo-r3 #1

[   62.561553] Call trace:

[   62.562962]  [<fffffffff815713df>] panic+0x9b/0x1a0

[   62.564369]  [<fffffffff81571520>] ? printk+0x3c/0x44

[   62.565770]  [<fffffffff817dff14>] mount_block_root+0x1d8/0x27f

[   62.567174]  [<fffffffff817e0011>] mount_root+0x56/0x5a

[   62.568561]  [<fffffffff817e0150>] prepare_namespace+0x13b/0x168

[   62.569945]  [<fffffffff817df67b>] kernel_init+0x125/0x130

[   62.571326]  [<fffffffff810395c2>] ? schedule_tail+0x22/0xa0

[   62.572694]  [<fffffffff815759d4>] kernel_thread_helper+0x4/0x10

[   62.574052]  [<fffffffff817df556>] ? parse_early_options+0x20/0x20

[   62.575413]  [<fffffffff815759d0>] ? gs_change+0xb/0xb

```

   J’ai encore un peu de mal à lire les informations données, mais j’ai l’impression qu’il ne reconnaît pas mes disques. Quelques informations :

```

$ lspci -knn 

[…]

00:1f.2 SATA controller [0106]: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller [8086:3b22] (rev 06)

        Subsystem: Giga-byte Technology Device [1458:b005]

02:00.0 SATA controller [0106]: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller [197b:2363] (rev 02)

        Subsystem: Giga-byte Technology GA-EP45-DS5 Motherboard [1458:b000]

02:00.1 IDE controller [0106]: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller [197b:2363] (rev 02)

        Subsystem: Giga-byte Technology GA-EP45-DS5 Motherboard [1458:b000]

[…]

```

   Dans le noyau, j’ai activé en built in le support AHCI et JMicron.

   J’ai une partition /dev/sda1 en Ext4 qui doit être montée sur /, une partition /dev/sda5 en Ext4 qui doit être montée sur /home et une partition /dev/sdb1 en Ext4 qui doit être montée sur /mnt/disque2.

```

title Gentoo Linux 2.6.39-r3

root (hd0,0)

kernel /boot/linux-2.6.39-gentoo-r3 root=/dev/sda1 i8042.noaux

```

   Si quelqu’un a une idée sur ce que j’ai fait de mal, je suis preneur.

   À bientôt.

[right]Le Farfadet Spatial[/right]

----------

## barul

Tu es bien sûr que /dev/sda1 est / et pas /boot? Sinon, tu as bien activé le support de l'ext4 en dur dans la config du noyau?

----------

## Le Farfadet Spatial

Salut à tous !

 *Cr0k wrote:*   

> 
> 
> Tu es bien sûr que /dev/sda1 est / et pas /boot?
> 
> 

 

   Absolument certain.

 *Quote:*   

> 
> 
> Sinon, tu as bien activé le support de l'ext4 en dur dans la config du noyau?
> 
> 

 

   Oui, j’ai oublié de le préciser : j’ai bien activé le support Ext 4 en dur (built-in).

   À bientôt.

   Le Farfadet Spatial

----------

## barul

Voilà mon grub.conf : 

```
title Gentoo Linux

root (hd0,0)

kernel /boot/kernel-3.0.0 root=/dev/sda3
```

L'option root (hdX,X) doit contenir la partition /boot. Je n'ai pas bien compris ton schéma, en partition différente tu n'as que / et /home sur ton disque ?

----------

## xaviermiller

Hello,

Ne serait-ce pas mieux de scinder ce message en deux ? Il y a deux sujets distincts : paquets bloqués (résolu) et configuration de GRUB.

----------

## Le Farfadet Spatial

Salut à tous !

 *Cr0k wrote:*   

> 
> 
> L'option root (hdX,X) doit contenir la partition /boot. Je n'ai pas bien compris ton schéma, en partition différente tu n'as que / et /home sur ton disque ?
> 
> 

 

   J’ai deux disques. Le premier comporte deux partitions, la première montée sur « / », la deuxième sur « /home ». Le deuxième disque n’a qu’une seule partition, montée sur « /mnt/disque2 ». Donc, « /boot » est sur « sda1 ». Sauf erreur de ma part, dans la dénomination GRUB, cela s’écrit « (hd0,0) ». Par ailleurs, cette configuration fonctionne avec le noyau précédent, ce qui tend à me fait dire qu’il n’y a pas d’erreur quant à la dénomination de la partition sur laquelle se situe « /boot ». Je pense qu’il est peu probable que le problème vienne de là. D’autant que dans le message du kernel panic, aucune partition ne semble détectée, ce qui me parait plutôt signifier qu’il y a un problème dans la configuration des disques durs au niveau du noyau.

 *XavierMiller wrote:*   

> 
> 
> Ne serait-ce pas mieux de scinder ce message en deux ? Il y a deux sujets distincts : paquets bloqués (résolu) et configuration de GRUB.
> 
> 

 

   Je n’en suis pas certain : de ce qui ressort de ce fil, le blocage d’Emerge était en fait un symptôme révélant un problème de configuration du noyau, lequel problème n’est toujours pas résolu – j’ai voulu utiliser le nouveau noyau pour remettre la configuration à plat. Par ailleurs, pour l’instant les éléments ne m’ont pas l’air révélateurs d’un problème de configuration de GRUB. En revanche, le titre porte à confusion, je vais donc le changer.

   À bientôt.

   Le Farfadet Spatial

----------

## guilc

Bien sûr tu ne serais pas victime de ça https://forums.gentoo.org/viewtopic-p-6763612.html#6763612 ?

----------

## Le Farfadet Spatial

Salut à tous !

 *guilc wrote:*   

> 
> 
> Bien sûr tu ne serais pas victime de ça https://forums.gentoo.org/viewtopic-p-6763612.html#6763612 ?
> 
> 

 

   Franchement, je n’étais sûr de rien. J’ai donc vérifié : j’ai bien CONFIG_MSDOS_PARTITION configuré en dur (built-in). Cependant, la piste m’a l’air bonne : j’ai sans doute fait une bêtise de ce genre.

   À bientôt.

   Le Farfadet Spatial

----------

## Le Farfadet Spatial

Salut à tous !

   J’ai fait de petites modifications régulières dans la configuration du noyau. Au bout d’un moment, le noyau a enfin pu s’initialiser. Je ne sais toujours pas exactement quel était le fond du problème. Je ne désespère pas de vraiment comprendre le fonctionnement interne du noyau, mais pour l’instant je n’ai pas encore assez d’expérience pour cela, alors je vais dans l’immédiat me contenter de ça.

   J’ai encore des problèmes et je ne suis pour l’instant pas certain que l’initial soit réglé, mais là ça commence vraiment à se ramifier, je vais donc mettre fin à ce fil de discussion pour l’instant et en commencer de nouveaux.

   À bientôt.

   Le Farfadet Spatial

----------

