dotaz na sdilenou pamet

Vilibald Wanca vilibald.wanca at gmail.com
Sun Dec 30 14:03:40 CET 2012


On 30.12.2012 12:00, users-l-request at freebsd.cz wrote:
> dobry den,
> mam problem se sdilenou pameti, system odmita pridelit vice jak 64kB
> Pokud dam mene jak 64kB, tak to vsechno funguje.
>
> ...
> i = access (fname, W_OK | R_OK);
> ke1 = ftok (fname, key);
> ...
>
> iflag = IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP ;
> ...
> ..... mlength je typu int32
> ...
> idm = shmget (ke1,mlength,iflag);
> ie = errno;
>
> ......  TADY mi to vr?t? IDM -1 a perror
> Invalid argument, pokud mlength > 65537 nebo tak nejak...
>
>
> if (idm==-1) perror ("shmget: ");
>
> if (idm != -1)
>      {
>      pmem = shmat (idm,NULL,SHM_RND);
> ......
>
> Vyguglil jsem podobny problem, ale tam se jednalo o mnoho megabajtu.
> Navic to je topic bez odpovedi.
> ja bych potreboval tak 500kB az 1MB sdilene pameti
> System je PC-BSD 9.0  32bit. jadro generic.
Zdravim,
napada mne, ze shm ma nekolik limitu nastavenych v sysctl se jmenem 
kern.ipc.shm*
Ted nevim jaky jsou implicitni hodnoty, ale mozna pohrat si s velikosti 
segmentu pomuze.

vw

# sysctl -a | grep shm
kern.ipc.shm_allow_removed: 0
kern.ipc.shm_use_phys: 0
kern.ipc.shmall: 8192
kern.ipc.shmseg: 128
kern.ipc.shmmni: 192
kern.ipc.shmmin: 1
kern.ipc.shmmax: 33554432



More information about the Users-l mailing list