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:29:12 -0500 User-Agent: KMail/1.5.4 References: <20040223182241.028ed881.iadzhubey@rics.bwh.harvard.edu> <200403250205.29511.iadzhubey@rics.bwh.harvard.edu> <200403250217.54298.iadzhubey@rics.bwh.harvard.edu> In-Reply-To: <200403250217.54298.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: <200403250229.12542.iadzhubey@rics.bwh.harvard.edu> X-Authentication-Info: Submitted using SMTP AUTH at out008.verizon.net from [68.163.160.191] at Thu, 25 Mar 2004 01:29:12 -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:29:15 -0000 Archived-At: List-Archive: On Thursday 25 March 2004 02:17 am, Ivan Adzhubey wrote: > 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 ядро > должно было остаться... Проверил, на 2.4.25-std-up-alt1 тоже самое - выделяется 4MB вместо 2MB. И 8-й тест IPC::ShareLite так же виснет. Похоже это все-таки баг. Только на что его вешать? На ядро, glibc, gcc? Еще раз спасибо за помощь! -- Иван