OVH Cloud OVH Cloud

badmem

8 réponses
Avatar
Jean-Philippe Caruana
bonjour,

j'ai visiblement une RAM un peu défectueuese (nu secteur ou deux
endommagés), et j'ai entendu parler de badmem, un patch pour le noyau.

des retours d'expérience la dessus ?

http://badmem.sourceforge.net/

--
jpc
http://www.enstimac.fr/~caruana/

8 réponses

Avatar
Nicolas George
[Message posté initialement en réponse à
<cg52dv$, supersedé pour le coller au
thread isolé.]

Jean-Philippe Caruana wrote in message
<cg52dv$:
j'ai visiblement une RAM un peu défectueuese (nu secteur ou deux
endommagés), et j'ai entendu parler de badmem, un patch pour le noyau.


Il n'y a pas besoin de patch pour gérer ça, une option en ligne de
commande au noyau suffit. Typiquement les options suivantes :

meme800k mem# mem%

désactivent la page entre les adresses 65800 ko et 65804 ko, et les
trois pages entre les adresses 302164 ko et 302176 ko, pour un total de
320 Mo. Si je me souviens bien, en 2.6, les deux derniers mem s'appellent memmap=.

Avatar
Nicolas George
Jean-Philippe Caruana wrote in message
<cgeq4m$:
mon memtest me donne (cf pj, car thunderbird me formatte les lignes > 72
caract)

comment arriver à déterminer la ligne mem=... du boot ?


Voyons voir.

(je change la largeur des colonnes)

5 00009f477b8 159.4MB 00008000 00208000 00200000
5 00009f477f8 159.4MB 00010000 00210000 00200000
5 00009f47838 159.4MB 00020000 00220000 00200000
5 00009f47878 159.4MB 00040000 00240000 00200000
5 00009f478b8 159.4MB 00080000 00280000 00200000
5 00009f478f8 159.4MB 00100000 00300000 00200000


Tout ceci concerne la page 0x9F47000, soit 163100 ko.

6 00008f4713c 143.4MB 00000000 00200000 00200000
6 00008f4713c 143.4MB 00000000 00200000 00200000 (la meme que dessus)


Ici, c'est 0x8F47000, soit 146716 ko.

7 0000825de8c 130.8MB ffffffff efffffff 10000000


Voici la page 0x825D000, soit 133492 ko. Depuis le temps, tu dois avoir
compris que la page, c'est simplement en ne gardant que les milliers en
hexadécimal (soit les multiples de 4096, 4 ko).

7 00008f4713c 143.4MB 00000000 00200000 00200000


Re-voici une vieille connaissance.

Il manque une information, à savoir la quantité de mémoire totale. Je vais
supposer que c'est 256 Mo, et laisser en exercice l'adaptation dans le cas
contraire.

