Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[NPTL] Faut-il recompiler ? (débat)
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
LostControl
l33t
l33t


Joined: 02 Mar 2004
Posts: 885
Location: La Glane, Suisse

PostPosted: Tue May 04, 2004 7:06 pm    Post subject: [NPTL] Faut-il recompiler ? (débat) Reply with quote

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 :wink:) 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 :D

P.S. Ces propos n'engagent que moi...
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Wed May 05, 2004 7:52 am    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Wed May 05, 2004 8:57 am    Post subject: Reply with quote

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
View user's profile Send private message
LostControl
l33t
l33t


Joined: 02 Mar 2004
Posts: 885
Location: La Glane, Suisse

PostPosted: Wed May 05, 2004 10:07 am    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Wed May 05, 2004 11:46 am    Post subject: Reply with quote

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
View user's profile Send private message
zarasoustra17
Guru
Guru


Joined: 01 Jul 2003
Posts: 382
Location: Marseille France

PostPosted: Wed May 05, 2004 4:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Wed May 05, 2004 4:57 pm    Post subject: Reply with quote

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 ... :evil:
Déja que ma carte rame tout ce qu'elle peut ... :(
_________________
La connaissance s'accroît quand on la partage.
JCB
Back to top
View user's profile Send private message
zarasoustra17
Guru
Guru


Joined: 01 Jul 2003
Posts: 382
Location: Marseille France

PostPosted: Wed May 05, 2004 5:13 pm    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Thu May 06, 2004 8:22 am    Post subject: Reply with quote

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.
:wink:

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. :wink:
_________________
La connaissance s'accroît quand on la partage.
JCB
Back to top
View user's profile Send private message
Sleeper
l33t
l33t


Joined: 12 Nov 2002
Posts: 667

PostPosted: Thu May 06, 2004 8:26 am    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Thu May 06, 2004 2:23 pm    Post subject: Reply with quote

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
View user's profile Send private message
zarasoustra17
Guru
Guru


Joined: 01 Jul 2003
Posts: 382
Location: Marseille France

PostPosted: Thu May 06, 2004 4:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Thu May 06, 2004 4:20 pm    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Thu May 06, 2004 4:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
zarasoustra17
Guru
Guru


Joined: 01 Jul 2003
Posts: 382
Location: Marseille France

PostPosted: Thu May 06, 2004 4:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
LostControl
l33t
l33t


Joined: 02 Mar 2004
Posts: 885
Location: La Glane, Suisse

PostPosted: Thu May 06, 2004 4:49 pm    Post subject: Reply with quote

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é :D

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Thu May 06, 2004 5:02 pm    Post subject: Reply with quote

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 ... :evil:

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 ... :wink:
_________________
La connaissance s'accroît quand on la partage.
JCB
Back to top
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Thu May 06, 2004 5:35 pm    Post subject: Reply with quote

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
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Thu May 06, 2004 5:39 pm    Post subject: Reply with quote

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
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Thu May 06, 2004 5:42 pm    Post subject: Reply with quote

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
View user's profile Send private message
Bastux
Guru
Guru


Joined: 15 Dec 2002
Posts: 369
Location: France - Paris

PostPosted: Thu May 06, 2004 6:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
zarasoustra17
Guru
Guru


Joined: 01 Jul 2003
Posts: 382
Location: Marseille France

PostPosted: Thu May 06, 2004 6:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Thu May 06, 2004 6:16 pm    Post subject: Reply with quote

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
View user's profile Send private message
LostControl
l33t
l33t


Joined: 02 Mar 2004
Posts: 885
Location: La Glane, Suisse

PostPosted: Thu May 06, 2004 7:23 pm    Post subject: Reply with quote

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 :wink:

A+
Back to top
View user's profile Send private message
yoyo
Bodhisattva
Bodhisattva


Joined: 04 Mar 2003
Posts: 4273
Location: Lyon - France

PostPosted: Fri May 07, 2004 7:34 am    Post subject: Reply with quote

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. :D :D :D

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 ... :oops:
_________________
La connaissance s'accroît quand on la partage.
JCB
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum