Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Vadim Goncharov                      2:5020/400     16 Sep 2005  18:20:39
 To : Slawa Olhovchenkov
 Subject : Re: malloc() overcommit bug
 -------------------------------------------------------------------------------- 
 
 Hi Slawa Olhovchenkov! 
 
 On Thu, 15 Sep 2005 19:54:20 +0400; Slawa Olhovchenkov wrote about 'malloc()
 overcommit bug':
 
  SO>>>>>>>>> Потому что память может исчезнуть в процессе.
  VG>>>>>>>> Подкрутить счетчик отданной процессам памяти, и не отдавать, если
  VG>>>>>>>> просит больше, чем осталось.
  SO>>>>>>> Ты кажется не слушал объяснений.
  VG>>>>>> Мы кажется говорим (и объяснения были) о несколько разных вещах.
  SO>>>>> Hет. Память-то общая.
  VG>>>> Ты не выпендривайся, ты пальцем покажи (с)
  SO>>> Пишем програмку алоцирующую мегабайт памяти.
  SO>>> Пускаем ее на машине с полугигом оперативки и без свопа.
  SO>>> Програма в свой мегабайт пишет единицы.
  SO>>> Все зашибись, да?
  VG>> Монстры, о которых шла речь, не форкаются, ибо десятки гигов.
  SO> Какая связь?
 
 Между резервированием памяти явно для одного процесса и дублированием
 при форке есть разница.
 
  SO>>> Теперь програма делает 1000 fork().
  VG>> После 500 раза fork() должен вернуть ENOMEM, это здесь уже писали.
  SO> А я писал, что фигню в этом месте написали.
 
 Это должно быть как минимум переключабельно. В конце концов, почему та
 же солярка резервированием таки занимается?
 
  SO>>> Это законно, поскольку дальше она может сделать exec() на что-то
  SO>>> совсем совсем маленькое или вообще быстро завершиться. Более того, мы
  SO>>> не можем ничего запустить паралельно не сделав перед этим fork(). Hо
  SO>>> вместо этого каждая копия начинает писать случайные данные в свой
  SO>>> мегабайт. В некоторый момент механизм copy-on-write обломается и копии
  SO>>> начнут слетать с SEGFAULT.
  VG>> Емнип, есть разные версии форка, тот же vfork() & rfork().
  SO> Они в этом месте не различаются.
 
 Hу прям там. vfork() предназначен для exec() и памяти не копирует.
 
  VG>> Однако, кто мешает при форке (да и malloc) _резервировать_ страницы
  VG>> для последующего copy-on-write?
  SO> А потому что тогда тебе никакого свопа не хватит для современного софта,
  SO> поскольку он весь расчитывает на то, что по copy-on-write потребляться
  SO> будет только нужный объем памяти.
 
 Примеры?
 
 -- 
 WBR, Vadim Goncharov. ICQ#166852181       mailto:vadim_nuclight@mail.ru
 [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight]
 --- slrn/0.9.8.1 on FreeBSD 4.11/i386
  * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: malloc() overcommit bug   Valentin Nechayev   15 Sep 2005 01:52:13 
 Re: malloc() overcommit bug   Vadim Goncharov   15 Sep 2005 15:09:25 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 15:16:06 
 Re: malloc() overcommit bug   Vadim Goncharov   15 Sep 2005 18:34:33 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 18:50:18 
 Re: malloc() overcommit bug   Vadim Goncharov   15 Sep 2005 19:16:04 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 19:41:30 
 Re: malloc() overcommit bug   Vadim Goncharov   15 Sep 2005 19:59:12 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 20:05:16 
 Re: malloc() overcommit bug   Dmitry Miloserdov   15 Sep 2005 20:43:47 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 20:49:26 
 Re: malloc() overcommit bug   Dmitry Miloserdov   15 Sep 2005 21:32:16 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 22:13:00 
 Re: malloc() overcommit bug   Igor Sysoev   16 Sep 2005 15:59:23 
 Re: malloc() overcommit bug   Vadim Goncharov   15 Sep 2005 20:54:24 
 Re: malloc() overcommit bug   Dmitry Miloserdov   15 Sep 2005 21:54:00 
 Re: malloc() overcommit bug   Igor Sysoev   16 Sep 2005 15:57:52 
 Re: malloc() overcommit bug   Dmitry Miloserdov   16 Sep 2005 16:55:03 
 Re: malloc() overcommit bug   Igor Sysoev   16 Sep 2005 19:58:29 
 Re: malloc() overcommit bug   Vadim Goncharov   16 Sep 2005 18:14:30 
 Re: malloc() overcommit bug   Vadim Goncharov   15 Sep 2005 20:49:21 
 malloc() overcommit bug   Slawa Olhovchenkov   15 Sep 2005 20:54:20 
 Re: malloc() overcommit bug   Eugene Grosbein   16 Sep 2005 00:26:13 
 malloc() overcommit bug   Max Khon   16 Sep 2005 17:53:04 
 Re: malloc() overcommit bug   Vadim Goncharov   16 Sep 2005 18:20:39 
Архивное /ru.unix.bsd/103598c127c79.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional