# l'opzione "high memory support"

## ckx3009

Buondi', mi trovo con un portatile acer aspire 5670 e 4 GB di ram installati sopra (il produttore del chipset, intel, dichiara che sono supportati >qui<. Altri strumenti di autodiagnostica come everest, cpuz e un tool dell'acer dicono lo stesso).

Il processore e' un intel centrino duo T2250 32 bit.

Il kernel che uso ora e' l'ultimo stabile per x86: 2.6.27-gentoo-r8

Ho attivato l'high memory support a 4 GB, ho ricompilato il kernel, ma tutti gli strumenti mi riportano "Mem: 3111832k total".

Ho portato l'high memory support a 64 GB, ricompilato il kernel, ma il risultato e' lo stesso.

Mi viene lo strano dubbio che il "problema 32bit => max 3,qualcosa GB" si presenti anche qui, ma allora l'high memory support del kernel non avrebbe senso, o sbaglio?

Vi ringrazio in anticipo per i consigli.

----------

## oRDeX

[intro]

32bit => 2^32 indirizzi => 4GB (visto che le memorie le indirizziamo al byte).

Il fatto e` che ci sono indirizzi riservati per altri scopi, quindi non piu` indirizzabili.

Ok e` stata una bella pappardella, ma era solo per farti capire l'origine del problema. Per risolvere il tutto e` stato sviluppato PAE (Phisycal Address Extesions), che tutti i kernel attuali integrano e che all'atto pratico consiste proprio in quell'opzione che hai menzionato tu.

[/intro]

Sei sicuro che stai utilizzando il kernel in cui hai abilitato il supporto fino a 64GB?

----------

## ckx3009

si il kernel e' quello, tutto sistemato come dovrebbe essere.

----------

## djinnZ

La scheda grafica qual è? Taluni chipset (ATI ed NVIDIA per portatili) richiedono che sia impostata una shared memory di dimensioni pari a quella della scheda, lo so che è un'idiozia ma purtoppo viviamo in un mondo assi triste.

Verifica che non siano abilitate VMSPLIT_3G_OPT e VMSPLIT_2G_OPT perchè con più di 3 o 2 GB riducono l'ammontare della memoria disponibile. L'opzione che ti riguarda è VMSPLIT_3G=y nel caso hai il memory split attivo come opzione, in caso contrario come non detto.

----------

## ckx3009

La scheda video e' una ATI mobility radeon x1600 128 MB di vram integrata, che volendo diventerebbero 512 in hyper memory.

Pero' credo che se dipendesse da questo, dovrei vedere almeno sui 3,5 GB, che poi su Gentoo non vede nemmeno l'hyper memory (il catalyst dell'ati dice 128 MB) quindi dovrebbero essere sui 3,8 GB.

Tutte le opzioni VMSPLIT_xG e VMSPLIT_xG_OPT sono disattivate (in realta' non so a che servano).

Poi non so se puo' dipendere da questo: nella configurazione "memory model" ho selezionato "Flat memory" e non "Sparse memory", esattamente come consiglia il menuconfig.

Se servisse qui c'e' il mio .config.

----------

## oRDeX

Oggi ragionavo con alcuni colleghi sul problema.

Ma sei certo che il chipset della scheda madre supporti PAE?

EDIT: 

Ho letto il datasheet. Non c'è nessuna tecnologia di estensione dell'indirizzo fisico sul tuo chipset. La parte alta della memoria (da un dato indirizzo fino a 4GB) è riservata per il mapping del PCI e un altro paio di robe. Quindi quella parte di ram non sarà visibile dal sistema

----------

## ckx3009

 *oRDeX wrote:*   

> Oggi ragionavo con alcuni colleghi sul problema.
> 
> Ma sei certo che il chipset della scheda madre supporti PAE?
> 
> EDIT: 
> ...

 

mettiamo anche il caso che non supporti il PAE (eppure TUTTI i tools di diagnostica dicono che supporta i 4 GB di ram, compreso l'acer eSettings Management che sarebbe un tool proprio dell'acer): dovrei vedere la mia ram meno l'area riservata al resto, quindi dovrei togliere dal totale dei 4 GB le altre memorie in uso sul sistema, quindi ram video e tutte le varie memorie cache dei componenti interni ed esterni. le varie cache penso non arrivino a 40 MB, la ram video e' 128 MB, quindi mettiamo anche il caso che la somma sia 200 MB, i restanti 3,8 GB li dovrei vedere, sbaglio?

appena posso cmq do un report di everest che dice se il PAE e' supportato o meno.

il processore lo supporta ad ogni modo:

```
# cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 14

model name      : Genuine Intel(R) CPU           T2250  @ 1.73GHz

stepping        : 8

cpu MHz         : 1733.000

cache size      : 2048 KB

physical id     : 0

siblings        : 2

core id         : 0

cpu cores       : 2

apicid          : 0

initial apicid  : 0

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts pni monitor est tm2 xtpr

bogomips        : 3466.72

clflush size    : 64
```

----------

## oRDeX

Il problema risiede nel chiop della scheda madre, non nel processore (purtroppo).

Comunque non si intende che devi "sottrarre dalla memoria totale quella che usano le periferiche" e stop.

Il fatto è che un pezzo degli indirizzi della memoria vengono dedicati al MemoryMapped I/O (più altre cose, ma trascurabili rispetto al primo) e di conseguenza questi indirizzi non sono più utilizzabili come "memoria normale". 

Il punto è che sul datasheet non parla di un numero preciso di questi indirizzi, ma fa riferimento ad un particolare valore contenuto in un registro.

Ora cerco (sperodi riuscirci  :Razz: ) di capire da cosa è influenzato questo dato valore (dato che nel tuo caso ci sono ben 900Mb inutilizzabili)

EDIT:

Effettivamente il tuo è uno scenario possibile.

----------

## ckx3009

ora sono su winzozz: qui c'e' il report di everest, dove dice che il PAE e' supportato e *attivato*.

probabilmente lo da come attivato perche' sono andato a dare la /PAE nel boot.ini.

ad ogni modo non c'e' nulla che indichi che non posso arrivare a 4 GB, so che non posso fisicamente andare oltre, dato che il singolo slot non puo' essere maggiore di 2 GB.

frattanto che riavviavo su winzozz, ho guardato nel bios e anche lui mi indica 3.070 GB. e' aggiornato all'ultima versione disponibile sull'ftp dell'acer (versione per win xp, ci sarebbe anche quella per svista, ma non mi partirebbe piu' xp con quello).

a che scenario ti riferisci? (scusa ma dopo un po' di orette di studio il cervello e' a riposarsi sul calorifero come un gatto)

----------

## oRDeX

Ti capisco benissimo, non sono da meno   :Wink: 

Infatti anche io ho fatto un attimo di casino  :Smile:  PAE è supportato da processore e sistema operativo. OK. Il processore può gestire indirizzi di lunghezza fino a 36bit.

Il motivo per cui la RAM visualizzata è sempre ~3GB è a causa delle limitazioni architetturali del chipset 945M che non consente in alcun modo di avere tutta la RAM a disposizione.

L'unica differenza, probabilmente starà nel fatto che su certe schede madri potrai avere un pò meno "memoria rubata" dal I/O rispetto ad altre. Ma tale memoria rimane inaccessibile

----------

## ckx3009

eppure so di altri che hanno lo stesso chipset e vedono tutti i 4 GB: basta girare per google e se ne trovano a decine.

non e' che magari puo' dipendere unicamente dal bios?

e se fosse questo il caso, avrei modo di smanettare su quello andando oltre quello che ho ora?

----------

## oRDeX

Io ho cercato un pò in giro, tutti quelli che hanno qel chip mi sembra lamentino lo stesso problema, a parte qualuno che dice "ma il mio amico con quel portatile ha il mio stesso chip e...." e poi si scopre che era il 965.

Comunque spero di sbagliarmi in quello che ho detto, ma il datasheet diceva esplicitamente quello che ho riportato.

E` un impostazione architetturale, purtroppo, non puoi farci nulla.

PS: assicurati che chi dici che veda bene i 4GB abbia il 945PM, perchè non tutti lo specificano

----------

## ckx3009

ho cercato nello specifico l'"i945PM" e ne ho trovati molti che dicono che i 4 GB gli funzionano. non ho trovato nessuno col mio stesso PC, quindi e' magari possibile che dipenda da impostazioni dell'acer e non del chipset che dovrebbe indirizzarmi ben piu' di 3 GB.

ho ovviamente trovato altri che dicono che non riescono e altri che dicono quello che riporti tu, cioe' che e' un limite della scheda madre, pero' le opinioni sono molto contrastanti e sembrano essercene molti di piu' con i 4GB di quelli che dicono che non si possono mettere.

----------

## oRDeX

Per curiosità mi faresti vedere qualche link? Vorrei indagare un pò..

Io alla fine ho detto solo quanto scritto nel datasheet della intel riguardo a quel chipset. poi bhu

----------

## ckx3009

questo parla di limite da parte del bios: http://www.asktheramguy.com/v3/showthread.php?t=68920

quest'altro sembrerebbe essere nella mia situazione e forse ha trovato come risolvere: http://forum.notebookreview.com/showthread.php?t=290829

qui sembra dare una spiegazione molto simile alla tua: http://opensolaris.org/jive/thread.jspa?threadID=89073&tstart=60

questo rispetto a me ha guadagnato dei bei 400 MB che non butterei via: http://www.tg007.net/forum/index.php?showtopic=11683

e sono solo alcuni che ho trovato ora...ce ne sono pure altri andando a ravanare con google

----------

## oRDeX

Però mi pare che nessuno abbia detto "vedo 4gb di memoria disponibile"   :Crying or Very sad: 

C'è chi parla di limitazioni del BIOS in quanto c'è chi ha problemi ad andare porprio oltre i 2GB.

Il fatto dei 400MB _penso_ dipenda dalla configurazione Hardware della scheda (numero di locazioni da dover riservare al PCI/PCI Express)

----------

## djinnZ

 *oRDeX wrote:*   

> C'è chi parla di limitazioni del BIOS in quanto c'è chi ha problemi ad andare porprio oltre i 2GB.
> 
> Il fatto dei 400MB _penso_ dipenda dalla configurazione Hardware della scheda (numero di locazioni da dover riservare al PCI/PCI Express)

 Ho letto molto frettolosamente che in alcuni casi openfirmware o coreboot potrebbero risolvere (mi farebbero tanto comodo 4GB sul mio portatile) ma non ho approfondito.

----------

## ckx3009

ma se la limitazione fosse del bios per me andrebbe meglio che se fosse direttamente del chipset: un programma si potrebbe modificare, un componente hardware e' improbabile.

grazie della dritta djinnZ, provo a informarmi meglio rigurdo openfirmware e coreboot.Last edited by ckx3009 on Thu Feb 12, 2009 4:22 pm; edited 2 times in total

----------

## djinnZ

Verivica bene perchè l'operazione potrebbe essere distruttiva.

----------

## ckx3009

ho dato un'occhiatina in giro: openfirmware sembrerebbe utilizzato sui powerpc, sui server SUN e su altre piattaforme un po' diverse dai pc normali.

per quanto riguarda coreboot invece sono rimasto molto sorpreso dal fatto che ci siano 2 motherboard con northbridge e southbridge apparentemente uguali ai miei. dico apparentemente perche' nella lista dei chip supportati si parla solo di intel 945 e non piu' specificatamente di intel 945PM o simili. stessa cosa per il southbridge dove si dice solo ICH-7.

inoltre mentre cercavo qualcosa su everest, ho trovato un link a un sito che propone aggiornamenti software e bios vari. fa installare il solito programmino di diagnostica e dice cosa non e' aggiornato. poi propone gli aggiornamenti (che ovviamente vanno pagati). ad ogni modo mi viene il dubbio che il bios sia ancora aggiornabile oltre a quello che c'e' sul sito dell'acer (che e' del 2007).

----------

## oRDeX

Non è per eliminare la speranza, però non deviamo le cose dette: il problema del BIOS era presente in post pubblicati nei link citati in precedenza per la gente che aveva il limite della ram a 2GB impostato nel BIOS stesso.

Nessuno ha detto che il nostro problema è nella stessa situazione. 

Io comunque ti invito a leggere il datashet del chip dove c'è chiaramente scritto The (G)MCH provides a maximum DRAM address decode space of 4 GB. The (G)MCH does not remap APIC or PCI Express memory space. This means that as the amount of physical memory populated in the system reaches 4 GB, there will be physical memory that exists yet is non-addressable and therefore unusable by the system.

Per quello continuavo a insistere sul fatto che il problema è architetturale e non si può fare niente.

----------

## ckx3009

ma io infatti ho letto il datasheet, e a quel che leggo, anche dalla parte che hai quotato tu, lui dice che la memoria totale indirizzabile dal chipset e' di 4 GB e che quella che va oltre i 4 GB non sara' indirizzabile: sono d'accordissimo con lui, ma io vorrei sapere dove mi fa sparire l'altro GB visto che non ho 1 GB di altre memorie sparse in giro.

io capirei benissimo se mi dicesse che vede 3.8 GB di ram, potrei capire anche se mi dicesse che ne vede 3.4 GB, ma non capisco dove mi faccia sparire quel GB intero.

----------

## devilheart

scusa, perché non metti su un kernel a 64bit?

----------

## ProT-0-TypE

hai abilitato nel kernel l'opzione

```
64 bit Memory and IO resources (EXPERIMENTAL)
```

?

senza questa a me non vede 8 gb  :Very Happy: 

----------

## ckx3009

 *devilheart wrote:*   

> scusa, perché non metti su un kernel a 64bit?

 

perche' ci ho provato, e con un sistema a 32 bit non va

 *ProT-0-TypE wrote:*   

> hai abilitato nel kernel l'opzione
> 
> ```
> 64 bit Memory and IO resources (EXPERIMENTAL)
> ```
> ...

 

si e' tutto abilitato, eppure la ram e' sempre poca.

inizio a temere sia davvero un limite invalicabile del chipset (fatto da cani) ma non vorrei arrendermi.

----------

## djinnZ

 *ckx3009 wrote:*   

>  *devilheart wrote:*   scusa, perché non metti su un kernel a 64bit? 
> 
> perche' ci ho provato, e con un sistema a 32 bit non va

   :Shocked:   :Question: 

----------

## ckx3009

 *djinnZ wrote:*   

>  *ckx3009 wrote:*    *devilheart wrote:*   scusa, perché non metti su un kernel a 64bit? 
> 
> perche' ci ho provato, e con un sistema a 32 bit non va   

 

beh mi sembra piu' che normale che non vada...

----------

## cloc3

 *ckx3009 wrote:*   

>  *djinnZ wrote:*    *ckx3009 wrote:*    *devilheart wrote:*   scusa, perché non metti su un kernel a 64bit? 
> 
> perche' ci ho provato, e con un sistema a 32 bit non va    
> 
> beh mi sembra piu' che normale che non vada...

 

 :Shocked:   :Question: 

grep IA32 .config

----------

## ckx3009

 *cloc3 wrote:*   

>  *ckx3009 wrote:*    *djinnZ wrote:*    *ckx3009 wrote:*    *devilheart wrote:*   scusa, perché non metti su un kernel a 64bit? 
> 
> perche' ci ho provato, e con un sistema a 32 bit non va    
> 
> beh mi sembra piu' che normale che non vada... 
> ...

 

 :Shocked:   :Question: 

si, sono ignorante :-p

----------

## cloc3

 *ckx3009 wrote:*   

> 
> 
> si, sono ignorante :-p

 

esagerato  :Wink:  .

in effetti, il supporto ai 32 bit è una opzione fondamentale del kernel, perché, oltre a consentire di eseguire il codice a 32 bit, permette anche di risparmiare molta memoria ram.

può essere usato, infatti, in sostituzione dell'opzione PAE a 32 bit per eseguire un SO a 32 indirizzandol'estensione di ram oltre 1 GB senza sprechi nè artifici di sorta.

----------

## ckx3009

quindi potrei usare un kernel a 64 bit, opportunamente compilato con quell'opzione che hai detto prima, e in teoria potrebbe aiutarmi.

pero' che cosa dovrei fare per installare un kernel a 64bit? dovrei praticamente rifare mezza installazione per "switchare" su un diverso CHOST con tutto quel che ne deriva?

----------

## djinnZ

Scaricati una qualsiasi live a 64 bit (sabayon od anche il cd di installazione di gentoo od anche qualcosa che vada su usb se il tuo portatilke consente il boot... fai te) e vedi se funziona innanzitutto. Se funziona allora fai la cosa più semplice e reistalli da capo la tua gentoo a 64 bit.

Quello che avete scritto sopra me lo spiegate perchè non ho capito il senso della discussione, davvero...

----------

## ckx3009

 *djinnZ wrote:*   

> Scaricati una qualsiasi live a 64 bit (sabayon od anche il cd di installazione di gentoo od anche qualcosa che vada su usb se il tuo portatilke consente il boot... fai te) e vedi se funziona innanzitutto. Se funziona allora fai la cosa più semplice e reistalli da capo la tua gentoo a 64 bit.
> 
> Quello che avete scritto sopra me lo spiegate perchè non ho capito il senso della discussione, davvero...

 

avevo provato una *buntu 64 bit e non si avviava nemmeno dicendo, a parole sue, che non supportava un processore a 32 bit.

pero' avrei una gentoo tutta bella e pronta a 64bit che mi sono fatto in chroot da questa. basterebbe compilarci il kernel e dovrebbe essere in grado di partire.

----------

## Apetrini

Intervengo perché mi sembra che ci sia un po' di confusione.

Soprattutto sul fatto che secondo alcuni(tutti?) voi il processore supporta 64 bit. Mi spiace smentire questa cosa. Voglio ricordarvi che non tutti i core duo supportano il 64 bit e questo è uno di quelli che non lo supporta.

Almeno è quello che dice il sito di Intel a proposito: http://ark.intel.com/cpu.aspx?groupId=27232

----------

## cloc3

 *Apetrini wrote:*   

> Intervengo perché mi sembra che ci sia un po' di confusione.
> 
> 

 

gasp.

dal momento che ckx3009 attribuiva la responsabilità al SO, non avevo badato a leggere l'intero thread e verificare le caratteristiche della cpu. anche cpuworld conferma che non si può eseguire codice a 64.

l'unica possibilità per estendere la memoria ram è dunque il PAE.

----------

## ckx3009

ah ecco  :Razz: 

ad ogni modo, come avrai letto, il PAE e' abilitato non a 4 GB, ma a 64 GB e ancora non legge nulla. si era giunti alla conclusione che e' probabilmente un limite riguardante o il chipset o il bios. 

sono scettico riguardo il chipset dato che altri pc che lo montano hanno ottenuto i tanto agognati 4 GB, mentre penso, che sia piu' un problema di bios che, a parer mio, e' "bloccato" dall'acer.

----------

## cloc3

 *ckx3009 wrote:*   

> penso, che sia piu' un problema di bios che, a parer mio, e' "bloccato" dall'acer.

 

se è così, non resta che cercare l'opzione relativa nella bios per abilitarla.

o aggiornare la bios.

di solito si cerca nel sito del produttore.

----------

## ckx3009

 *cloc3 wrote:*   

> se è così, non resta che cercare l'opzione relativa nella bios per abilitarla.
> 
> o aggiornare la bios.
> 
> di solito si cerca nel sito del produttore.

 

nessuna opzione nel bios e secondo quel che c'e' sull'ftp dell'acer, quello che ho e' l'ultima versione rilasciata

----------

## oRDeX

Io continuo a dire che e` dovuto al design del chip. Questi altri tipi che dicono di utilizzare tutti e 4 i GB di ram io ancora non li ho visti   :Rolling Eyes:   :Rolling Eyes: 

Non tutti i chip sono nati con il supporto all'estensione dell'indirizzo fisico.

----------

## oRDeX

Leggendo un pò di roba in giro (e anche su altre parti di questo forum) volevo dare un'ulteriore conferma a chi fosse rimasto appeso a questo problema a questo problema:

dai datasheet della Intel emerge chiaramente che i primi chipset a supportare il remapping degli indirizzi sono quelli della famiglia 965. I 945 NON supportano tale funzionalità, quindi parte o tutta la zona di memoria sopra i 3GB potrebbe essere riservata.

Per riportare un esempio pratico ecco la mia configurazione:

```
# lspci

00:00.0 Host bridge: Intel Corporation Mobile M965/GM965/GL960 Memory Controller Hub (rev 0c)

00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c)

..........

```

```
# cat /proc/meminfo 

MemTotal:        4043180 kB

........

```

```

# uname -m

x86_64

```

----------

## Peach

guarda mi sono trovato recentemente su un thread nel forum internazionale che parlava dello stesso problema. sono rimasto un po' così quando ho verificato le fonti perché non me l'aspettavo.

come si dice lì, possibile anche che un aggiornamento del bios possa sistemare la situazione

my 2¢

----------

## oRDeX

Era proprioil thread a cui facevo riferimento io  :Razz: 

Ma per fonti che intendi? Intel?

Comunque io dubito che l'aggiornamento del BIOS possa in qualche modo raggirare una mancanza del chip di questo tipo

----------

