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 9B772C3DA7F for ; Wed, 31 Jul 2024 10:21:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 135CA6B0085; Wed, 31 Jul 2024 06:21:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E5F86B0088; Wed, 31 Jul 2024 06:21:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EEF7C6B0089; Wed, 31 Jul 2024 06:21:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D03FB6B0085 for ; Wed, 31 Jul 2024 06:21:15 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7F28B8020E for ; Wed, 31 Jul 2024 10:21:15 +0000 (UTC) X-FDA: 82399655310.08.1C67404 Received: from www262.sakura.ne.jp (www262.sakura.ne.jp [202.181.97.72]) by imf18.hostedemail.com (Postfix) with ESMTP id DCCBF1C000E for ; Wed, 31 Jul 2024 10:21:12 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf18.hostedemail.com: domain of penguin-kernel@I-love.SAKURA.ne.jp designates 202.181.97.72 as permitted sender) smtp.mailfrom=penguin-kernel@I-love.SAKURA.ne.jp ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722421269; a=rsa-sha256; cv=none; b=pROf1HBOprVi5xI4e7kILEgg85uWqTp+/4UAKH40FQaYtvJ1GuGNWLGitWM5qDUJDRqBZY 3irlJt0jNwEDtyauyX04pRoUUwrv5aEt6CyIu2p7DEYOx3l8OPYRF2d4HJ+FjU3BiADRc7 zQawfCf/bWTGMR+ot1UfingpKjq2e6E= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf18.hostedemail.com: domain of penguin-kernel@I-love.SAKURA.ne.jp designates 202.181.97.72 as permitted sender) smtp.mailfrom=penguin-kernel@I-love.SAKURA.ne.jp ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722421269; h=from:from:sender: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; bh=8WHjCQcnfKWBh6BW5fZTV4NhgOBO9ZLR0r5GBmCiqeg=; b=DzdjxHqLqUjkD2+t3160b13dVlrV0l5bo4sFPvSJEF07+OuZWF2mO1KBhIEwwVgCzwdG20 EXzliMDbeZX46rQfe+3b1KWw7victTIU/oq89VIBOOlebJpGebsJHbqXlFfymXQ/zDtdLW J0350TKEeeioAqFJW5AkDulO8TzWBxA= Received: from fsav312.sakura.ne.jp (fsav312.sakura.ne.jp [153.120.85.143]) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTP id 46VAKTFt011177; Wed, 31 Jul 2024 19:20:29 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Received: from www262.sakura.ne.jp (202.181.97.72) by fsav312.sakura.ne.jp (F-Secure/fsigk_smtp/550/fsav312.sakura.ne.jp); Wed, 31 Jul 2024 19:20:29 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/550/fsav312.sakura.ne.jp) Received: from [192.168.1.6] (M106072142033.v4.enabler.ne.jp [106.72.142.33]) (authenticated bits=0) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTPSA id 46VAKT5Z011173 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Wed, 31 Jul 2024 19:20:29 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Message-ID: Date: Wed, 31 Jul 2024 19:20:28 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RFT v2 1/4] vpda: try to fix the potential crash due to misusing __GFP_NOFAIL To: Barry Song <21cnbao@gmail.com>, Jason Wang Cc: akpm@linux-foundation.org, linux-mm@kvack.org, 42.hyeyoo@gmail.com, cl@linux.com, hailong.liu@oppo.com, hch@infradead.org, iamjoonsoo.kim@lge.com, lstoakes@gmail.com, mhocko@suse.com, penberg@kernel.org, rientjes@google.com, roman.gushchin@linux.dev, torvalds@linux-foundation.org, urezki@gmail.com, v-songbaohua@oppo.com, vbabka@suse.cz, virtualization@lists.linux.dev, "Michael S. Tsirkin" , Xuan Zhuo , =?UTF-8?Q?Eugenio_P=C3=A9rez?= , Maxime Coquelin References: <20240731000155.109583-1-21cnbao@gmail.com> <20240731000155.109583-2-21cnbao@gmail.com> Content-Language: en-US From: Tetsuo Handa In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: DCCBF1C000E X-Rspamd-Server: rspam01 X-Stat-Signature: 5ufz6z5eufcc7mj87r38smbfmzuq8ciu X-HE-Tag: 1722421272-355360 X-HE-Meta: U2FsdGVkX1/vzJL/iwaFQb9vekUHQPJ3wLVGBRsuBbYko8E9vCMJlbLF/dnbeCbLg+a3/D2JzB7j62MzS35suJCa6JNs5QKLOSqU3vtLnmaCf79LHdFkSPmiR2KnR8HpPu171GwZW+2a2EXmvhJtNKVgYhVfTqswfqYLjm0InxjK4mmBnLnnhPlKooe9UQEQH/eZF9oNuX/jyOS2AhalVAlgHadxXBbtGtM5c0O7dbdfOQbwDZGWzBqOTdhvH8SITh5XhrdgSDF1MZ3ZCZeneJGNOND209p5RWvMAJkn4KdbivjBBvaxZYsAgf2k93KRSOXBkfL+AAHhjk/uBlbq0ZKl8qHFNJxPj48bm51xxXR0GwvRsV3zO9AOh3iVRBF5gf0MqrlB5WSObBMUrmsIzV6OP3AnTQLNjiBPUuRuovojHWQbbgBtYlSvej6afO/nndFCirFVn8pePmuuXCxwPe+hfxplVvo8hM6332rKMH82ecFNcYski+8kkXihiaX4eoJrcjqB97HnMPDZFGYJ2DdaYoWB+q/9peTnP8cz2Uaq8v3Kv7VfuSHzFjrY8AC+jHVHGXQQJCTDL3mRzp4/VXB+cLd8MIevQpqSfutB8jJMLzpxsiJpY/y2SjZ1kt8TBQeXu6/tWXZp6cQx3ObIS7U5ng4jNFxRqZepoGl2O9ljZ3FIDcoaHOX1+sDmeYLK59lcPzM8dpJJP5BIUH5xDt1GvlSuE1RG0n5Oerh77Ml89+g7T9KOuOFyXw4bpmjds36YXHtwFI/8BplQmRQOnM5A1ridQdQ9tQFnli6xFEGpiqFv3/K2Ky3xHH8D0iAgnnueFszUhtxx9g3fBRfnYGUiQ1qzevdW9YLyHO+tp5vOetWmGMkUUoNrOdPzbtHZdXR1nUf5OkGo7rqMVP5ZBaNlyYZT5smqWnCo7XByMk95jUQzOAiucxHN7M/l5hUUZtt2osD2ZRiuT0j6o0m Gnb40154 dtLHPi9JsHHUHLUb9LbcUib6mfsZK7lk7PgSMOnwGh6sh64ZquCJa614XTrJD2rEiD3YaZKPkafhXubCgNwtq2Q2rrpW+SYqtBqp/pPhOBYVK0Ms/oyNgzWg7eiL0rIpDZLGXl6u2geNg51YgihWsGJh9IyZJBR9d0Ydy56nu+gXbi3h+0vjkCYi5QY0+igf0d2/NjDjjIGcUPhWUpzDTwZBVR1iCZls2KElCt3dStITBKxpKTtFD/YGGXSIXWcgmQef26OYCWf3rtkBcKlrBYsRgS0BlTTmgPob/WZLi5RninCLOZBQa19g0rEhGDt2v0g7hZJyW1oQrVtLleexIhZIcfcNUguJWfPGzl86STxIvq9QtmvIJgUk3R1HjHpdZlGFpUVQVgzhLhCJWx5Id8JrFHflL3suW1ROjROPvmuTgVax/bVzhoOEIp01uJ9vogcfxEhB1YUNAlxc= 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: List-Subscribe: List-Unsubscribe: On 2024/07/31 14:05, Barry Song wrote: > Jason, > Thank you very much. Also, Tetsuo reminded me that kmalloc_array() might be > problematic if the count is too large: > pages = kmalloc_array(count, sizeof(*pages), GFP_KERNEL | __GFP_NOFAIL); If "count" is guaranteed to be count <= 16, this might be tolerable. Consider a situation where current thread was chosen as an global OOM victim. Trying to allocate "count" pages using for (i = 0; i < count; i++) pages[i] = alloc_page(GFP_KERNEL | __GFP_NOFAIL); is not good. > > You might want to consider using vmalloc_array() or kvmalloc_array() instead > when you send a new version. There is a limitation at https://elixir.bootlin.com/linux/v6.11-rc1/source/mm/page_alloc.c#L3033 that you must satisfy count <= PAGE_SIZE * 2 / sizeof(*pages) if you use __GFP_NOFAIL. But as already explained above, allocating 1024 pages (assuming PAGE_SIZE is 4096 and pointer size is 8) when current thread was chosen as an OOM victim is not recommended. You should implement proper error handling instead of using __GFP_NOFAIL if count can become large.