Received: by 2002:ab2:1689:0:b0:1f7:5705:b850 with SMTP id d9csp24195lqa; Fri, 26 Apr 2024 13:04:10 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX5ChRiMj6g5Au+AlTkfemMfbuSMj9x4gdOVCFTszO4FLYFCivvJMBGvf6rj2n3kZaF18l99IBJ8TLdNaN5Y/UGbnwxwhrF6rrRYufbMg== X-Google-Smtp-Source: AGHT+IGBUh1tn3NbO35AtgZKYjZ7ENJvKLLa2TIaUQJDDpDViOXgx+JY5JwrNSNJyBUtNfh8ZCHh X-Received: by 2002:a05:6a20:1046:b0:1aa:14a1:e5ef with SMTP id gt6-20020a056a20104600b001aa14a1e5efmr4013160pzc.38.1714161849911; Fri, 26 Apr 2024 13:04:09 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714161849; cv=pass; d=google.com; s=arc-20160816; b=U6Muo2m+wGEdtP3sMjgdz8ykBTwKO+Rq29T18OPUJ+fjTd1hy0ac8+33I289VqrOu9 41DS/1CNuTHqSl4mrERZLulA1Gmo+q9nET2Au7se8DV1I7apVKoOgtyp8IdArz2OM1Ur gn3yaC+N/R9wxUdjACMIZ0MnLUYMMiDaIXm/63yknBxQJpQEN8TsOrRrGxcoMmvZIEmW 4TWXE5NFa5k5gx8HUKd4s7XIkOY4op2kxkDDTFyUk0p5oeqhqiOQVaAAQWgJTKyiKgrx yf64QItzF/Fd75e3L5S+cEnQXRhRclMaQGPGiySKJMWC7EHZSxSACNEAc46Ss6lj7jqr nMSg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=bmBGpD4FzLpxb6o4z/r1N7rmnUy5h4Pe+Fu+Xju4DGc=; fh=+uPwm1v0kR9elkOH8LXzApiBs1O/622HeaqVouhIKmI=; b=qF1LgsEenR5CuNkAcigqfxzTFXnRIFKWXX+moPxvLGPlKE63S5Fjn1+6x9QopxEu/F hmzZw4ntppr9MCMh/OeA4wf5YUZlREq0ADCsA2J1nRUIOwolyLresu+qVEQSX2b2WkDB 0rSbkH0hfMGO1bU+3qAKQaeokUPfVSnkcgH7oIgi5rK6BHoaeZWWXb6Qsll6uAPHot+1 EZ833tafjQMBqzbLoLf64BlAnXJGHjkSKtLdGT6QYZTeaxHb/hyYawmayhvEzQTMcxyK Pyf61Nq8ho3+MRuqTyrn9Womalckb+08LXI1HQ2rluMiJW1rT4jEBEC0KS9A8oP6Hbp3 JQQQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Q2nYt7mW; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-160635-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-160635-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id a15-20020a63e40f000000b005d7bf204e26si16439407pgi.899.2024.04.26.13.04.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Apr 2024 13:04:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-160635-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Q2nYt7mW; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-160635-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-160635-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id EA31E28692E for ; Fri, 26 Apr 2024 19:53:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D4A4625624; Fri, 26 Apr 2024 19:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q2nYt7mW" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08338224D2; Fri, 26 Apr 2024 19:53:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714161182; cv=none; b=G209bQELee74JbQ4ihPXRuqpZ6KdqtsxJM1Wz+wlhdKy3Il3naYnEXV9K1gVX7GxpjDZFDG79zIMyhAYBF0paQW0RyF56kD518qHY5B8IyoUscIIP5bocEizMSvAYYb9H9U7bSCGKmCUs26PU3x+XJ/ZmJIYCi9MMGpRG5MUkEQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714161182; c=relaxed/simple; bh=2SdOrYSwPaCcW6lpCEqRPan9kbnzKrEsfc9vQDQS2P4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pCNJuDHum9+pbM0tTf1ls08f2gcEzuAHshU19mLUqQCyjOfICoQjG1Zv9NQ31SH9nemRbzJlUPzZwGNEZfUdj2yjYR0AW/hStNWlId+K5W6d2ESuYfbUv6YFifRK9bSCRQyKGRXOj3jdu2Tee1Cvzj5/fuMxk+2JRkyEe6LN0Js= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q2nYt7mW; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 09FFEC32783; Fri, 26 Apr 2024 19:53:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1714161181; bh=2SdOrYSwPaCcW6lpCEqRPan9kbnzKrEsfc9vQDQS2P4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q2nYt7mWd13qgtKTEmdZ8bbPoMfYI4/cOsKLqW337FVMFVnXLzHas4Q3U7I8sR9Z9 acTnbyUuez7gsIQG1uH7YW6DXA+S5rVfeQ0tGBhTrPDECy5NqITSc0RYvKJiY1Sv2C CZUHHD8wpa421gUwEDHr6tOiBdbKORfwX5bL5imLi41RJ28KPLcRXdkDMfa1lROS64 gl2TbHvNv0P4Kq5NxFRbFiWfbHqm290wByZkMtJ7kN3GDgDsoIiQCf4ozaCuxsRysr YFNOXfG/yUIi63M0aNql8e5LePHrLd+73bb0cs3r9r1pkB6A6DeYp8JyfcYSDlUJjW e78umN2Oi8T7A== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Honggyu Kim Subject: [PATCH 2/7] mm/damon/paddr: implement damon_folio_mkold() Date: Fri, 26 Apr 2024 12:52:41 -0700 Message-Id: <20240426195247.100306-3-sj@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240426195247.100306-1-sj@kernel.org> References: <20240426195247.100306-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit damon_pa_mkold() receives physical address, get the folio covering the address, and makes the folio as old. A following commit will reuse the internal logic for marking a given folio as old. To avoid duplication of the code, split the internal logic. Also, change the rmap walker function's name from __damon_pa_mkold() to damon_folio_mkold_one(), following the change of the caller's name and the naming rule that more commonly used by other rmap walkers. Signed-off-by: SeongJae Park Tested-by: Honggyu Kim --- mm/damon/paddr.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 25c3ba2a9eaf4..310b803c62779 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -16,8 +16,8 @@ #include "../internal.h" #include "ops-common.h" -static bool __damon_pa_mkold(struct folio *folio, struct vm_area_struct *vma, - unsigned long addr, void *arg) +static bool damon_folio_mkold_one(struct folio *folio, + struct vm_area_struct *vma, unsigned long addr, void *arg) { DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); @@ -31,33 +31,38 @@ static bool __damon_pa_mkold(struct folio *folio, struct vm_area_struct *vma, return true; } -static void damon_pa_mkold(unsigned long paddr) +static void damon_folio_mkold(struct folio *folio) { - struct folio *folio = damon_get_folio(PHYS_PFN(paddr)); struct rmap_walk_control rwc = { - .rmap_one = __damon_pa_mkold, + .rmap_one = damon_folio_mkold_one, .anon_lock = folio_lock_anon_vma_read, }; bool need_lock; - if (!folio) - return; - if (!folio_mapped(folio) || !folio_raw_mapping(folio)) { folio_set_idle(folio); - goto out; + return; } need_lock = !folio_test_anon(folio) || folio_test_ksm(folio); if (need_lock && !folio_trylock(folio)) - goto out; + return; rmap_walk(folio, &rwc); if (need_lock) folio_unlock(folio); -out: +} + +static void damon_pa_mkold(unsigned long paddr) +{ + struct folio *folio = damon_get_folio(PHYS_PFN(paddr)); + + if (!folio) + return; + + damon_folio_mkold(folio); folio_put(folio); } -- 2.39.2