# attivare la nptl?

## ScolaBirra

Ciao,

stavo leggendo questo articolo e c'e' un punto che mi ha stuzzicato. Viene indicato di settare la nptl (native posix thread library) che e' 4 volte piu' veloce della classica linuxthread library. Sarei interessato a farlo, ma devo ammettere che ho un po' paura a farlo. Quello che volevo sapere e' se ci sono rischi che qualcosa non vada piu' dopo averla settata. In particolare ho programmi come matlab, mathematica e altri che sono sempre molto sensibili ai cambiamenti della glibc...

Qualcuno sa qualcosa?

Ciao

Scola

----------

## Mistobaan

La volevo provare anche io   :Cool: 

Ma quando ho fatto emerge della libc con il flag attivo aveva come dipendenza il kernel vecchio...

2.6.8 ho desistito 

 :Razz: 

Qualcuno l'ha provata?

----------

## federico

```

Calculating dependencies ...done!

[blocks B     ] sys-kernel/linux-headers (from pkg sys-kernel/linux26-headers-2.6.8.1-r1)

[ebuild  N    ] sys-kernel/linux26-headers-2.6.8.1-r1  

[ebuild   R   ] sys-libs/glibc-2.3.4.20041102  

```

Blocco a parte dovuto al fatto che i miei linux heads sono vecchi, non vuole emergerti e usare il kernel 2.6.8 ma solo gli headers di tale kernel !

Ero interessato anche io a questo ma non ho capito una cosa, se e' cosi' buona perche' non viene utilizzata per default?

Fede

----------

## gutter

Io ho compilato le libc con il supporto a ntpl come si puo vedere sotto:

```
gutter@morpheus ~ $ /lib/libc.so.6 

GNU C Library 20040808 release version 2.3.4, by Roland McGrath et al.

Copyright (C) 2004 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.

Compiled by GNU CC version 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6).

Compiled on a Linux 2.6.8 system on 2004-10-12.

Available extensions:

        GNU libio by Per Bothner

        crypt add-on version 2.1 by Michael Glad and others

        Native POSIX Threads Library by Ulrich Drepper et al

        BIND-8.2.3-T5B

        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk

Thread-local storage support included.

For bug reporting instructions, please see:

<http://www.gnu.org/software/libc/bugs.html>.
```

I maggiori aumenti di prestazioni si ottengono nelle applicazioni scritte in java. Per il resto la differenza non è evidentissima. 

Naturalmente le applicazioni che fanno uso intensivo di thread trarranno giovamento dalle NTPL   :Wink: 

----------

## federico

ok dai basta. lo sto facendo  :Smile: 

Aggiunta use nptl in make.conf ..

----------

## lavish

Mi pareva di aver letto che tutte le principali distro hanno le glibc con il supporto NPTL di default.. ma non ricordo la fonte   :Confused: 

----------

## abaddon83

io le avevo messe poi le ho volute togliere, ma mentre emerge stava sostituendo le bilc_nptl con quelle senza mi è andato tutto in segmfault.... ed è stato il devasto. Non so se dipende dalle libc sto problema, pero' mi è capitato, ho pensato che passare alle nptl è possibile, toglierle è un suicidio, pero' potrei sbagliarmi.

----------

## ScolaBirra

Ecco, ho ri-emergiato la glibc con i nptl e eldo mi dice

 *Quote:*   

> /softs/mentor/eldo/v6.3_2.1/i686/os2.4/eldo.exe: relocation error: /softs/mentor/eldo/v6.3_2.1/i686/os2.4/eldo.exe: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

 

rimettendo i linux_thread tutto torna a funzionare.

----------

## oRDeX

+nptl anche per me   :Wink:   adesso si ricompila il mondo   :Very Happy: 

----------

## GhePeU

usate un ebuild masked >=glibc-2.3.4.20041102