On a donc l'intervalle [0, 262144[, auquel on veut enlever les intervalles
[133492, 133496[, [146716, 146720[ et [163100, 163104[. Il nous reste donc
[0, 133492[, [133496, 146716[, [146720, 163100[ et [163104, 262144[. Ce qui
donne donc options :

mem3492k
memmap
memmap
mammap™

Maintenant, je t'invite vivement à refaire le calcul entièrement par
toi-même, pour vérifier que tu trouves bien la même chose que moi.

Un petite URL pour la route : <URL:
http://www.eleves.ens.fr/home/george/info/prg/rumt.html >.

Avatar
Jean-Philippe Caruana
comment arriver à déterminer la ligne mem=... du boot ?
Voyons voir.



<snip éclaircissements>

merci pour ces éclaircissements ! ;-) je ne m'étais jamais penché sur
des pb de RAM de ma vie (du coup, la prochiane fois j'acheterai autre
chose que du noname, mais qd on est étudiant...)

Voici la page 0x825D000, soit 133492 ko. Depuis le temps, tu dois avoir
compris que la page, c'est simplement en ne gardant que les milliers en
hexadécimal (soit les multiples de 4096, 4 ko).


oui

Il manque une information, à savoir la quantité de mémoire totale. Je vais
supposer que c'est 256 Mo, et laisser en exercice l'adaptation dans le cas
contraire.


192 Mo = 192608 ko
je n'ai à changer que la dernière ligne si j'ai bien compris ?

On a donc l'intervalle [0, 262144[, auquel on veut enlever les intervalles
[133492, 133496[, [146716, 146720[ et [163100, 163104[. Il nous reste donc
[0, 133492[, [133496, 146716[, [146720, 163100[ et [163104, 262144[. Ce qui
donne donc options :

mem3492k
memmap
memmap
mammap™
memmap)


avec cet exemple illustré, j'ai compris la syntaxe des lignes memmap
(que je n'avais pas comprise au 1er coup, et qui n'est pas des plus
logique pour un humain lambda)(mais bon, c'est vrai que je n'ai pas eu
le temps de chercher non plus)

Maintenant, je t'invite vivement à refaire le calcul entièrement par
toi-même, pour vérifier que tu trouves bien la même chose que moi.


tout pareil, sauf le dernier range evidement !

Un petite URL pour la route : <URL:
http://www.eleves.ens.fr/home/george/info/prg/rumt.html >.


j'essayerai un de ces 4, promis !
encore merci, je teste cela ce soir

--
jpc
http://www.enstimac.fr/~caruana/


Avatar
Jean-Philippe Caruana
Il n'y a pas besoin de patch pour gérer ça, une option en ligne de
commande au noyau suffit. Typiquement les options suivantes :

meme800k mem# mem%

désactivent la page entre les adresses 65800 ko et 65804 ko, et les
trois pages entre les adresses 302164 ko et 302176 ko, pour un total de
320 Mo. Si je me souviens bien, en 2.6, les deux derniers mem > s'appellent memmap=.


re,
pour un noyau 2.4, j'utilise mem ou memmap ?
d'apres ce que tu dis, c'est mem) tous les étages pour un 2.4, mais
comme tu m'as donné une réponse avec des memmap (citation + loin), je ne
veux pas prendre de risque (désolé de faire le lourd...)

mem3492k
memmap
memmap
mammap™


une question : aucun risque d'endommager qqst avec cette ligne de
commandes ?

--
jpc
http://www.enstimac.fr/~caruana/

Avatar
Nicolas George
Jean-Philippe Caruana wrote in message
<cghv4j$:
192 Mo = 192608 ko


Je trouve 196608 ko pour 192 Mo.

je n'ai à changer que la dernière ligne si j'ai bien compris ?


Normalement oui.

memmap)


Et là, je trouve , cette même différence de 4000. À vérifier.

avec cet exemple illustré, j'ai compris la syntaxe des lignes memmap
(que je n'avais pas comprise au 1er coup, et qui n'est pas des plus
logique pour un humain lambda)


En fait, ce n'est pas si compliqué que ça : le @ garde son rôle de « at »
(« à » en français) :

mempap=<x>k@<y>k se traduit littéralement par « j'ai <x> ko à la position
<y> ko ».

Avatar
Nicolas George
Jean-Philippe Caruana wrote in message
<cghvci$:
pour un noyau 2.4, j'utilise mem ou memmap ?


C'est mem dans tous les cas pour le 2.4, en effet.

une question : aucun risque d'endommager qqst avec cette ligne de
commandes ?


Matériellement, non. Logiciellement, le principal risque est que ça plante,
mais je crois que si ça doit planter (parce qu'on indique plus de mémoire
qu'on en a réellement), ça plantera très très rapidement. Évidemment, il
faut absolument garder une ligne de commande Grub ou similaire sous la main
pour pouvoir booter quand même.

Avatar
Jean-Philippe Caruana
Jean-Philippe Caruana wrote in message
<cghv4j$:

192 Mo = 192608 ko



Je trouve 196608 ko pour 192 Mo.


moi aussi
merci de la correction... (j'ai du ripper sur mon clavier)

En fait, ce n'est pas si compliqué que ça : le @ garde son rôle de « at »
(« à » en français) :

mempap=<x>k@<y>k se traduit littéralement par « j'ai <x> ko à la position
<y> ko ».


ok merci

--
jpc
http://www.enstimac.fr/~caruana/


Avatar
Jean-Philippe Caruana
On a donc l'intervalle [0, 262144[, auquel on veut enlever les intervalles
[133492, 133496[, [146716, 146720[ et [163100, 163104[. Il nous reste donc
[0, 133492[, [133496, 146716[, [146720, 163100[ et [163104, 262144[. Ce qui
donne donc options :

mem3492k
memmap
memmap
mammap™


hello,
j'ai testé cela hier soir : tout a fonctionné parfaitement, j'ai pu
compiler Xorg par exemple sans plantage. i'm on the road again.
merci bcp pour la solution !

--
jpc
http://www.enstimac.fr/~caruana/