From patchwork Sun May 12 19:36:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13662844 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 80A9BC25B5F for ; Sun, 12 May 2024 19:37:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 780EC6B01F2; Sun, 12 May 2024 15:37:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 55F916B01F7; Sun, 12 May 2024 15:37:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 13A576B01F2; Sun, 12 May 2024 15:37:10 -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 D278D6B01F4 for ; Sun, 12 May 2024 15:37:09 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7FF71140852 for ; Sun, 12 May 2024 19:37:09 +0000 (UTC) X-FDA: 82110752178.09.662C650 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf17.hostedemail.com (Postfix) with ESMTP id 7967E40013 for ; Sun, 12 May 2024 19:37:07 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u6l3DmWi; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf17.hostedemail.com: domain of sj@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715542628; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0Ww0A3VA+M/2XjNLA0vOA5Bik7Ld5ECnqE/YNkhERXs=; b=PPVU3Lwvt8n2m1jfkxoYJzIfLllL/NGkEXzzx3GA0d9iIiTbyY3okKKDYDTz+Z/QECTBR+ ktTT7q3XruSB/3Sd12Z8TGkBXlUIDmHLF0bUw+jeoZHYmfs6SnoHL+RQNzhdxYbxT/ORBo wy9Ur3Yhx9rw/DDlFAEkmvJt441w3pg= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=u6l3DmWi; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf17.hostedemail.com: domain of sj@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715542628; a=rsa-sha256; cv=none; b=QlLtNZA14vWrDxswU5hUO0TkREOjUHBoP/Sc09clwzsGFTtdGrfu+vT+4IT52+66e1ejYl D7zL/a6qby4B+Qla4flzM4zb3lZZAxFGj+4G1VfHNRPCYYO/F09+JtQtoVJmr9RmILqqov CSKtUN3d1p/xhT7oAKPbksJ9mllR8mM= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 8D0B6CE0B15 for ; Sun, 12 May 2024 19:37:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87BA2C116B1; Sun, 12 May 2024 19:37:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1715542623; bh=uU0i+7VRHwnLzmsgFart/FdYz1FyWcfTrlJwgj1wLXw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u6l3DmWiydgP0NCLJj1UuD9gUii+CJo1Lz8Nttns5L737tG96vubosSPx07CxVI5D LHL2N3WpDvMNSRhitK0IUhJGLqFT8TQr93XSR72I1rg+c9hIxAv1x4Xc9RomlhFG96 M2BK0wmkH5SAVuxj8dxYuLcpV92z0Sf0579l8x2xcgPEZErxYf/uBD58dYVEcgYDEe HLmCLsbGhvRBV/pJXARjMT6uxcIfKIUTJK/BSBCr01drUp/RCnku/RO/kpKv6lpdF1 gd3aw7wFgDE2rHdr4jWd6zLyknqG0ExTPfkTNEKWNTQVnve326rH6M4G2IEqANuk09 wRn+E1JBQfGpg== From: SeongJae Park To: Cc: SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC IDEA v2 3/6] mm/page_reporting: implement a function for reporting specific pfn range Date: Sun, 12 May 2024 12:36:54 -0700 Message-Id: <20240512193657.79298-4-sj@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240512193657.79298-1-sj@kernel.org> References: <20240512193657.79298-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 7967E40013 X-Stat-Signature: dmgrtncfjsbm3bw13h97cg5n6n8pb4ic X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1715542627-854673 X-HE-Meta: U2FsdGVkX1/xCWMKKhojZwUzswKXXvP5lb6ObzCAP3HVvgoRHDk32i25s4gQLarUkJyjv1QgYf8Bh2Rti4CuJ41cvhAlCwGf280NwtBMkCufmMEkzeAnKmOyu9BpTDSnnEqb4h7x92bIScKOTLSkemcokECV0GwGD+Us0TJO5pqiMBbMVBVfhteVic8nskn6MAqyexI4CpUUbd2PjhKtekKKMElSV8lfjqUjHTgNLSrkZospIDJuHIm5yM32v7p1O2eH4Kle5a0JZHbiMFhArLRsHHfwV7ko535XVVkFlZy7DsXJNU3TMJX0cw9hm3YGiZ4j8FSrZDklyx9gsgqr+Xs3UX+vbpdGS9Tw9+xVi/6ZhE4JOLpbVI0yamu4a3j0UmJHtXF3mJw/zuv7c/DxSblpSw9ns3GQSuIlYFWo643xoXXcP86azAV5bK+pVm19vRXONkTCRqbcmrMtI2ezBqExVZfcg442U9kSVejcyvt1ditoHJ3nEcZKxxuebJCTfztFPtSh+9T6nT0iSvf55QBHwEWXCsVdW/XUpkHmZYk+j6E59JtS8TYrpuO2RV49gzW/Cdk+9YlMsMIpDa4fWc5PW6Zo8Sq7Ii8EH6SB+oI+ZygmHlLHA8xaJNEwyfjvm2nYJDCGAgFknKvW+GaUEKCXVe4mw7vZQMAScKPsq1CPHmU/3sLWdjhwL3HqwjxFMXgQFJSCFTHekxKDVa2PtF8bce6sc4vBg1cDvW06iLWaGJh/DQBTx9R0CC3pOEBXd7iYvGiJ/wHa2NGsEvdeAu1lTCgJ8ZhcHgEALuslKmxdRgUKVj9BjvRW7CLjsfdknCQYw+ha2It2R3L6OFrqM5ZqwfKq2ZzLFMW2Q57w5jNJByt3wjkxKRwbdboWgFG2BZHGhlYmV/3k/rFApwjtVk9Ukdg2dYkSnccYXE9Am9ZAGhi3p7MEvczNaW3G4KfJSfu4UbKveKY0dgRzHLc Wv3V46fw tYvlcP0ThVkPQumnxBJ34JTPXi/NfQsFuY7tZvYT70b+1XCUx0YfUQP5N81wyyCvxuFu0O4zZS236FojqszCjgjiorpTTacO4iNUbzUUHkthyZpexEjN/mZRssaiRtrefcJ6Lp3iUIszhrC4F8LcNdyAe2SU3QcDE0aarcfUAvoKEEtZXbehFvbZliXwfSnJ+jIyA9M2FTzmbC15MKGnHgCSvJI2UwjMRHLbtYiRPU/fPrOMORFc3ZT25xashexeLP0+RDB2bylanAhhITKyw0RG2N3m5r9e/SwiLlt6fD5eVgn7nifzjOn8KsDfQkuk+Wgz3xltBKORr4SuVnJMTrMc2LxT7j/GZMuDr 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: Implement a function for reporting pages of specific pfn range, for non-free pages reporting use case. The use case will be implemented by following commits. Signed-off-by: SeongJae Park --- mm/page_reporting.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mm/page_reporting.c b/mm/page_reporting.c index e4c428e61d8c..e14f2e979f16 100644 --- a/mm/page_reporting.c +++ b/mm/page_reporting.c @@ -349,6 +349,33 @@ static void page_reporting_process(struct work_struct *work) static DEFINE_MUTEX(page_reporting_mutex); DEFINE_STATIC_KEY_FALSE(page_reporting_enabled); +#ifdef CONFIG_ACMA + +int page_report(unsigned long pfn, unsigned long nr_pages) +{ + struct page_reporting_dev_info *prdev; + struct scatterlist sgl; + int err; + + rcu_read_lock(); + + prdev = rcu_dereference(pr_dev_info); + if (!prdev || !prdev->report) { + rcu_read_unlock(); + return -ENOENT; + } + + sg_init_table(&sgl, 1); + sg_set_page(&sgl, NULL, nr_pages << PAGE_SHIFT, 0); + sgl.dma_address = PFN_PHYS(pfn); + + err = prdev->report(prdev, sgl, 1); + rcu_read_unlock(); + return err; +} + +#endif + int page_reporting_register(struct page_reporting_dev_info *prdev) { int err = 0;