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 2372DC3ABC3 for ; Mon, 12 May 2025 14:22:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F8056B014D; Mon, 12 May 2025 10:22:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1806B6B014E; Mon, 12 May 2025 10:22:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F40636B014F; Mon, 12 May 2025 10:22:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D26D46B014D for ; Mon, 12 May 2025 10:22:32 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id F1C8E5F893 for ; Mon, 12 May 2025 14:22:32 +0000 (UTC) X-FDA: 83434471344.29.E8C8F1B Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf29.hostedemail.com (Postfix) with ESMTP id 9B4D812000C for ; Mon, 12 May 2025 14:22:30 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b="cFo/WhMX"; spf=pass (imf29.hostedemail.com: domain of agordeev@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=agordeev@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b="cFo/WhMX"; spf=pass (imf29.hostedemail.com: domain of agordeev@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=agordeev@linux.ibm.com; dmarc=pass (policy=none) header.from=ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747059750; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bYTcl/cxzHc+BRnCsqjMP85sfGh2bQzuASBHWbuH1bs=; b=OqbpOfbJ8oxSIJR7LY7rqZdi8vNSqvk/Kl6Drt32XUbCU6+1NZbix5CneMUiJGTUiojq4H KlQXOYSu3QBeWS2gQviv6lnPrMKTAPus9lTuc1dNil0UJHKE2tD2Z3Yg3iF4RNiNLTyK4r 4rCqpY8ErZ2xdgiqPRg73vMAlTQKuBI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747059750; a=rsa-sha256; cv=none; b=7yYVbpNW3DJrUWDYn/TauysN6QS1cxoXcmxg1Up0BUFd+VrxsNZFfFsHYUFaeHP5BPhY7m 4fBBMuQw0DHDKZYdBjM4Hu/lA+HbMEjToxlGPGTXYOO00L30Mn9zHW30MSeFmFzzIdP3xp vJLUwcmHl9ib91+41uALi4dRHzFXrZ4= Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54C9Et21015544; Mon, 12 May 2025 14:22:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=pp1; bh=bYTcl/cxzHc+BRnCsqjMP85sfGh2bQ zuASBHWbuH1bs=; b=cFo/WhMXSgECykOjZZjwnuq/nCvcslJ62lAaNglkN4unfA v2g0sQphgjMdi4h6sOlpYuGO0Haq36U3M8rU0oBXzXo9IgPtDf9B5LqgEz4cbKyJ 4F3qx/vfQB7qFQWH46Pc0Ty7T5FhsVDgUPDi5UPGO6vwQ0VhTC7m25IQP+hP2aCj w0/FBCZb4F8dD01qm4a0PVev4vGnInLHy8EJGjVNzVXxT/k3n7HsZvTiDhwOMIZY 92wFRMxFl5KLAGIc2wqs3F1OeM3MlIIJ89aya3hF+NAJAl/JMSM4vFqBEPjseK06 f1N7gyrVTYI39X1XIPsvspz5cdVMMJUWVypYU59w== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 46ke6j1chk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 May 2025 14:22:28 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 54CEJB10007431; Mon, 12 May 2025 14:22:27 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 46ke6j1chf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 May 2025 14:22:27 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 54CCfoDo016955; Mon, 12 May 2025 14:22:27 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 46jhgyxfd0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 May 2025 14:22:26 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 54CEMPOJ19792146 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 May 2025 14:22:25 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EEC7220090; Mon, 12 May 2025 14:22:24 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B20622008F; Mon, 12 May 2025 14:22:24 +0000 (GMT) Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown [9.155.204.135]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTPS; Mon, 12 May 2025 14:22:24 +0000 (GMT) Date: Mon, 12 May 2025 16:22:23 +0200 From: Alexander Gordeev To: Harry Yoo Cc: Andrew Morton , Andrey Ryabinin , Daniel Axtens , linux-kernel@vger.kernel.org, linux-mm@kvack.org, kasan-dev@googlegroups.com, linux-s390@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v6 1/1] kasan: Avoid sleepable page allocation from atomic context Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-TM-AS-GCONF: 00 X-Proofpoint-GUID: z5zmlcPwAaxOT6dGMJKaE4i4QQ5NgCNF X-Proofpoint-ORIG-GUID: iycNLknPJ7DkqTOcqNurG9cEEwXlcdpL X-Authority-Analysis: v=2.4 cv=auyyCTZV c=1 sm=1 tr=0 ts=68220424 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=kj9zAlcOel0A:10 a=dt9VzEwgFbYA:10 a=eJIhiymoiUTLQAr0ViEA:9 a=CjuIK1q_8ugA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTEyMDE0NyBTYWx0ZWRfX0osQ5VCGYDmC VT6/dx+dPlH6iVSL7LJppXlgJAK4JKkNpmBUem/CxOpDQwDPpoevEp4EwH8SMdH5KvAWtZouMuT lSSQear8dwM1EhOgr3tUK7jyo3sPFSG2jB2V8+1zjNHCGpwlfOg2V13D8hwl/Hs7Vio5uFmPAVj MCrAFtLcTz+HrLhFTojH7+zoDpzJZu7GQny69Bvt6sGbF9aEpbBKCl2zfbwwQlRqyKkTygaC/xt mU32E1o813SeKsq+yRpd8oo3ih3YcT6Qe+FVvScY4RlKHLxuT2YmFZJvC21CxQ9kVsuLNhFCp10 jAQcrdRlZiqTUYAQyp5XqWkul1GdfV4LKGsjJviXth22jT3TJMcTknNRxyrt4N1cguYoNmRCeuO 76v++8k7K2qXpf6fV5gnL1CvCV9sCwX726Sv1VCbIO6UeGj3StppL+7l0dGBy7oJhSqEwgDW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-12_04,2025-05-09_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 impostorscore=0 adultscore=0 mlxlogscore=563 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2504070000 definitions=main-2505120147 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 9B4D812000C X-Stat-Signature: yr6tsum1iy18oanffgoxnh4t7i4tcghb X-Rspam-User: X-HE-Tag: 1747059750-145373 X-HE-Meta: U2FsdGVkX1/9fpm7+6NkL38ypuruDKZ9msdYX6+gCHvW/Qe2DWAJnWJ0j86rybp4QwXS1RWFZNNxG1qLMC2c6Pjbxq371AF+HUSof56g+bKRFw3jo8h3wblsrQzpoRI/lgagminpJLQaymrvML13afOD2MQb7oPEgPsr4YlZ7AVgXCtkNyFU55RkIJL24cdgXNIMUch0O1sly/7PTtRu4zlGjit+uaqAXhkFo5Jr9SW7fw4Rm6pz0uCn+NK8WHdx+OelcYoxf4qbG5KpJ2q3kLvqNhNb0LHu4RbkwOulpXeU7AXwHNIO2vDL8QuD36VrbRgkA057fjO3sNCCejIzP4PlT2sGsJw81rjuKglGrAGjheyuzmJKu2K62tECXUS7nqg4Y6DmX+uNn76f8OZwzb5C00FXqlT7ljFqI5KXeSWQFojcq8j3/pebWIsF4Tq5WSrkECyYghTs3JpeKtHFTD0IsGl9+aGw1rB4foruD+I/CCZ+SLFw+KFd/8m86QNDKmP2c6k49WOZjjIFk3KaELKck0piUxD6cZIPeqh5EhJexe3Kb6NnKh0uLkhv6fr6UA6hYJtrI+2MgM/ofO+xMP0s/+EvKlBWhsU/13kauuaiTCurmv2yAhQkatM+hcVERp2/rtqfmQJscT+O1hVeuBmdi4vsvIQ9EZ4x+85fzNX+TVAmh0vuT6O5OSPUwas7Zhn5bEEq6MeB3goOf9ntBkghmeEHUp9yOaLaCCNDWONjH3URGZ5jxyth16ue6gl0M3nONEkDJInbn7bZta0KwajsXr50OHYyLj0z304ug/sgKi1hlBzKnNLfBU1UmGI21NNWiXb7yj8pxL8XYHH2Xpc1FL2klhqB35tEoa1NWUnHljXsgKiKbW+qv15zIG9RTG2x1u17+JUpM93ubDPuo1mWwOmrqscWvDX4KnauWfzp6HExEqbaoMTKw48m0+hBFDVXksNE0Rgcli9S6Hr riPtGcww ubG2oeC4eCBNDx9kgQHJERskEujL1WOz3hHmdrxHQ0my2VRCT/7Jm9JxrzzXXNocrpZmFc87D5Myd+RczqXOg/kfpzWRpq6eZ63MQ597m98/WonE9Fo9hiJx3XtamMBqLiJ0s+FFo83zR8+mj48dwZoF5U0MtCEXhVblHSf6pQQLu4dfBXcmJw6oI24IdAJv3chAxPN/KFLoVU/bT+V8QEMh02O5X24L84TD6IFzg4ClfYmGyhwsi0CGgDR2JyK3B4jhbpEzp6duSsfX77GLq+hwAutOuJ2H01sD3TOlPzjOMG1g= 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 Fri, May 09, 2025 at 07:05:56PM +0900, Harry Yoo wrote: > > + while (nr_total) { > > + nr_pages = min(nr_total, PAGE_SIZE / sizeof(data.pages[0])); > > + nr_populated = alloc_pages_bulk(GFP_KERNEL, nr_pages, data.pages); > > + if (nr_populated != nr_pages) { > > + free_pages_bulk(data.pages, nr_populated); > > + free_page((unsigned long)data.pages); > > + return -ENOMEM; > > + } > > + > > + data.start = start; > > + ret = apply_to_page_range(&init_mm, start, nr_pages * PAGE_SIZE, > > + kasan_populate_vmalloc_pte, &data); > > + free_pages_bulk(data.pages, nr_pages); > > A minor suggestion: > > I think this free_pages_bulk() can be moved outside the loop > (but with PAGE_SIZE / sizeof(data.pages[0]) instead of nr_pages), Because we know the number of populated pages I think we could use it instead of maximal (PAGE_SIZE / sizeof(data.pages[0])). > because alloc_pages_bulk() simply skips allocating pages for any > non-NULL entries. > > If some pages in the array were not used, it doesn't have to be freed; > on the next iteration of the loop alloc_pages_bulk() can skip > allocating pages for the non-NULL entries. Thanks for the suggestion! I will send an updated version.