[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mem=4G erforderlich und RAM mit nur 2.9G angezeigt



Marco Möller <talby@debianlists.mobilxpress.net> wrote:

> Mal sehen, ob ich es nun besser verstehe, das war nämliche eine mir sehr 
> hilfreiche Erklärung mit Hintergrundinformationen die ich so noch nicht 
> kannte: Der PCI I/O Bereich belegt bei mir aus irgend einem Grund sehr 
> viel Speicher, ich sag mal der Einfachheit halber (das Shared Memory für 
> die Grafikkarte da einfach mal bei gerechnet) knapp 1 GB, und da ich 
> insgesamt nur 4 GB RAM habe bleiben mir in den Befehlen "free -m", "inxi 
> -m", oder auch in "htop" nur die dann noch verbleibenden knapp 3 GB 
> angezeigt und dem OS zum eigenen Schaffen zur Verfügung.

Der PCI I/O Bereich "belegt" keinen Speicher, er *überdeckt* Speicher.

Das hängt damit zusammen, wie das System in Intel-PCs mit z.B. der
Netzwerkkarte oder anderen Komponenten kommuniziert. Warum das so ist
und wie man das auch anders machen kann, ist "Vorlesung Systemtechnik 3"
uns würde hier zu weit führen. (Das Referenz-Buch zur
PCI-System-Architektur hat mal eben lockere 800 Seiten.)

Wo welche Geräte ihren I/O-Bereich liegen haben, gibt die Datei
/proc/iomem wieder.

Außerdem natürlich https://en.wikipedia.org/wiki/PCI_hole

> Ich kann aber sehen, dass meine 4 GB RAM durchaus vollständig in 
> Benutzung sind wenn ich dazu in das Log-File schaue, weil (nur) dort 
> dieser bei mir mit knapp 1 GB belegter Speicher (wenigstens noch) 
> aufgelistet wird.

Sie sind vorhanden, ja. RAM das überdeckt wird, wird aber nie benutzt,
es wird nie adressiert

> Es gäbe dann manchmal noch ein "remapping" dieses für PCI I/O 
> erforderlich zu reservierenden Speichers, damit er zu bestimmten Zwecken 
> nicht im Adressbereich unter 4 GB sondern oberhalb dieser 4 GB Grenze 
> Platz belegt, was bei mir im Speziellen aber keine Rolle spielt, da 
> dieser Laptop kein RAM oberhalb von 4 GB hat wo etwas hin gemappt werden 
> könnte.

Falsch. Löse dich von der Vorstellung, dass die Speicher-Landkarte, die
Linux benutzt, irgendetwas mit der physikalischen Anzahl der verfügbaren
Speicherstellen zu tun hat.

Wenn dein BIOS sich entscheidet, 1073741824 Bytes ab der Adresse
4294967296 bereitzustellen, dann ist das so.

Die E820-Memory-Map zeigt dies ja auch deutlich, so wie ich das
beschrieben habe.

Die Memory-Map kann sogar Löcher haben, dass ist sogar gar nicht mal so
unüblich.

Manche ARM-basierte Geräte haben z.B. zwar 2GB RAM, aber das erste GB
liegt von Adresse 0 bis 1073741823 und das zweite dann von Adresse
3221225472 bis 4294967296.

Der Bereich dazwischen existiert nicht.

Warum? Weil das so designt wurde. Is' halt so.

In deinem Fall hilft dir das alleerdings alles nicht weiter. Wenn das
System ohne "mem=4G" nicht bootet, dann ist irgendetwas defekt.

Was komisch ist, dann ein Teil des Systems versucht dir ja entgegen zu
kommen und versucht den verlorenen Speicherbereich an anderen Adressen
zur Verfügung zu stellen.

Hast du mal ein anderes Linux probiert mit einem anderen Kernel?
Oder ein BIOS-Upgrade?

S!

-- 
Sigmentation fault. Core dumped.


Reply to: