View previous topic :: View next topic |
Author |
Message |
LostControl l33t
Joined: 02 Mar 2004 Posts: 885 Location: La Glane, Suisse
|
Posted: Tue May 04, 2004 7:06 pm Post subject: [NPTL] Faut-il recompiler ? (débat) |
|
|
Salut,
J'ai lu à plusieurs endroits sur ce forum que des gens recompilent leurs applis systèmes voir même tout leurs packages (emerge -e world) après avoir compilé la glibc avec le support des threads NPTL. J'affirme (sans garantie ) que c'est totalement inutile si les applications sont linkées dynamiquement !!! En effet, les exécutables seront toujours linkés dynamiquement à /lib/libpthread.so.0 qui lui utilisera l'implémentation des threads NPTL. Voici 2 sorties pour étoffer mes dires :
Code: | localhost root # ldd /opt/sun-jdk-1.4.2.04/bin/java
linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40026000)
libdl.so.2 => /lib/libdl.so.2 (0x40036000)
libc.so.6 => /lib/libc.so.6 (0x40039000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) |
Code: | localhost root # /lib/libpthread.so.0
NPTL 0.60 by Ulrich Drepper
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Forced unwind support included. |
On voit bien ici que l'exécutable "java" est linké à libpthread.so.0 et que libpthread.so.0 utilise l'implémentation des NPTL. C'est du reste fort visible en exécutant une application java avec des threads : un "ps" ne retourne plus que le processus de base et non autant de "processus" qu'il y a de threads comme c'était le cas avec les LinuxThreads.
Les améliorations de performances obtenues par la recompilation d'une application (OpenOffice par exemple) pour "profiter" des NPTL après la compilation d'une glibc en NPTL sont tout à fait subjectives ! Ou viennent du fait que souvent l'utilisateur en profite pour passer à une nouvelle version de la glibc...
Le débat est ouvert
P.S. Ces propos n'engagent que moi... |
|
Back to top |
|
|
TGL Bodhisattva
Joined: 02 Jun 2002 Posts: 1978 Location: Rennes, France
|
Posted: Wed May 05, 2004 7:52 am Post subject: |
|
|
Le cas de openoffice est particulier : biensûr il sera dans tous les cas linké avec une libpthread basée sur les nptl. Mais il y a qlqs bidouilles dans le code qui font qu'il n'en tirera pas bien parti. C'est ce que corrige un patch qui est appliqué quand le USE flag "nptl" est utilisé. Donc dans ce cas particulier, réemerger peut se défendre, il y a effectivement une différence. Bon maintenant, ça veut pas dire que c'est considérable, j'en sais rien. On peut très bien se dire que ça ne vaudra pas ses 10 heures de compil' et donc activer le USE flag en se disant que ça n'est qu'à la prochaine mise à jour qu'on en tirera parti.
Ce cas se retrouve en gros dans les qlqs autres paquets utilisant le même USE flag. Donc de manière générale, je pense que faire un "emerge -e world" n'a effectivement aucun intérêt, mais que par contre on peut éventuellement réemerger les paquets utilisant ce flag.
Pour les lister: Code: | # cd /var/db/pkg
# grep nptl */*/IUSE | sed 's:/IUSE.*::' | Il devrait y en avoir très peu. |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Wed May 05, 2004 8:57 am Post subject: |
|
|
Quelle version de la glibc faut-il avoir pour pouvoir profiter du nptl ???
Le USEflag est présent sur la glibc stable (glibc-2.3.2-r9) mais sur certains
threads, il est indiqué qu'il faut utiliser la version tilchardée.
Qu'en est-il ?? _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
LostControl l33t
Joined: 02 Mar 2004 Posts: 885 Location: La Glane, Suisse
|
Posted: Wed May 05, 2004 10:07 am Post subject: |
|
|
Pour ma part, j'utilise la glibc-2.3.2-r9 en NPTL depuis peu. J'ai eu 2 freezes de mon portable ces derniers jours (bouton on/off pour redémarrer ) Je ne sais pas si le problème vient de là !? Mais ça ne m'était plus arrivé depuis que j'ai viré les drivers ATI proprio !!
Si ça me replante au nez, je vais essayer avec une glibc-2.3.3.
A+ |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Wed May 05, 2004 11:46 am Post subject: |
|
|
Mouais, ça n'est pas trop rassurant tout ça ...
En tout cas, merci pour l'info. _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
zarasoustra17 Guru
Joined: 01 Jul 2003 Posts: 382 Location: Marseille France
|
Posted: Wed May 05, 2004 4:11 pm Post subject: |
|
|
Ca fait 2 mois que j'ai installé NPTL en réémergeant uniquement la glibc, à part quelques programmes qui plantaient ça allait et je n'ai pas constaté de freeze système. Depuis, j'ai réemerger au fur et à mesure tous les programmes qui posaient problème aprés avoir quand même réemerger en premier gcc et qt et c'est hyper stable(plus qu'avant) et les compils sont beaucoup plus rapides, ce qui sur Gentoo n'est pas à négliger...
Seul petit bémol, le driver nvidia est encore moins bien supporté par le noyau mais j'ai bon espoir que d'ici 2026 nvidia se rende compte que le kernel 2.6 existe... |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Wed May 05, 2004 4:57 pm Post subject: |
|
|
zarasoustra17 wrote: | aprés avoir quand même réemerger en premier gcc et qt et c'est hyper stable(plus qu'avant) |
Pourquoi as-tu re-émerger ces paquets ??
Ils n'ont pas le flag concernant le nptl ??
zarasoustra17 wrote: | le driver nvidia est encore moins bien supporté par le noyau |
Pffff ...
Déja que ma carte rame tout ce qu'elle peut ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
zarasoustra17 Guru
Joined: 01 Jul 2003 Posts: 382 Location: Marseille France
|
Posted: Wed May 05, 2004 5:13 pm Post subject: |
|
|
Quote: | Pourquoi as-tu re-émerger ces paquets ??
Ils n'ont pas le flag concernant le nptl ?? |
Quand je change de glibc, je recompile toujours gcc derrière, quant à qt, comme j'avais pas mal d'applis kde à recompiler, je voulais être sûr que tout irait bien...
Comme on dit: 40 précautions valent mieux qu'aucune.
en ce qui concerne nvidia, il n'y a pas de baisses de perf mais la liste des warning du kernel s'allonge encore un peu plus qu'avant avec de nouvelles variantes: Quote: | 0: nvidia: trying to map 0xd00ff000 to kernel space, but we're in an interrupt or holding a spinlock
|
Multipliez par 800 et vous avez mon dmesg... |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Thu May 06, 2004 8:22 am Post subject: |
|
|
zarasoustra17 wrote: | Quand je change de glibc, je recompile toujours gcc derrière, quant à qt, comme j'avais pas mal d'applis kde à recompiler, je voulais être sûr que tout irait bien...
Comme on dit: 40 précautions valent mieux qu'aucune. |
zarasoustra17 wrote: | en ce qui concerne nvidia, il n'y a pas de baisses de perf mais la liste des warning du kernel s'allonge encore un peu plus qu'avant
[snip]
Multipliez par 800 et vous avez mon dmesg... | Curieux ça, je n'ai aucun warning concernant ma carte dans le dmesg : modèle tnt2, version stable de nvidia-kernel et dernier noyau 2.6 gentoo.
Je crois que je vais tester ce flag nptl ... (d'autant que le version de ximian-ooo viens de changer).
Merci pour ces infos. _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
Sleeper l33t
Joined: 12 Nov 2002 Posts: 667
|
Posted: Thu May 06, 2004 8:26 am Post subject: |
|
|
zarasoustra17 wrote: | es compils sont beaucoup plus rapides, ce qui sur Gentoo n'est pas à négliger...
|
Je crois qu'on avait deja parler dans un autre thread, mais je ne vois pas trop pourquoi les compils seraient plus rapides avec la NPTL que sans ..
Quote: |
Seul petit bémol, le driver nvidia est encore moins bien supporté par le noyau mais j'ai bon espoir que d'ici 2026 nvidia se rende compte que le kernel 2.6 existe... |
Pareil .. les NPTL n'ont rien a voir avec le driver de ta nVidia il me semble .... |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Thu May 06, 2004 2:23 pm Post subject: |
|
|
HELP !!!
Je viens de ré-emerger ma glibc avec le flag nptl (et gcc par la suite).
Ensuite, j'ai fais le "grep nptl */*/IUSE | sed 's:/IUSE.*::'" indiqué par TGL : deux paquets seulement (dont la glibc, le second étant fltk que j'ai ré-émergé).
Maintenant, je rencontre de nombreux "segmentation fault" : avec xmms, avec glxinfo, xscreensaver qui ne fonctionne plus (écran noir) etc.
Aurai-je oublié quelque chose (genre dans le kernel ou autre) ???
Faut-il rebooter ??? _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
zarasoustra17 Guru
Joined: 01 Jul 2003 Posts: 382 Location: Marseille France
|
Posted: Thu May 06, 2004 4:18 pm Post subject: |
|
|
Quote: | je ne vois pas trop pourquoi les compils seraient plus rapides avec la NPTL que sans .. |
c'est quoi pour vous NPTL ?
un gadget geek a la mode ?
c'est la nouvelle bibliothèque de gestion des Threads propre au noyau 2.6, donc si les threads sont mieux gérés, les applis sont executés plus rapidemment et comme gcc est justement une appli....
Maintenant si tu penses que NPTL n'apporte rien en terme de performances, c'est ton avis, sur mon PC c'est le jour et la nuit pour les compils mais c'est peut-être un lutin qui est venu me rajouter un deuxième processeur sans que je m'en rende compte.
NPTL est gratuit et je ne touche aucune royalties, si j'ai posté ici c'est pour donner mes impressions et je rappelle que le sujet du débat, c'est faut-il recompiler et non est-ce vraiment utile
Sinon Linux est un système threadé, c'est à dire qu'on ne réinstalle pas 2 fois les mêmes bibliothèques étant donné qu'elles sont partagées, donc rien ne dit qu'un exécutable (y compris les drivers nvidia) compilé avec telle glibc continuera à fonctionner avec une nouvelle glibc, voila pourquoi j'ai réemergé au fur et à mesure les logiciels qui posaient problème donc yoyo: emerge Xfree( ou xorg-x11) xmms.
Je tiens à rappeler que la glibc est la base du système donc un emerge -e world est la solution la plus logique pour les perfectionnistes.
Pour ma part, j'ai préféré faire au fur et à mesure des updates et/ou des segfaults...
Quant au rapport avec les bugs de nvidia, je ne fais que constater et me lamenter vu que c'est closed-source et closed-documenté.
Le mieux c'est d'essayer et se faire sa propre opinion, rien n'empeche d'enlever le useflag nptl et de réemerger glibc si vous vous voulez revenir à l'ancien système... |
|
Back to top |
|
|
guilc Bodhisattva
Joined: 15 Nov 2003 Posts: 3326 Location: Paris - France
|
Posted: Thu May 06, 2004 4:20 pm Post subject: |
|
|
Sleeper wrote: |
Je crois qu'on avait deja parler dans un autre thread, mais je ne vois pas trop pourquoi les compils seraient plus rapides avec la NPTL que sans ..
|
Ben je sais pas, mais je gagne 1H sur un emerge -e world : je passe de 22H à 21H... Donc bon, je reste convaincu que ça a un effet... _________________ Merci de respecter les règles du forum.
Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Thu May 06, 2004 4:27 pm Post subject: |
|
|
zarasoustra17 wrote: | donc yoyo: emerge Xfree( ou xorg-x11) xmms. | Je l'ai fait pour xmms mais cela n'a pas résolu mon problème ...
Par contre, je n'ai pas les kernel-headers du 2.6 (mais dans un autre thread il était indiqué que cela était inutile).
Sinon, je trouve aussi que les compil' durent moins longtemps et utilisent moins de ressources (ce qui semble assez paradoxal). Mais cet avis est purement subjectif donc absolument pas fiable ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
zarasoustra17 Guru
Joined: 01 Jul 2003 Posts: 382 Location: Marseille France
|
Posted: Thu May 06, 2004 4:41 pm Post subject: |
|
|
Quote: | Je l'ai fait pour xmms mais cela n'a pas résolu mon problème ... |
Tu devrais le lancer avec gdb pour savoir quelle librairie est en cause, ça peut être X, gtk, alsa-libs, libmpeg..., je te conseille de commencer par X.
Quant j'ai emergé glibc, j'en ai profité pour passer à xorg (j'aime bien relever les défis), après, j'ai eu des plantages des applis kde donc j'ai reémergé qt.
Après ça allait beaucoup mieux. C'est plus important de réémerger d'abord les grosses libs principales du système(X,Gtk ou QT, gcc...). |
|
Back to top |
|
|
LostControl l33t
Joined: 02 Mar 2004 Posts: 885 Location: La Glane, Suisse
|
Posted: Thu May 06, 2004 4:49 pm Post subject: |
|
|
Depuis que j'ai recompilé glibc avec NPTL, j'ai pas noté de problèmes... J'ai recompilé AUCUNE application ! Pas besoin du package linux-headers-2.6.x ! L'ebuild va directement chercher les headers du noyau 2.6 que tu as installé
J'ai fait la manip avec gcc-3.3.2, glibc-2.3.2-r9 et un kernel 2.6.5.
A+ |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Thu May 06, 2004 5:02 pm Post subject: |
|
|
LostControl wrote: | J'ai fait la manip avec gcc-3.3.2, glibc-2.3.2-r9 et un kernel 2.6.5. |
J'ai la même chose ici : tout ces paquets en version stables mais je rencontre pas mal de problèmes comme tu peux le voir.
Je m'accroche ...
Quels sont vos CFLAGS ?? J'ai peur que les miens soient trop durs (mais ils ne me posaient pas de problème avant ...) : CFLAGS="-march=pentium3 -Os -pipe -mfpmath=sse -msse -mmmx -fomit-frame-pointer -fforce-addr -falign-functions=4 -fPIC"
Je sais qu'il y a des redondances ... Soyez tolérants ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
guilc Bodhisattva
Joined: 15 Nov 2003 Posts: 3326 Location: Paris - France
|
Posted: Thu May 06, 2004 5:35 pm Post subject: |
|
|
moi, j'ai ça :
Quote: | CFLAGS="-march=pentium4 -Os -mcpu=pentium4 -msse -msse2 -mmmx -mfpmath=sse,387 -fomit-frame-pointer -ffast-math -funroll-loops -pipe" |
Tu est en stable, peut-etre faut-il passer la glibc en ~x86... _________________ Merci de respecter les règles du forum.
Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing |
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Thu May 06, 2004 5:39 pm Post subject: |
|
|
Moi :
Code: |
CFLAGS=" -g -pipe -march=pentium4 -mcpu=pentium4 -mfpmath=sse,387 -O2 -frename-registers -fomit-frame-pointer -ffast-math -fforce-addr"
|
et je suis en ~x86 _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Thu May 06, 2004 5:42 pm Post subject: |
|
|
guilc wrote: | Tu est en stable, peut-etre faut-il passer la glibc en ~x86... |
Je suis en train de recompiler X.
Si ça ne donne rien, je passerai en ~ pour la glibc ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
Bastux Guru
Joined: 15 Dec 2002 Posts: 369 Location: France - Paris
|
Posted: Thu May 06, 2004 6:04 pm Post subject: |
|
|
putain j'ai recompilé 3x la glibc parce qu'elle me donnait pas les bons résultats (elle plantait que je faisais un /lib/libc.so.6) mais apparemment il faut passer en ~x86 pour que ça marche...
Qu'est-ce qu'il faut en plus? J'ai installé les linux-header 2.5.1 c'est bon? gcc il faut quelle version aussi?
Et ça rajoute beaucoup de passer en NPTL ou c'est juste pour la forme? |
|
Back to top |
|
|
zarasoustra17 Guru
Joined: 01 Jul 2003 Posts: 382 Location: Marseille France
|
Posted: Thu May 06, 2004 6:10 pm Post subject: |
|
|
J'ai glibc en x86 avec : Code: | [ebuild R ] sys-libs/glibc-2.3.2-r9
[ebuild R ] sys-devel/gcc-3.3.2-r5
[ebuild R ] sys-kernel/mm-sources-2.6.5-r6
| et mes CFAGS: Code: | CFLAGS="-march=athlon-xp -O2 -pipe
-fomit-frame-pointer -mmmx -msse -m3dnow -O2
-mfpmath=387 -falign-functions=4"
|
|
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Thu May 06, 2004 6:16 pm Post subject: |
|
|
Bastux wrote: | putain j'ai recompilé 3x la glibc parce qu'elle me donnait pas les bons résultats (elle plantait que je faisais un /lib/libc.so.6) mais apparemment il faut passer en ~x86 pour que ça marche...
Qu'est-ce qu'il faut en plus? J'ai installé les linux-header 2.5.1 c'est bon? gcc il faut quelle version aussi?
Et ça rajoute beaucoup de passer en NPTL ou c'est juste pour la forme? |
Plus besoin des headers, il faut juste les sources d'un kernel 2.6 dans /usr/src/linux
de toute facon, il me semble qu'il faut un kernel 2.6 pour profiter de NPTL ... _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
LostControl l33t
Joined: 02 Mar 2004 Posts: 885 Location: La Glane, Suisse
|
Posted: Thu May 06, 2004 7:23 pm Post subject: |
|
|
kernel_sensei wrote: | de toute facon, il me semble qu'il faut un kernel 2.6 pour profiter de NPTL ... |
C'est obligatoire d'avoir un kernel 2.6. En tout cas pour les kernels officiels.
Code: | CFLAGS="-O2 -march=pentium3 -pipe -fomit-frame-pointer -fforce-addr -frename-registers -fprefetch-loop-arrays -falign-functions=64" |
Sur un Intel Centrino 1.5GHz
Quote: | Et ça rajoute beaucoup de passer en NPTL ou c'est juste pour la forme? |
Je te conseille la lecture de ce document nptl-design.pdf. Et surtout regarde bien les graphiques à la fin
A+ |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Fri May 07, 2004 7:34 am Post subject: |
|
|
yoyo wrote: | Je suis en train de recompiler X.
Si ça ne donne rien, je passerai en ~ pour la glibc ... | Des nouvelles du front :
Après avoir réinstallé X, je n'arrivai plus à le faire démarrer. J'avais un problème au niveau de l'opengl.
Je fais un "opengl-update xfree" et la, mon X se lance correctement.
Ni une ni deux, "emerge nvidia-kernel nvidia-glx" puis "opengl-update nvidia".
Miracle, mon X redémarre sans problème, le glxinfo, xmms, xscreensaver etc. fonctionnent sans problème.
Donc tout semble revenu dans l'ordre.
Je ne sais pas si la réinstallation de X a eu un effet mais il semblerait qu'il faille re-émerger les librairies opengl.
Sinon, j'utilise les versions stables de gcc, glibc et gentoo-dev-sources et je n'ai pas les kernels-headers.
Si je rencontre d'autres problèmes, j'ouvrirai un autre post : ça devient une manie chez moi de détourner les sujets des threads ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
|