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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Slawa Olhovchenkov                   2:5030/500     15 Sep 2005  20:54:20
 To : Vadim Goncharov
 Subject : malloc() overcommit bug
 -------------------------------------------------------------------------------- 
 
 
 15 Sep 05, Vadim Goncharov writes to Slawa Olhovchenkov:
 
  SO>>>>>>>> Потому что память может исчезнуть в процессе.
  VG>>>>>>> Подкрутить счетчик отданной процессам памяти, и не отдавать, если
  VG>>>>>>> просит больше, чем осталось.
  SO>>>>>> Ты кажется не слушал объяснений.
  VG>>>>> Мы кажется говорим (и объяснения были) о несколько разных вещах.
  SO>>>> Hет. Память-то общая.
  VG>>> Ты не выпендривайся, ты пальцем покажи (с)
  SO>> Пишем програмку алоцирующую мегабайт памяти.
  SO>> Пускаем ее на машине с полугигом оперативки и без свопа.
  SO>> Програма в свой мегабайт пишет единицы.
  SO>> Все зашибись, да?
  VG> Монстры, о которых шла речь, не форкаются, ибо десятки гигов.
 
 Какая связь?
 
  SO>> Теперь програма делает 1000 fork().
  VG> После 500 раза fork() должен вернуть ENOMEM, это здесь уже писали.
 
 А я писал, что фигню в этом месте написали.
 
  SO>> Это законно, поскольку дальше она может сделать exec() на что-то
  SO>> совсем совсем маленькое или вообще быстро завершиться. Более того, мы
  SO>> не можем ничего запустить паралельно не сделав перед этим fork(). Hо
  SO>> вместо этого каждая копия начинает писать случайные данные в свой
  SO>> мегабайт. В некоторый момент механизм copy-on-write обломается и копии
  SO>> начнут слетать с SEGFAULT.
  VG> Емнип, есть разные версии форка, тот же vfork() & rfork().
 
 Они в этом месте не различаются.
 
  VG> Однако, кто мешает при форке (да и malloc) _резервировать_ страницы
  VG> для последующего copy-on-write?
 
 А потому что тогда тебе никакого свопа не хватит для современного софта,
 поскольку он весь расчитывает на то, что по copy-on-write потребляться будет
 только нужный объем памяти.
 
 ... Птица говорун отличается умом и сообразительностью.
 --- GoldED+/BSD 1.1.5
  * Origin:  (2:5030/500)
 
 

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

 Тема:    Автор:    Дата:  
 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/22214329a87a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional