From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Ivan Adzhubey To: ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] Shared memory - HELP PLEASE! Date: Thu, 25 Mar 2004 02:17:54 -0500 User-Agent: KMail/1.5.4 References: <20040223182241.028ed881.iadzhubey@rics.bwh.harvard.edu> <20040325094245.5814ff9b.bga-no-spam@kovgok.ru> <200403250205.29511.iadzhubey@rics.bwh.harvard.edu> In-Reply-To: <200403250205.29511.iadzhubey@rics.bwh.harvard.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Content-Disposition: inline Message-Id: <200403250217.54298.iadzhubey@rics.bwh.harvard.edu> X-Authentication-Info: Submitted using SMTP AUTH at out007.verizon.net from [68.163.160.191] at Thu, 25 Mar 2004 01:17:54 -0600 X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.4 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Mar 2004 07:17:58 -0000 Archived-At: List-Archive: 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 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 ядро должно было остаться... -- Иван