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 50FCFC001DF for ; Wed, 16 Aug 2023 09:46:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B3AA58D002B; Wed, 16 Aug 2023 05:46:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AEAB88D0001; Wed, 16 Aug 2023 05:46:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9B0A58D002B; Wed, 16 Aug 2023 05:46:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 8A8678D0001 for ; Wed, 16 Aug 2023 05:46:03 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 74A821A0E93 for ; Wed, 16 Aug 2023 09:46:02 +0000 (UTC) X-FDA: 81129486564.29.E3DED80 Received: from rere.qmqm.pl (rere.qmqm.pl [91.227.64.183]) by imf16.hostedemail.com (Postfix) with ESMTP id C9FDB180005 for ; Wed, 16 Aug 2023 09:45:59 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=rere.qmqm.pl header.s=1 header.b="ol06/qIu"; dmarc=pass (policy=reject) header.from=rere.qmqm.pl; spf=pass (imf16.hostedemail.com: domain of mirq-linux@rere.qmqm.pl designates 91.227.64.183 as permitted sender) smtp.mailfrom=mirq-linux@rere.qmqm.pl ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692179160; a=rsa-sha256; cv=none; b=KjO4coN0zCPcpA3VlLfbRNVJFF7/Am6/V9NOnpJvUeQzOl4qr4uFLk/1IbnvnacoHQjPl2 mlGzdPJxgqjrID+5+9ktKKjE96qxihbW6dOx7SU5W1mKN585aqPecf9SXzRyxTVScDxNgb IyFfEATGoYzT81/A3rn/fdGNLwDthY0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=rere.qmqm.pl header.s=1 header.b="ol06/qIu"; dmarc=pass (policy=reject) header.from=rere.qmqm.pl; spf=pass (imf16.hostedemail.com: domain of mirq-linux@rere.qmqm.pl designates 91.227.64.183 as permitted sender) smtp.mailfrom=mirq-linux@rere.qmqm.pl ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692179160; 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:dkim-signature; bh=hB3DORc8cVTvYX9yUCzdZMmu9MaM4e5pBP9vrk+Ma0I=; b=X+B1NYBu5FEimmgyUK29JOWLfZTKfJFR+AaS6NuXQz6AyZsPKd1e1dN6lcdUhaAlP3fsZc PtwnH/TWJDtF2BBJfzsV1tFdAmDTFaCUBcwQlNRn5XHT3h4Pwk9C5eBfetoGX0X3dp3srb W5VMrG3pk8NUz/Uaur3BuqNjfAqUPwQ= Received: from remote.user (localhost [127.0.0.1]) by rere.qmqm.pl (Postfix) with ESMTPSA id 4RQjtq04rDzBZ; Wed, 16 Aug 2023 11:45:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rere.qmqm.pl; s=1; t=1692179157; bh=Sos1qBs3VlhhehklG3z9L5LLCdtvKR73wVoo/Xasofo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ol06/qIuowDl7DPikhSBJ06gBA3bo6LVSVl3/SSxjEXhTMUOzp2DmEgKigpja0DX5 ExHnhjvldSYSXIBbUvvPOEQ+/AlcmfTCYFvFj9OFu7ljS4XL+f4W7PkRzkVLhstuqm DF7fVFuCZDEeUJRt92zYm4pwI6QfXmF8nv1kx9WDAAVJl17NMacCM5aWXRIh0025rH W88IZz96SfBc3464a8ghhNDsZfSSTwHM1c6HMp9RxLNMFVkKLLn9kGzOCIOeoPRxSz bTSC8c0ya+Q7EphOave/HMXcGQwbIK0b8+/oWWi8yyyySIQbRBl0idRigCqsoUmgYY ZX37j+Ik0gWbQ== X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.8 at mail Date: Wed, 16 Aug 2023 11:45:53 +0200 From: =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= To: Muhammad Usama Anjum Cc: Peter Xu , Andrew Morton , =?iso-8859-2?Q?Micha=B3_Miros=B3aw?= , Andrei Vagin , Danylo Mocherniuk , Paul Gofman , Alexander Viro , Shuah Khan , Christian Brauner , Yang Shi , Vlastimil Babka , "Liam R . Howlett" , Yun Zhou , Suren Baghdasaryan , Alex Sierra , Matthew Wilcox , Pasha Tatashin , Axel Rasmussen , "Gustavo A . R . Silva" , Dan Williams , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Greg KH , kernel@collabora.com, Cyrill Gorcunov , Mike Rapoport , Nadav Amit , David Hildenbrand Subject: Re: [PATCH v30 2/6] fs/proc/task_mmu: Implement IOCTL to get and optionally clear info about PTEs Message-ID: References: <20230816065925.850879-1-usama.anjum@collabora.com> <20230816065925.850879-3-usama.anjum@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230816065925.850879-3-usama.anjum@collabora.com> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: C9FDB180005 X-Stat-Signature: 1yaou89fntnx8jh4fggxyyfi9d63iq78 X-HE-Tag: 1692179159-609281 X-HE-Meta: U2FsdGVkX1/8rggwGrKICvLFIDZ0qbBWcEZhJ//hKUS8UNRYWf0d6SeXx/WfIQggHf/IrZIdnl7jFxfyS+hpqUNXXoNVOlQIejJKhsgYHEk/wKCqEw3LdARdeaJyubrtv4JYBnCCOXA0/+lu60tFNfQKB7w4BFoq5HSxqsZeZaJnPdaGxO9wElrNpAdGlx1pSaVtegCd164v1K5OQPRKDTiz+kqBkqqjEZE6bBE2el9SyoRZd/Jk5GQZZkZCOW3JkPaPpz0pmLr2uXQMOMpc5wF4fHHLBjpD2KUaUZM+7eb2m5Qiyt08fxZD5xxXtSuQ1dLn9/O7tSTrm1hHR5fMtT8glAYiy1mCq10wqvODvp7Mbyo0sFHCDz7TW2+XCor3BLEnQI7Dn5IjOPTSfHcmuLjHpwNoAhz7wgNQy0rBuijT9jKZrCYkFKd+KL01YX+ysDY+/pv695UuB4t3YbDzlH5AuKnxDkZ3vVx1NePbk7WiqZGMZVkIWc7ZvMeoTYKIDsmOycWwHmqQagCRlPV9veLCq1a1g/wOnnSExa+IlFRaVm5J3W4wJoZQnkypHyqH2NckhgCrunRGY13aSMnLUub6dPEVRTXfDulQvchPNOVQQyLuswROofazwiLKi1Kek1bhPZe9i8vjVPG1dcm4Dtow2Qh2E1pHL/46i/Caf6nmTqlHuW9yChEsWaWHEU1i/ftqiBzkiE04mX1tguEwhXVb3N+BvdGuhcFIrbMS02PKY7NF2Cahg4HmTtiJO3cNvGrjgsRcE5KhpAjPaGjiDWri08SY0PSgqcxrf5pXapsB7V6iHoOm2sDckhHBCMgxCQS0E3p7yAIaqf7FFGLG7HwMqg11Aj2XjhfCqmvUPhds4EFb7zGd6/L6wWHUD3lDEKccCZJiWOTNMvNIjoHLogMUcwVP2box1644ZV+tVmqjn0M1bcYxR+y2SQhsHGbduPHiAFF93HXsiyeFZPn W0R2WNdg liTE0aNk5RCJJc3EgscXeVEOLhY1bfOuVfQLT6ui/Xa6RcVVCjC9uh3b37XC7EQGUmAje+4A9mqx8hn7kcj8L/CIwpqcJy3JrV3F+u3aOiNGNZq4uFRCLEoi05/AZdQsnbjBe6DIS9VyXzZgVCVNY4TmKGsoqGXazYvop+Rb1cOgKvjuN9WndNmNVYpYZeCf6Z6QeRN+JUnWzggdbgpOCEO70ei4QfObujnijp0zjKUrfeuptrP/DRgRKsg== 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 Wed, Aug 16, 2023 at 11:59:21AM +0500, Muhammad Usama Anjum wrote: > The PAGEMAP_SCAN IOCTL on the pagemap file can be used to get or optionally > clear the info about page table entries. [...] > --- a/fs/proc/task_mmu.c > +++ b/fs/proc/task_mmu.c [...] > +static long do_pagemap_scan(struct mm_struct *mm, unsigned long uarg) > +{ [...] > + for (walk_start = p.arg.start; walk_start < p.arg.end; > + walk_start = p.arg.walk_end) { > + long n_out; > + > + if (fatal_signal_pending(current)) { > + ret = -EINTR; > + break; > + } > + > + ret = mmap_read_lock_killable(mm); > + if (ret) > + break; > + ret = walk_page_range(mm, walk_start, p.arg.end, > + &pagemap_scan_ops, &p); > + mmap_read_unlock(mm); > + > + n_out = pagemap_scan_flush_buffer(&p); > + if (n_out < 0) > + ret = n_out; > + else > + n_ranges_out += n_out; > + > + p.arg.walk_end = p.walk_end_addr ? p.walk_end_addr : p.arg.end; I think p.walk_end_addr can be removed and replaced by `p.arg.walk_end` directly in the walk functions. If we don't set walk_end_addr we'll also return 0 so the check below will match. Might be good to add this as a comment. > + if (ret != -ENOSPC) > + break; > + > + if (p.arg.vec_len == 0 || p.found_pages == p.arg.max_pages) > + break; > + } > + > + /* ENOSPC signifies early stop (buffer full) from the walk. */ > + if (!ret || ret == -ENOSPC) > + ret = n_ranges_out; > + > + p.arg.walk_end = p.arg.walk_end ? p.arg.walk_end : walk_start; When the walk is finished, with ret == 0, the walk_start will point to the beginning, not the end of the range. So: if (!walk_end) walk_end = p.arg.end; Other than that, the patch looks complete now. Thanks for all your work! Best Regards Michał Mirosław