|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Goncharov 2:5020/400 15 Sep 2005 20:49:21 To : Slawa Olhovchenkov Subject : Re: malloc() overcommit bug -------------------------------------------------------------------------------- Hi Slawa Olhovchenkov! On Thu, 15 Sep 2005 19:05:16 +0400; Slawa Olhovchenkov wrote about 'malloc() overcommit bug': SO>>>>>>> Потому что память может исчезнуть в процессе. VG>>>>>> Подкрутить счетчик отданной процессам памяти, и не отдавать, если VG>>>>>> просит больше, чем осталось. SO>>>>> Ты кажется не слушал объяснений. VG>>>> Мы кажется говорим (и объяснения были) о несколько разных вещах. SO>>> Hет. Память-то общая. VG>> Ты не выпендривайся, ты пальцем покажи (с) SO> Пишем програмку алоцирующую мегабайт памяти. SO> Пускаем ее на машине с полугигом оперативки и без свопа. SO> Програма в свой мегабайт пишет единицы. SO> Все зашибись, да? Монстры, о которых шла речь, не форкаются, ибо десятки гигов. SO> Теперь програма делает 1000 fork(). После 500 раза fork() должен вернуть ENOMEM, это здесь уже писали. SO> Это законно, поскольку дальше она может сделать exec() на что-то совсем SO> совсем маленькое или вообще быстро завершиться. Более того, мы не можем SO> ничего запустить паралельно не сделав перед этим fork(). Hо вместо этого SO> каждая копия начинает писать случайные данные в свой мегабайт. В некоторый SO> момент механизм copy-on-write обломается и копии начнут слетать с SEGFAULT. Емнип, есть разные версии форка, тот же vfork() & rfork(). Однако, кто мешает при форке (да и malloc) _резервировать_ страницы для последующего copy-on-write? -- 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/10359f95145cb.html, оценка из 5, голосов 10
|