Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[FreeBSD] symbol msleep undefined (lors de passage 6.3 vers 7.0)

7 réponses
Avatar
Paul Gaborit
Je viens de migrer l'un de mes serveur de FreeBSD 6.3 vers 7.0 en
suivant la procédure habituelle de /usr/src/UPDATING.

À la fin de 'dmesg', j'ai le message suivant :

link_elf: symbol msleep undefined

Impossible de savoir d'où provient ce message ! D'autant que, pour
l'instant (je touche du bois), je n'ai encore rien vu qui ne marche
pas comme avant...

Auriez-vous une idée de l'endroit où chercher le coupable de ce
message ?

Merci.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

7 réponses

Avatar
Paul Gaborit
À (at) Sat, 19 Apr 2008 10:22:32 +0200,
Thierry Herbelot écrivait (wrote):
Paul Gaborit wrote:

À la fin de 'dmesg', j'ai le message suivant :

link_elf: symbol msleep undefined


man msleep done :
"Its use is deprecated in favor of mtx_sleep(9) which provides identical
behavior."


L'usage de msleep est 'deprecated' mais pas encore interdit. Et là,
elle est introuvable...


Impossible de savoir d'où provient ce message ! D'autant que, pour
l'instant (je touche du bois), je n'ai encore rien vu qui ne marche
pas comme avant...

Auriez-vous une idée de l'endroit où chercher le coupable de ce
message ?


comme msleep a l'air d'être utilisée dans le kernel, on doit pouvoir
commencer avec :
grep -R msleep /usr/src/sys

(ou un vieux kernel module qui serait resté de 6.x ? voir les dates des
fichers dans /boot/kernel)


Il y a effectivement plein d'appels à 'msleep' dans les sources du
noyau. Mais par contre, dans /boot/kernel tous mes fichiers datent de
ma mise à jour (ouf...) et aucun d'eux ne fait appel à 'msleep' (il y
a juste des appels à 'msleep_spin' et à 'nfs_msleep').

Je vais reconstruire un nouveau monde et un nouveau noyau et
réinstaller le tout pour voir si ça perdure...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


Avatar
Paul Gaborit
À (at) Mon, 21 Apr 2008 11:19:42 +0200,
Paul Gaborit écrivait (wrote):
Je vais reconstruire un nouveau monde et un nouveau noyau et
réinstaller le tout pour voir si ça perdure...


Bon, c'est fait... Le problème perdure. Pour rappel, message:

link_elf: symbol msleep undefined

en fin de 'dmesg'. Ça doit provenir d'un autre programme. Je vais
recompiler mes ports pour ne plus utiliser les anciennes bibliothèques
et ça devrait rentrer dans l'ordre.

Mais, je me heurte à un nouveau problème. La noyau a pris un peu
d'embonpoint : le répertoire /boot/kernel occupe maintenant 113Mo. Or
ma partition racine (/) ne fait que 256Mo (248Mo une fois formattée)
ce qui était suffisant avec FreeBSD 5.x ou 6.x. Mais en 7.x, à chaque
installation d'un nouveau noyau, il n'y a plus la place pour recopier
l'ancien !

J'ai cherché dans le handbook mais je ne vois pas comment je peux
changer la taille d'une partion UFS2 (sans perdre son contenu).

Est-ce possible ?

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
espie
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:

J'ai cherché dans le handbook mais je ne vois pas comment je peux
changer la taille d'une partion UFS2 (sans perdre son contenu).


growfs ne fonctionne pas en freebsd 7 / sous ufs2 ?

C'est quoi l'interet d'avoir de l'UFS2 sur une partition aussi petite ?

Avatar
Paul Gaborit
À (at) Mon, 21 Apr 2008 14:45:21 +0000 (UTC),
(Marc Espie) écrivait (wrote):
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:

J'ai cherché dans le handbook mais je ne vois pas comment je peux
changer la taille d'une partion UFS2 (sans perdre son contenu).


growfs ne fonctionne pas en freebsd 7 / sous ufs2 ?


Bon sang mais c'est bien sûr...

Merci pour la piste que j'aurais pu trouver tout seul ! ;-)

C'est quoi l'interet d'avoir de l'UFS2 sur une partition aussi
petite ?


Aucun intérêt particulier. C'est de l'UFS2 tout simplement parce que
FreeBSD depuis un certain temps (5.x ?) utilise UFS2 comme format par
défaut.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


Avatar
Paul Gaborit
À (at) Mon, 21 Apr 2008 18:34:17 +0200,
(Xavier) écrivait (wrote):
Paul Gaborit wrote:

Mais, je me heurte à un nouveau problème. La noyau a pris un peu
d'embonpoint : le répertoire /boot/kernel occupe maintenant 113Mo. Or
ma partition racine (/) ne fait que 256Mo (248Mo une fois formattée)
ce qui était suffisant avec FreeBSD 5.x ou 6.x. Mais en 7.x, à chaque
installation d'un nouveau noyau, il n'y a plus la place pour recopier
l'ancien !


Héhé ... Been there done that :-)

Un petit rm -rf /boot/kernel.old et ça passe... tout juste


C'est effectivement ce que j'ai fait... mais il faut aimer vivre
dangeureusement ! Et pour un serveur, c'est pas le top... ;-)

Je vais donc regarder à mieux choisir mes options du noyau (je n'ai
certainement pas besoin de tout ce qu'il y a dans GENERIC) et/ou je
vais agrandir ma "petite" partition.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


Avatar
Patrick Lamaizière
Le Mon, 21 Apr 2008 18:51:51 +0200,

Mais, je me heurte à un nouveau problème. La noyau a pris un peu
d'embonpoint : le répertoire /boot/kernel occupe maintenant 113Mo.
Or ma partition racine (/) ne fait que 256Mo (248Mo une fois
formattée) ce qui était suffisant avec FreeBSD 5.x ou 6.x. Mais en
7.x, à chaque installation d'un nouveau noyau, il n'y a plus la
place pour recopier l'ancien !


Héhé ... Been there done that :-)

Un petit rm -rf /boot/kernel.old et ça passe... tout juste


C'est effectivement ce que j'ai fait... mais il faut aimer vivre
dangeureusement ! Et pour un serveur, c'est pas le top... ;-)


Tu peux n'effacer que les symbols, ça fait gagner vachement de place.
J'ai fini par agrandir / aussi



Avatar
Paul Gaborit
À (at) Mon, 21 Apr 2008 20:40:50 +0200,
(Xavier) écrivait (wrote):
Paul Gaborit wrote:

Je vais donc regarder à mieux choisir mes options du noyau (je n'ai
certainement pas besoin de tout ce qu'il y a dans GENERIC) et/ou je
vais agrandir ma "petite" partition.


il suffit de commenter la ligne (qui est active par défaut)

# makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols



Bravo ! Je ne comprenais pas pourquoi ce noyau était devenu si gros...
Voici l'explication !

Pour ne pas me fatiguer, j'avais bêtement mergé le nouveau fichier
GENERIC à la fin de ma configuration locale sans le regarder en
détail. Et pourtant c'est la toute première option du fichier GENERIC.

Ca gagne tout de suite un paquet de MB, et on ne debugge pas tous les
jours le noyau d'un serveur en prod :-)


Je n'ai jamais débuggé un noyau FreeBSD (enfin si, une fois, mais
c'était pour un driver). Je ne vais pas m'y mettre sur ce serveur. ;-)

Et pour la place prise par le noyau, c'est sûr, on y gagne : de 113Mo
à ... (j'attends la fin de la compilation et de l'installation) ...
32Mo (en fait c'est la même chose qu'en supprimant les fichiers
*.symbols).

Et là, ma partition / de 256Mo suffit largement !

Merci.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>