Pagina 1 di 1

[RISOLTO]xen 3.1.0 e glibc2.5 in Slack 12

Inviato: gio 25 ott 2007, 0:13
da pedro
Ciao a tutti, eccomi qui con un altro problemino. Mi sono intrippato con Xen che a mio avviso è forse il miglire sistema di virtualizzazione presente ad ora, anzi sarebbe meglio dire paravirtualizzazione dato che Xen non emula l'hardware ma lo utilizza effettivamente.
comunque non è questo il problema.
Ho scaricato i sorgenti di Xen e li ho installati senza problemi. Ho anche pacchettizzato il tutto per Slackware e se volete vi posto il tutto. Attualmente ho l'hypervisor e la dom0 funzionanti, quindi il kernel della dom0 bootta.
Il problema è che mi compare una scritta durante il boot di questo tipo :

Codice: Seleziona tutto

***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses  **
**          in /lib/tls glibc libraries. The emulation is    **
**          slow. To ensure full performance you should      **
**          install a 'xen-friendly' (nosegneg) version of   **
**          the library, or disable tls support by executing **
**          the following as root:                           **
**          mv /lib/tls /lib/tls.disabled                    **
** Offending process: init (pid=1)                           **
***************************************************************
***************************************************************
n.b.: tls sta per thread-local storage e non per Transport Layer Security utilizzate anche da OpenSSL.
Questa scritta è dovuta dal fatto che le glibc-2.5 presenti su Slackware 12 ( come in molte altre distro recenti ) sono compilate con il supporto NPTL ( Native POSIX Thread Library ). Tale supporto è, da quello che ho letto, un nuovo modo ottimizzato di gestire i thread su linux e ha preso il posto delle libpthread ( LinuxThreads ) definite deprecate. Volkerding stesso nelle release_notes.txt della slack 12 lo afferma:
ftp://ftp.eutelia.it/pub/Slackware_Mirr ... EASE_NOTES

Potete vedere voi stessi quale libreria state usando digitando :

Codice: Seleziona tutto

root@darkstar:/tmp# getconf GNU_LIBPTHREAD_VERSION
NPTL 2.5
root@darkstar:/tmp# getconf GNU_LIBC_VERSION
glibc 2.5
Purtroppo Xen non è ancora ottimizzato per utilizzare NPTL , bensì raggiunge performance nettamente migliori con le libpthread. Per distro come debian, redhat, fedora, ubuntu, ecc è presente una patch o anche direttamente il binario delle glibc ottimizzate per Xen ( quindi tali da utilizzare libpthread ).
Ora, finalmente arrivo al dunque. Avete idea di come ricompilare per Slackware 12 le glibc 2.5 senza il supporto NPTL? oppure conoscete soluzioni alternative?

Vi ringrazio e penso che rispondendo a questa domanda apportereste un contributo a tutta la comunità della Slackware.

Inviato: sab 27 ott 2007, 2:45
da pedro
Bene,
problema RISOLTO. Non so se può interessare a qlk ma la procedura è questa :
-scaricare dal cd della Slackware 12 i sorgenti delle glibc-2.5 ( ossia tutti i file compresi nella directory source/l/glibc compreso lo Slackbuild)
-modificare lo Slackbuild mettendo al posto di

Codice: Seleziona tutto

CFLAGS="-g $OPTIMIZ" \
questo:

Codice: Seleziona tutto

CFLAGS="-g $OPTIMIZ -mno-tls-direct-seg-refs" \ 
-lanciare glibc.Slackbuild che compilerà per una mezzoretta e vi ritroverete i pacchetti in formato tgz nella directory /glibc--tmp-88cb86a3b60643ccacda61968a20ecf8 o qlk del genere. I nomi dei pacchetti sono :

Codice: Seleziona tutto

root@darkstar:/# ls *.tgz
glibc-2.5-i486-4.tgz   
glibc-debug-2.5-i486-4.tgz   
glibc-profile-2.5-i486-4.tgz 
glibc-zoneinfo-2.5-noarch-4.tgz
glibc-2.5-i486-4p.tgz  
glibc-i18n-2.5-noarch-4.tgz  
glibc-solibs-2.5-i486-4.tgz
-sostituite i pacchetti presenti nel sistema con quelli appena ricompilati. Per esempio per il pacchetto glibc-2.5-i486-4.tgz :

Codice: Seleziona tutto

root@darkstar:/glibc-tmp-88cb86a3b60643ccacda61968a20ecf8# upgradepkg --reinstall glibc-2.5-i486-4%glibc-2.5-i486-4.tgz
n.b.:glibc-2.5-i486-4 è il pacchetto presente nel sistema mentre glibc-2.5-i486-4.tgz è quello appena ricompilato.
Fate la stessa cosa anche per gli altri pacchetti .tgz presenti nella directory /glibc-tmp-88cb86a3b60643ccacda61968a20ecf8.
-eseguite

Codice: Seleziona tutto

root@darkstar:/glibc-tmp-88cb86a3b60643ccacda61968a20ecf8#ldconfig
in modo da far caricare al sistema le nuove librerie e renderle operative.
-ora scaricate i sorgenti di sysvinit, sysvinit-functions e sysvinit-screipts da source/a/sysvinit e lanciate i corrispettivi Slackbuild, dopodichè proseguite con la sostituzione dei pacchetti già presenti nel sistema con quelli appena ricompilati con le nuove glibc (come fatto per i pacchetti relativi alle glibc).
-riavviate il sistema e nell'avvio di xen dovrebbe essere sparita la scritta relativa al WARNING poichè il problema è risolto.
Se non è chiaro qlk postate e proverò ad aiutarvi.

Non mi assumo alcuna responsabilità su eventuali casini che vi possono uscire fuori. Se seguite bene il procedimento non dovreste avere nessun problema.

Re: [RISOLTO]xen 3.1.0 e glibc2.5 in Slack 12

Inviato: lun 29 ott 2007, 18:35
da gufo
pedro ha scritto: comunque non è questo il problema.
Ho scaricato i sorgenti di Xen e li ho installati senza problemi. Ho anche pacchettizzato il tutto per Slackware e se volete vi posto il tutto. Attualmente ho l'hypervisor e la dom0 funzionanti, quindi il kernel della dom0 bootta.
Sono interessato agli slackbuilds, ci voglio lavorare ancora dopo averci provato tempo fa senza ottenere dei buoni risultati (http://gufo.dontexist.org/builds/Xen.php per vedere i miei slackbuild e qualcosa che ho scritto all'epoca).
Me li puoi mandare per favore in posta a gufo [at] people [.] it? Quando ho tempo ci lavoro e poi metto a disposizione le eventuali modifiche.

Ciao,
Gufo

Inviato: mar 27 nov 2007, 19:12
da Andrei
Ciao a tutti.

Sono sbattuto su un problema molto strano: nonostante "-mno-tls-direct-seg-refs" glibc si compilano sempre con supporto NPTL.

getconf GNU_LIBPTHREAD_VERSION risponde sempre NPTL 2.5.

Qualcuno ha visto un simile comportamento?

Inviato: gio 29 nov 2007, 8:34
da Andrei
Qualcuno può dire cosa vede facendo
getconf GNU_LIBPTHREAD_VERSION dopo aver ricompilato glibc2.5?