[sisyphus] Shared memory - HELP PLEASE!

Ivan Adzhubey =?iso-8859-1?q?iadzhubey_=CE=C1_rics=2Ebwh=2Eharvard=2Eedu?=
Чт Мар 25 10:17:54 MSK 2004


On Thursday 25 March 2004 02:05 am, Ivan Adzhubey wrote:
> On Thursday 25 March 2004 01:42 am, Grigory Batalov wrote:
> > On Wed, 24 Mar 2004 23:36:15 -0500
> >
> > Ivan Adzhubey <iadzhubey на rics.bwh.harvard.edu> wrote:
> > > Видимо придется все же самому разбираться. Может кто-нибудь поделится
> > > исходниками чего-то работающего с shm, что у него самого - работает?
> > > Или хотя бы фрагментом. Буду признателен.
> >
> >   У меня сохранился небольшой тест. Кажется, без ошибок =).
> >   Во время sleep(5) запустите ipcs - увидите выделенный 1К.
> >
> > $ gcc -g -Wall -O2 -o shmtest shmtest.c
> > $ ./shmtest &
> > $ ipcs
> >
> > ------ Shared Memory Segments --------
> > key        shmid      owner      perms      bytes      nattch     status
> > 0x00000000 1245187    bga       700        1048576    1
>
> Спасибо, Григорий!
>
> К сожалению, там все сложнее. Ваша программа работает, и такие простые
> тесты я уже научился сам писать ;). Проблема возникает когда a) есть
> минимум два процесса пользующихся этой памятью (хотя бы по очереди,
> например форкнутый child и его parent) b) используется блокировка (lock)
>
> А хотя нет, погодите! Кажется что-то видно... у вас запрашивается 2K памяти
> и выделяется 2K. А у меня вашей программе выделяется в четыре раза больше:
>
> ------ Shared Memory Segments --------
> key        shmid      owner      perms      bytes      nattch     status
> 0x00000000 1736711    ivan      700        4194304    1
>
> Кажется это все-таки баг. Сейчас проверю под другим ядром...

Конечно, 2MB а не 2KB, опечатка.

Странно, проверил на кластерном ноде под 2.4.22, там тоже выделяется 4MB. 
Что-то с выравниванием памяти? Вы каким компилятором собирали? И на какой 
системе запускали (ядро, libc)? Может это из-за того что я пробовал только на 
smp ядрах, сейчас буду дальше проверять, где-то в сетке у меня up ядро должно 
было остаться...

-- 
Иван




Подробная информация о списке рассылки Sisyphus