con l'use +nptl in questo caso vengono compilate sia la versione nptl, attiva di default, che quella linuxthreads. nel caso del software si rifiuti di funzionare con le nptl basta impostare la variabile LD_ASSUME_KERNEL=2.4.1 per risolvere il problema

----------

## Ministers

avevo letto non ricordo bene dove che pero' non si puo' fare un'istallazione da zero abilitando dallo stage1 la USE nptl

questo è vero? visto che ho intenzione di installare gentoo anche sul fisso vorrei sapere se posso farlo o no  :Smile: 

ciao

Ministers

----------

## Ambrosa

Vi riporto quello che ho scritto ieri qui  https://forums.gentoo.org/viewtopic.php?t=260445

Ho rifatto da zero l'altro ieri la mia macchina. La precedente "messa in opera" risaliva a circa 1 mese fa ed avevo usato il minimal CD 2004.2, senza "nptl"

Non essendo avvezzo a Gentoo (uso RedHat dalla rel 4.0 o giu' di li'), avevo fatto un po' di casini.

Quindi ecco l'idea di fare tabula rasa e ripartire da zero. E gia' che c'ero ho introdotto l' "nptl".

Quindi le due installazioni sono praticamente identiche, con la sola differenza dell'uso di "nptl" e la partenza con il CD Minimal 2004.3-r1 anziche' del precedente 2004.2

Sempre kernel 2.6

La differenza e' visivamente (in KDE) impressionante: molto piu' veloce. "nptl" o no ora sono soddisfatto.

----------------------------------------------------------------------------

CD MINIMAL 2004.3-R1

Io ho avuto un problema con il flag USE "nptl" (Native Posix Thread Library) in fase di bootstrap (baco di bootstrap.sh oppure mia inesperienza ??)

Se date un occhiata allo script bootstrap.sh noterete che se viene usato tale flag allora la fase di bootstrap scarica i kernel headers 2.6.x (necessari per NPTL) anziche' 2.4.x .

Avendo intenzione di usare kernel 2.6.x l'idea che le mie librerie C siano compilate usando appunto gli header 2.6.x mi sembrava ottima.

A posteriori oltrettutto mi sono accorto che avendo indicato il flag "nptl" i successivi pacchetti venivano compilati con l'opzione del gcc "-pthread" includendo quindi, laddove possibile, direttamente nei vari sw il supporto multithreading.

Beh, a parita' di installazione (la precedente risaliva ad 1 mese fa poi l'altro giorno ho fatto tabula rasa ed ho reinstallato tutto) ora la mia macchina (un P4 2.4GHz) e' diventata velocissima, visivamente la risposta dell'apertura finestre impiega circa meta' tempo. Che sia stata l'inclusione dei thread grazie a "nptl" ?

Sia come sia, lanciata la fase di bootstrap mi accorgevo che venivano scaricati prima i kernel headers 2.6.x (linux26-header-2.6.8.1) , emergiati e successivamente scaricati ed emergiati i kernel headers 2.4.x (linux-headers-2.4.21-r1) che andavano a sovrascrivere parzialmente gli header 2.6

Dopo un po' di compilazioni varie la fase di bootstrap si interrompe proprio all'inizio della compilazione delle glibc indicando che sono installati gli header 2.4 incompatibili con "nptl".

A questo punto, tentando il tutto per tutto, ho cancellato headers 2.4 (emerge -C linux-headers-2.4.21-r1) , ho rimegergiato gli headers 2.6 (emerge linux26-header-2.6.8.1) e riavviato il bootstrap il quale ha proseguito compilandomi le glibc e tutto il resto senza colpo ferire.

Devo dire che ora sono soddisfatto e la macchina e' veramente molto veloce.

----------

## fedeliallalinea

@Ministers: https://forums.gentoo.org/viewtopic.php?t=189250

----------

## Ambrosa

Dal tuo suggerimento:

=============================================

 2.6.x Stable linux-headers are a must for nptl - updated

-----------------------------------------------------------------

The developers have been slowly making the migration to 2.6 allot easier and it's no longer nessesary to unmask linux2.6-headers to allow use of the latest linux headers. Previously I would add sys-kernel/linux26-headers ~x86 to package.keywords but Lv changed the ebuilds to allow unfettered use of these packages with no special keywording if your using ~x86 in make.conf. Regardless you must remove the default 2.4.x headers favoring building toolchain for a 2.6 linux kernel *using* 2.6.x linux-headers not the latter 2.4 fodder that runs like redhat/fedora or a kid with a soggy diaper if you prefer... 

============================================

Fin qui nulla da dire. Il problema e' che lo script di bootstrap (2004.3-r1) lavora in modo non corretto.

Scarica prima i 2.6 e poi subito dopo scarica i 2.4 e viene fuori un bel minestrone.

Da qui lo stop del bootstrap e la necessita' di intervenire manualmente.

Avendo indicato "nptl" lo script bootstrap.sh dovrebbe scaricare solo i 2.6 e non ANCHE i 2.4

Questo sembra affermare la mia stessa cosa:

==========================================

With the release of 2004.3 gentoo has defaulted to 2.6 kernels on the livecd but bootstrapping with 2.6 still requires rac's linux26-header solution regardless as bootstrapping without it adds linux-headers as a dependancy and also /lib/cpp sanity errors when gettext is built during bootstrap.

============================================

----------

## Ministers

 *fedeliallalinea wrote:*   

> @Ministers: https://forums.gentoo.org/viewtopic.php?t=189250

 

ma GRAZIE!   :Very Happy: 

sempre molto gentile  :Smile: 

Ministers

----------

## Kern3lP4nic

Ciao a tutti,

premetto che ho approfondito molto poco sull'argomento, ma ho una piccola domanda: è proprio necessario ricompilare tutto il sistema per avvantaggiarsi dell'nptl? Se non sbaglio le glibc sono librerie dinamiche, quindi non basterebbe ricompilare quelle dopo aver piazzato la use flag?

grazie

----------

## Onip

io l'ho fatto giusto ieri. volevo solo aggiungere che dopo c'è bisogno (o, almeno io ho avuto bisogno di farlo....) di riemergere anche i driver nvidia, se avete queste schede. altrimenti niente X, o meglio, una bella schermata nera al suo posto...

byez.....

p.s. anche a me interesserebbe sapere se devo effetivamente ricompilare tutto o se basta ricompilare le glibc

----------

## fbcyborg

Io ho appena installato l'fbsplash del livecd-2006.0 (thread guida) ed ecco l'errore che appare quando deve partire l'interfaccia grafica: 

```
X: relocation error: X: symbol __guard, version GLIBC_2.3.2 not defined in file libc.so.6 with link time reference

giving up.

xinit:  Connection refused (errno 111):  unable to connect to X server

xinit:  No such process (errno 3):  Server error.

```

non riesco a venirne fuori, su altri post ho letto che bisogna ricompilare xorg.. possibile????

ho letto che tutto si rimette apposto.. ma possibile che aggiornando glibc da 2.3.2 a 2.4 sia successo tutto sto casino?

----------

## .:chrome:.

 *fbcyborg wrote:*   

> ho letto che tutto si rimette apposto.. ma possibile che aggiornando glibc da 2.3.2 a 2.4 sia successo tutto sto casino?

 

oh cacchio... ma sei fuori? glibc 2.4 non sono ancora state testate con niente...  :Sad: 

poi non ho capito cosa c'entra questo con il thread  :Confused: 

----------

## inspiron

```

l-(root)-(16 March 2006 - 00:05)-(charged,top)

mq-(/home/marco)-> emerge -aDv glibc

These are the packages that I would merge, in order:

Calculating dependencies  ...done!

[ebuild   R   ] sys-libs/glibc-2.3.5-r2  -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthreads-tls (-multilib) +nls -nptl -nptlonly -pic -profile (-selinux) -userlocales 15,628 kB 

```

come potete vedere non ho ne linuxthreads ne nptl...

quale delle due mi consigliate di usare? 

le posso usare insieme?

se lo faccio poi devo ricompilare altre cose?

----------

## Onip

a meno che tu non debba usare certi programmi precompilati (tipo matlab...) penso che un sistema nptlonly (per quanto riguarda la mia esperienza) sia safe. 

Palla ai più esperti

Byez

----------

## inspiron

se intendi pachetti binari uso anche openoffice...

e magari anche altro che ora non mi viene in mente...  :Very Happy: 

----------

## .:deadhead:.

io attivrei ntpl, ma non mi arrischierei ad arrivare ad ntpl-only in quanto ci sono ancoa là fuori alcuni prog che non lo digeriscono.

----------

## Kernel78

Io è da circa un anno (forse poco più) che ho ntpl e ntplonly e non ho mai avuto nessun problema.

Come bin ho openoffice e firefox ma anche loro non mi danno noie.

----------

## gutter

 *.:deadhead:. wrote:*   

> io attivrei ntpl, ma non mi arrischierei ad arrivare ad ntpl-only in quanto ci sono ancoa là fuori alcuni prog che non lo digeriscono.

 

Quoto.

----------

## CarloJekko

 *Kernel78 wrote:*   

> Io è da circa un anno (forse poco più) che ho ntpl e ntplonly e non ho mai avuto nessun problema.
> 
> Come bin ho openoffice e firefox ma anche loro non mi danno noie.

 

Io non le posso eliminare le vecchie librerie... Non funzionerebbe il simbolic sul matlab... Sarebbe x me un guaio!!

----------

## .:chrome:.

 *Kernel78 wrote:*   

> Io è da circa un anno (forse poco più) che ho ntpl e ntplonly e non ho mai avuto nessun problema.
> 
> Come bin ho openoffice e firefox ma anche loro non mi danno noie.

 

alcuni programmi precompilati falliscono con queste configurazioni

succede soprattutto usando glibc-2.4, che non avranno il supporto al LinuxThreads, ma solo ad NPTL (in sostanza saranno nptlonly per default)

@inspiron:

devi avere per forza LinuxThreads o NPTL, non è possibile avere un sistema senza una e l'altra.

quello che non hai è LinuxThreads-tls

----------

## makoomba

c'è software che non va d'accordo con nptl. 

xen, se le trova attivate, comincia ad urlare, trova scuse e ti insulta

si vocifera anche che cospiri segretamente col tuo datore di lavoro per indurlo a licenziarti.

----------

## inspiron

allora mi consigliate di mettere +ntpl...

ma posso mettere anche +linuxthreads-tls?

quali pacchetti dovrei ricompilare?

----------

## CarloJekko

 *inspiron wrote:*   

> allora mi consigliate di mettere +ntpl...
> 
> ma posso mettere anche +linuxthreads-tls?
> 
> quali pacchetti dovrei ricompilare?

 

nessuno  :Very Happy: 

Lascia tutto così...

----------

## .:chrome:.

NTPL è attivato per default con il profilo 2006.0

di linuxthreads-tls che te ne fai? lascia stare

----------

## zolar czakl

Approfitto della discussione.

Ho  nptl  nelle use, da sempre in pratica.

Ma la classica verifica

```
/lib/libc.so.6

GNU C Library stable release version 2.3.5, by Roland McGrath et al.

Copyright (C) 2005 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.

Compiled by GNU CC version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8).

Compiled on a Linux 2.6.11 system on 2006-01-03.

Available extensions:

        GNU libio by Per Bothner

        crypt add-on version 2.1 by Michael Glad and others

        linuxthreads-0.10 by Xavier Leroy

        The C stubs add-on version 2.1.2.

        GNU Libidn by Simon Josefsson

        BIND-8.2.3-T5B

        libthread_db work sponsored by Alpha Processor Inc

        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk

Thread-local storage support included.

For bug reporting instructions, please see:

<http://www.gnu.org/software/libc/bugs.html>.
```

non ne mostra traccia.

Al tempo dell'installazione (due anni e qualche mese) ho verificato la presenza di quella voce (visto che nptl da stage 1 prevedeva tutta una serie di attenzioni).

Nei vari aggiornamenti non ho piu' controllato. 

Mi son perso qualcosa?

----------

## Kernel78

sembra che ti sia perso la use  :Wink: 

```
emerge --info | grep nptl
```

 e 

```
grep nptl /etc/make.conf
```

 riportano nplt ?

----------

## zolar czakl

Trovato. Chiedo venia per il disturbo.

/lib/tls/libc.so.6

```
GNU C Library stable release version 2.3.5, by Roland McGrath et al.

Copyright (C) 2005 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.

Compiled by GNU CC version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8).

Compiled on a Linux 2.6.11 system on 2006-01-03.

Available extensions:

        GNU libio by Per Bothner

        crypt add-on version 2.1 by Michael Glad and others

        Native POSIX Threads Library by Ulrich Drepper et al

        The C stubs add-on version 2.1.2.

        GNU Libidn by Simon Josefsson

        BIND-8.2.3-T5B

        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk

Thread-local storage support included.

For bug reporting instructions, please see:

<http://www.gnu.org/software/libc/bugs.html>.
```

Scusate ... la fretta.

----------

## .:chrome:.

adesso la USE nptl è deprecata

viene attivata automaticamente dal profilo 2006.0, quindi la si può rimuovere dai vari make.conf e package.use

----------

## Cazzantonio

 *k.gothmog wrote:*   

> adesso la USE nptl è deprecata
> 
> viene attivata automaticamente dal profilo 2006.0, quindi la si può rimuovere dai vari make.conf e package.use

 

Quindi direi che è tutto il contrario che deprecata....   :Smile: 

Semmai è caldamene raccomandata...   :Wink:  Tanto che se proprio non la vuoi devi disabilitarla a mano   :Wink: 

----------

## Kernel78

 *k.gothmog wrote:*   

> adesso la USE nptl è deprecata
> 
> viene attivata automaticamente dal profilo 2006.0, quindi la si può rimuovere dai vari make.conf e package.use

 

Ovviamente se uno è già passato al profilo 2006.0  :Wink: 

----------

## .:chrome:.

 *Cazzantonio wrote:*   

>  *k.gothmog wrote:*   adesso la USE nptl è deprecata
> 
> viene attivata automaticamente dal profilo 2006.0, quindi la si può rimuovere dai vari make.conf e package.use 
> 
> Quindi direi che è tutto il contrario che deprecata....  
> ...

 

no, deprecata nel senso che è inutile specificarla nel make.conf, perché che tu lo faccia o no è comunque abilitata per default dal profilo

----------

## Apetrini

Io da un anno uso nptlonly e non ho riscontrato nessun problema. Non so dirvi se ho notato prestazioni migliori, poiche non mi ricordo come era prima. Alla fine cerco sempre di fare il passaggio alle tecnologie nuove il prima possibile(a costo di impiegare parecchio tempo a risolvere i problemi)....via il dente via il dolore.

----------

## .:chrome:.

quella è una cosa un po' diversa. con quella flag non si compilano i moduli di compatibilità con la vecchia interfaccia LinuxThreads.

è solo un dettaglio implementativo, e non comporta nessun miglioramento rispetto a NPTL, però espone ad un rischio: quello di trovare applicazioni LinuxTreads-only, ed è il caso delle applicazioni compilate (esempio classico: Matlab).

personalmente anche io uso quella soluzione, ma mi aspetto sempre di trovare qualcosa che non funziona... in generale è il trend verso il quale tende lo sviluppo, tra poco (glibc-2.4) sarà tutto basato su NPTL

----------

