From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B65CCC74A5B for ; Wed, 29 Mar 2023 03:13:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 274846B0072; Tue, 28 Mar 2023 23:13:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 224566B0074; Tue, 28 Mar 2023 23:13:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C5486B0075; Tue, 28 Mar 2023 23:13:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id F1AA06B0072 for ; Tue, 28 Mar 2023 23:13:11 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id C3444AC05E for ; Wed, 29 Mar 2023 03:13:11 +0000 (UTC) X-FDA: 80620464582.12.E3C4A03 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by imf18.hostedemail.com (Postfix) with ESMTP id 9E3371C0017 for ; Wed, 29 Mar 2023 03:13:07 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=jkHqbwfI; dmarc=pass (policy=none) header.from=samsung.com; spf=pass (imf18.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.33 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680059588; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=q5f1q78gmgBWqHYO0lFrQ850wXFnqMYPwTbcYcC4Ht4=; b=MDF9S+KJgfT5Ohinezwdp0iUQQOCeCe4cm2VNa+nkYJBpnF7hMZi2o6ylZ2Yu9tDeJEj+t tnUwq13KLhnIVmDidg0vGzAnRmMS6VEqUZ4gyCxkkbSOnGuUv8VP56Dj5gVCzAvRg2bNAA gej0qDlVlTutaSni8d35hVDBqvn4UWQ= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=jkHqbwfI; dmarc=pass (policy=none) header.from=samsung.com; spf=pass (imf18.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.33 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680059588; a=rsa-sha256; cv=none; b=feYlqg7wi98Ih3OqSMfqlozdKqzwPOBw27Katw9WMhBPw2IoZoplWMDHaXVnfbAxCpf7H1 cemb2jx5IMoKJWzJHH8VTejc/rCDHEBNJcR6vHGzP+Yef6vR7Ldu03D66e3PiawpGPk4ue VbvvSBrinCBnOp6zxXeHYgM0Rpmw4Ng= Received: from epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20230329031303epoutp038e7359631b423bf253aa67a87d00ae2d~QxUpPLldh0505805058epoutp03I for ; Wed, 29 Mar 2023 03:13:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20230329031303epoutp038e7359631b423bf253aa67a87d00ae2d~QxUpPLldh0505805058epoutp03I DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1680059583; bh=q5f1q78gmgBWqHYO0lFrQ850wXFnqMYPwTbcYcC4Ht4=; h=Subject:Reply-To:From:To:CC:In-Reply-To:Date:References:From; b=jkHqbwfIoRlDJ4Rj61huVcQAoH5yZ2BF/WEY2cfVMNjZAd9ITODBbr2cQcF5jiIJM aQjx6c6v3t2jsxUuJD1TczGcnIN/qC+10m+pictEFlzjYCYAbsLR/ZzkgvNibsQNRc FHXfBohtQFa+GyDqcSYUqUiCDgyRnlGoVl4WicJ8= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas1p3.samsung.com (KnoxPortal) with ESMTP id 20230329031303epcas1p39f2b4899c15e93331f3efe12979350d3~QxUoaffmF1703917039epcas1p3l; Wed, 29 Mar 2023 03:13:03 +0000 (GMT) Received: from epsmges1p4.samsung.com (unknown [182.195.36.224]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4PmWp654hkz4x9Px; Wed, 29 Mar 2023 03:13:02 +0000 (GMT) X-AuditID: b6c32a38-39fff70000029402-31-6423acbe5b4a Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p4.samsung.com (Symantec Messaging Gateway) with SMTP id 60.B2.37890.EBCA3246; Wed, 29 Mar 2023 12:13:02 +0900 (KST) Mime-Version: 1.0 Subject: RE: [PATCH] dma-buf/heaps: c9e8440eca61 staging: ion: Fix overflow and list bugs in system heap: Reply-To: jaewon31.kim@samsung.com From: Jaewon Kim To: "T.J. Mercier" CC: "jstultz@google.com" , "sumit.semwal@linaro.org" , "daniel.vetter@ffwll.ch" , "akpm@linux-foundation.org" , "hannes@cmpxchg.org" , "mhocko@kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "jaewon31.kim@gmail.com" X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <20230329031302epcms1p6afc9d9d8e92db6a39c29044606d21afc@epcms1p6> Date: Wed, 29 Mar 2023 12:13:02 +0900 X-CMS-MailID: 20230329031302epcms1p6afc9d9d8e92db6a39c29044606d21afc Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE X-CPGSPASS: Y X-CPGSPASS: Y CMS-TYPE: 101P X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKJsWRmVeSWpSXmKPExsWy7bCmge6+NcopBnMuqFjMWb+GzeLlIU2L hQ/vMlus3uRr0b15JqNF7/tXTBZ/Tmxks7i8aw6bxb01/1ktXn9bxmxx6u5ndot367+wOfB4 HH7zntlj77cFLB47Z91l91iwqdRj06pONo9Nnyaxe9y5tofN48SM3ywefVtWMXp83iQXwBWV bZORmpiSWqSQmpecn5KZl26r5B0c7xxvamZgqGtoaWGupJCXmJtqq+TiE6DrlpkDdLWSQlli TilQKCCxuFhJ386mKL+0JFUhI7+4xFYptSAlp8CsQK84Mbe4NC9dLy+1xMrQwMDIFKgwITvj ++7TTAX3xCtubvrB3sC4R7iLkZNDQsBEomHHZcYuRi4OIYEdjBI7Nu5n62Lk4OAVEJT4u0MY xBQWyJZY2JoCUi4koCRx9scVdhBbWEBXoql7NQuIzSagLfF+wSRWEFtEQFPi2vPNLCAjmQXO MkusXvqDCWIXr8SM9qcsELa0xPblWxlBbE6BQIll/ZehakQlbq5+yw5jvz82nxHCFpFovXeW GcIWlHjwczcjzJw/x5+zQdjFEss6H0DNqZFYcW4VVNxcouHtSjCbV8BX4tid+2A2i4CqxMof U6HqXSRePV0DNp9ZQF5i+9s5zCC/MwM9s36XPkSJosTO33MZYV5p2PibHZ3NLMAn8e5rDytM fMe8J1Dj1SRann2FistI/P33jHUCo9IsREDPQrJ4FsLiBYzMqxjFUguKc9NTiw0LTOBxm5yf u4kRnH61LHYwzn37Qe8QIxMH4yFGCQ5mJRHe39eUUoR4UxIrq1KL8uOLSnNSiw8xmgK9PJFZ SjQ5H5gB8kriDU0sDUzMjEwsjC2NzZTEecVtTyYLCaQnlqRmp6YWpBbB9DFxcEo1MOnlGW5/ eE2z6J4xz2K/B9XRS65v9etcc5DR1SVbcA6Xh2N/y+xvH82K+6axPvi34qNk0C3RvQwPhH27 nHy63hadrg478iZvxsIla0yn7TeXCn2wuOTTDL78TJsM1T06nz4Vrrl9+Z1r8nW9ylOnLWc4 /zNRq596L6rMRiv2i9kdw2kbxbzm/tU1nhvtc8hb9fHuDwkZYlfDp0yaIa8coVcmU/P92t+7 4cE/A5LP54lI6L4tDJm7j0F0g+6cfebeiWlCHJnBx55qndxWV2aiLdh27aiJl/CsUt/VXJPN 192WeqL2Q802PmipQnzPfdPujm0zlYMMAjks475m+6QLq9r/Fiu/bbzK3FDk9FY7JZbijERD Leai4kQA83/+7EgEAAA= DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20230328125807epcas1p1606c068a9043d6581a1fbdd30e7c53a2 References: <20230328125818.5574-1-jaewon31.kim@samsung.com> X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 9E3371C0017 X-Stat-Signature: t95uxabmfeefcxuxzxk5n8mfkob5tkkc X-HE-Tag: 1680059587-572403 X-HE-Meta: U2FsdGVkX18D+9ViePI6L6UQLStkRWHPuk+B/sT5TekGn2v/ZHIvRKgP/p9rTzE9MINw3m9PHK6B/Y9vFORMkRAjYHYO+q87iUuXhq2LcR1fqBQjaq13p+zPc7NKnKstiuA/ESBkZM95B5fq5d/cHGv8emHVm4XVmVERs/kea0is+/ubO730c3Osm9FpYbzVJfSAc5PJH6OyBFFkKi0Tl520QeXCNWSXJmdovWDrZ7nt5+28w3dwLeocl/ie2o0AQtUXsL4n+VmCKwLV/C0iiTKaU32mz+vifxicSg3eKeqv7uZiqIYyCa7uQhhzGtOQ7yR5AV3p/aZYnZODBHOkf9jM1BpOFQBfnJchBs7SNID4FZwhsaU79aqlM57X3eXnxADyarTjja1C2YOkUsXrQZC0m2MMPyy1hRrLPklkHSAiHhMY7/Zr35dKbRAELFrnzS6pyxR2WC4f4L/VoJv5Ejl5OPvwqaqwT1MAvnRCMtcpW0SvGUYb4o4CI0q8WBxhtYScfu0I56E9TViuee/chN5yG9doj9UGVIogCwURWiq0VhUACKGC3ELKJqS9WfIqThGtL0X1nhvTq8gw2svrYExZPViW/pw/2HIsxelB1iM+zXEsxd6K7TnP60Xq4AqdFQ01td5R7TC17mMGslvED39Zqows/PPV+SVZ9M/U3jsOifaIA1Trkd7IWiuWLuyHp/EJxaXVDij2c2DenMfwQYIWR4yTowSpjuujgSirJsjasivFKggKTXbNsKswmqrDg/LaEfefmkrvza90d8g/1E+qCBW+1UgEmsq8JyYX9qjeQbrpfRKvKOcOjVn8TIi9jqKTsBoJGfJf4Ttz7XPyXTZbbXe4mv6MJpmn5+PXJVKTRl0G0N0Jq4MYhPX973hTExjJXIXeIu3gnII5RxI6JgErlAmZRn0o7FFaEz/hUNmZ6SHoWwD91fzEZ8inXOK1P6JSm9n+zVzFp3xixPT F08NoGu/ AY0axYwC1Do/ZE79C5pDGYgvaYzuUML5EpcN0uIsFyd8/w4sdTczLwzdPBd+BMeKpGs4UAx6sjDG6dDsu+D+UW2GOFHIekMMJJ4uUi2FkUtlCXZ5tBfIRLqhLjXo8WLykBfnaH9XHuXTctxsPKzycrPL5Uq1dkQV5hlFV2jqwA15tdk/zFLPhsBmEz8LmgE2zn8tyWhvUJpqm7abVSjx/nxIVEmhGMV18Mt+tgcMW9qPuWgSjzd1tS0HAEvhTqVUrlvI+OR4eeRVO4B80TlLes/G8aR3IMOQPYPtSsRz1pqR4UPpQSEWgOeQOcI781H8CGLZcG9QlPWTuODT+bqMsfHfyglpq0a69AJuO X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: >On Tue, Mar 28, 2023 at 5:58?AM Jaewon Kim wrote: >> >> Normal free:212600kB min:7664kB low:57100kB high:106536kB >> reserved_highatomic:4096KB active_anon:276kB inactive_anon:180kB >> active_file:1200kB inactive_file:0kB unevictable:2932kB >> writepending:0kB present:4109312kB managed:3689488kB mlocked:2932kB >> pagetables:13600kB bounce:0kB free_pcp:0kB local_pcp:0kB >> free_cma:200844kB >> Out of memory and no killable processes... >> Kernel panic - not syncing: System is deadlocked on memory >> >> An OoM panic was reported, there were only native processes which are >> non-killable as OOM_SCORE_ADJ_MIN. >> >> After looking into the dump, I've found the dma-buf system heap was >> trying to allocate a huge size. It seems to be a signed negative value. >> >> dma_heap_ioctl_allocate(inline) >> | heap_allocation = 0xFFFFFFC02247BD38 -> ( >> | len = 0xFFFFFFFFE7225100, >> >> Actually the old ion system heap had policy which does not allow that >> huge size with commit c9e8440eca61 ("staging: ion: Fix overflow and list >> bugs in system heap"). We need this change again. Single allocation >> should not be bigger than half of all memory. >> >> Signed-off-by: Jaewon Kim >> --- >> drivers/dma-buf/heaps/system_heap.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c >> index e8bd10e60998..4c1ef2ecfb0f 100644 >> --- a/drivers/dma-buf/heaps/system_heap.c >> +++ b/drivers/dma-buf/heaps/system_heap.c >> @@ -351,6 +351,9 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap, >> struct page *page, *tmp_page; >> int i, ret = -ENOMEM; >> >> + if (len / PAGE_SIZE > totalram_pages() / 2) >> + return ERR_PTR(-ENOMEM); >> + > >Instead of policy like that, would __GFP_RETRY_MAYFAIL on the system >heap's LOW_ORDER_GFP flags also avoid the panic, and eventually fail >the allocation request? Hello T.J. Thank you for your opinion. The __GFP_RETRY_MAYFAIL on LOW_ORDER_GFP seems to work. page allocation failure: order:0, mode:0x144dc2(GFP_HIGHUSER|__GFP_RETRY_MAYFAIL|__GFP_COMP|__GFP_ZERO) Node 0 active_anon:120kB inactive_anon:43012kB active_file:36kB inactive_file:788kB I tried to test it, and the allocation stopped at very low file cache situation without OoM panic as we expected. The phone device was freezing for few seconds though. We can avoid OoM panic through either totalram_pages() / 2 check or __GFP_RETRY_MAYFAIL. But I think we still need the totalram_pages() / 2 check so that we don't have to suffer the freezing in UX perspective. We may kill some critical processes or users' recent apps. Regarding __GFP_RETRY_MAYFAIL, I think it will help us avoid OoM panic. But I'm worried about low memory devices which still need OoM kill to get memory like in camera scenarios. So what do you think? Thank you Jaewon Kim