Newsgroup: it.comp.os.linux.sys
Titolo: Kernel-2.4 e shm

Ciao a tutti,
ho installato il nuovo kernel-2.4, all'inizio per prova, poi mi sono scaricato
gli aggiornamenti listati in Changes.... e l'ho tenuto perche' va benone.
L'unico dubbio che ho riguarda la shm: ho montato la partizione relativa in
/etc/shm:
[mestesso@laika mestesso]$ cat /etc/fstab
...
none                    /proc                   proc    defaults        0 0
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none 			/etc/shm		shm	defaults	0 0
/dev/hdb1		/public 		reiserfs defaults      0 0
...
ed ho digitato 
echo /etc/shm > /proc/sysvipc/shm
Ecco il problema:
In questo momento il contenuto di /proc/sysvipc/shm e'
[mestesso@laika mestesso]$ cat /proc/sysvipc/shm
       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgi
d      atime      dtime      ctime name
   2622055   29720577  100644    1048576 21064 28625      0     0     0     0 
0  960744412  960753531  960658426 .IPC_01c58001
Il contenuto di /proc/meminfo e'
[mestesso@laika mestesso]$ cat /proc/meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  63823872 62754816  1069056        0   987136 21999616
Swap: 37117952  5447680 31670272
MemTotal:     62328 kB                  
MemFree:       1044 kB
MemShared:        0 kB
Buffers:        964 kB
Cached:       21484 kB
HighTotal:        0 kB
HighFree:         0 kB
LowTotal:     62328 kB
LowFree:       1044 kB
SwapTotal:    36248 kB
SwapFree:     30928 kB
Ottengo *sempre* 0kB di memoria shared. 
Eppure sembrerebbe che un processo stia utilizzando la memoria shared, dal file
/proc/sysvipc/shm/. Mi sbaglio ?
Inoltre non ottengo nessun messaggio riguardante la shm in /var/log/messages o 
in dmesg. 
Secondo voi ho sbagliato qualcosa nella configurazione ? La directory /etc/shm
che permessi deve avere ? (questo non c'e, credo, nella documentazione).
Grazie per l'attenzione.
Saluti a tutti,
-- 
LB
per contattarmi via email:
mest...@laika.mynet non e' un indirizzo valido
ludbasil (at) 
inwind.it
 lo e' 

che permessi deve avere ? (questo non c'e, credo, nella documentazione).
755, visto che comunque i permessi del mount point sono quelli del file
system montato e non di quello sottostante.
Comunque, per ora praticamente nessun programma usa la SHM Posix, ti
consiglio di non preoccuparti della questione.
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *
      | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

 
|~~~~~~| 
|(O>   |\  Fabio Cavaliere (Homebrew apprentice & GLUG member)
|//\   | | e-mail > 
fa...@urania.fisica.unige.it
|V_/_  | | e-mail2 > 
cava...@server3.fisica.unige.it
|######|-  GLUG on the Web : 
http://genova.linux.it
 
+------+

XFree 4.0.0 usa shm per il supporto DRI (almeno, la snapshot che ho io lo
System V SHM != Posix SHM.


Non sono sicuro che quel valore indichi la SHM.
Credo che tu abbia ragione. Ma allora cosa indica ? 
E perche' coi kernel 2.2.* quel valore e' sempre != 0 ?
E' forse stato ridefinito il formato di /proc/meminfo ? 
Una curiosita': ho provato a scrivere un programmino ( una boiata, praticamente)
che fa' una chiamata a shmget e controlla il valore di ritorno:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main(){
	int ret=shmget(IPC_PRIVATE,2048,IPC_CREAT);
	printf("Risultato = %s\n",strerror(errno));
	return 1;
}
#[root@laika root]./a.out 
Risultato = Success
ogni volta che lo chiamo si aggiunge un file .IPC* a /dev/shm ed una riga a 
/proc/sysvipc/shm. In quale riga di /proc/meminfo posso controllare l'entita'
della memoria allocata con shmget ?
Ti ringrazio per l'attenzione. 
Ciao


Credo che tu abbia ragione. Ma allora cosa indica ? 
Provo a rispondermi da solo :
$ tail +123 /usr/src/linux/Documentation/IO-mapping.txt | head -13
There is a completely different type of memory too, and that's the "shared
memory" on the PCI or ISA bus. That's generally not RAM (although in the case
of a video graphics card it can be normal DRAM that is just used for a frame
buffer), but can be things like a packet buffer in a network card etc. 
This memory is called "PCI memory" or "shared memory" or "IO memory" or
whatever, and there is only one way to access it: the readb/writeb and
related functions. You should never take the address of such memory, because
there is really nothing you can do with such an address: it's not
conceptually in the same memory space as "real memory" at all, so you cannot
just dereference a pointer. (Sadly, on x86 it _is_ in the same memory space,
so on x86 it actually works to just deference a pointer, but it's not
portable). 
