From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=ALL_TRUSTED,BAYES_00, RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 To: Denis Medvedev References: <202109080047.00216.asy@altlinux.org> <95ce609f-e2f4-640c-171a-1161407fb58f@basealt.ru> <202109081236.07350.asy@altlinux.org> <20210908121119.7f1d2d46@homerun.localdomain> <20210908131449.500bc86b@homerun.localdomain> From: Alexey Sheplyakov Message-ID: <717cfd00-8805-7f20-6ca0-3de8b92f89a1@basealt.ru> Date: Wed, 8 Sep 2021 14:47:35 +0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20210908131449.500bc86b@homerun.localdomain> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Cc: ALT Linux Team development discussions Subject: Re: [devel] Q: CONFIG_PSI_DEFAULT_DISABLED=y X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Sep 2021 10:47:39 -0000 Archived-At: List-Archive: List-Post: On 08.09.2021 14:14, Denis Medvedev wrote: > В Wed, 8 Sep 2021 13:17:06 +0400 >>> Вот мне бы интересно было, если бы malloc мог (при включении >>> какой-либо опции) при отсутствии памяти ждать ее появления , >>> выдавая процессу SIGTSTP. >> >> Сколько примерно времени займёт адаптация userspace к новому >> поведению? В частности, как определить те места, где ответ "сейчас >> нет, жду" заведомо неприемлем? > "сейчас нет, жду" - это не ответ, не код возврата, это поведение. Тогда это ещё хуже. > А почему вообще userspace это интересно? 1. Потому что время имеет значение. 2. Приход сигнала, в том месте, где его не ожидает - это очень, очень плохо. > Ему malloc возвратит память - чаще чем обычно. И всё. Оно просто чаще не получит NULL, его либо > снимут явным kill ВНУТРИ malloc либо дадут памяти и волшебный пендель > SIGCONT. Зато это явно безопаснее, чем если далее не будет проверен код > возврата и будет разыменован NULL. С точностью до наоборот: появляется ещё одно место, где возможен нелокальный выход, и дополнительные возможности для атаки (я даже не говорю про DoS). > Привеите пример ситуации, когда ответ "сейчас нет, жду" хуже чем > "нет памяти"? С ходу: pthread_mutex_lock(&mutex); result = realloc(global_buf, size*2); /* и тут закончилась память */