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 9D702C433F5 for ; Thu, 20 Jan 2022 03:37:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D4FD86B00C0; Wed, 19 Jan 2022 22:37:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CFEA76B00C2; Wed, 19 Jan 2022 22:37:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BED916B00C4; Wed, 19 Jan 2022 22:37:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0136.hostedemail.com [216.40.44.136]) by kanga.kvack.org (Postfix) with ESMTP id AFA416B00C0 for ; Wed, 19 Jan 2022 22:37:15 -0500 (EST) Received: from smtpin24.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 60DA9824CA08 for ; Thu, 20 Jan 2022 03:37:15 +0000 (UTC) X-FDA: 79049254830.24.8860F4B Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf15.hostedemail.com (Postfix) with ESMTP id C90A9A000D for ; Thu, 20 Jan 2022 03:37:14 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8D8BC1FB; Wed, 19 Jan 2022 19:37:13 -0800 (PST) Received: from [10.163.74.136] (unknown [10.163.74.136]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 522953F766; Wed, 19 Jan 2022 19:37:07 -0800 (PST) Subject: Re: [PATCH] vmap(): don't allow invalid pages To: Yury Norov Cc: Matthew Wilcox , Catalin Marinas , Will Deacon , Andrew Morton , Nicholas Piggin , Ding Tianhong , Alexey Klimov , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Uladzislau Rezki References: <20220118235244.540103-1-yury.norov@gmail.com> From: Anshuman Khandual Message-ID: <5b62ed03-8da8-a94d-cc48-a8cac1eae1c9@arm.com> Date: Thu, 20 Jan 2022 09:07:11 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: C90A9A000D X-Stat-Signature: hb9h5c96b7mrhdmomwxmq4fio1qhhr8z Authentication-Results: imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com X-Rspamd-Server: rspam08 X-HE-Tag: 1642649834-149250 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 1/19/22 10:52 PM, Yury Norov wrote: >> Why should not this just scan over the entire user provided struct page >> array and make sure that all pages there in are valid via above method, >> but in vmap() itself before calling vmap_pages_range(). Because seems >> like a single invalid page detected in vmap_pages_pte_range() will >> anyways abort the entire vmap(). This will also enable us to drop the >> existing NULL check above. > > I can do this, but why is it any better than the current approach? Because it will just return on the first instance where the valid page check fails, saving us some CPU cycles and an incomplete mapping ?