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 2831FECAAD1 for ; Sat, 27 Aug 2022 21:25:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D4C66B0074; Sat, 27 Aug 2022 17:25:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 584F26B0075; Sat, 27 Aug 2022 17:25:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 44CB96B0078; Sat, 27 Aug 2022 17:25:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 377C76B0074 for ; Sat, 27 Aug 2022 17:25:05 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 153981A0917 for ; Sat, 27 Aug 2022 21:25:05 +0000 (UTC) X-FDA: 79846652970.09.ACD4668 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf30.hostedemail.com (Postfix) with ESMTP id BA1D880037 for ; Sat, 27 Aug 2022 21:25:04 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 81207B8077C; Sat, 27 Aug 2022 21:25:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2361C433C1; Sat, 27 Aug 2022 21:25:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1661635502; bh=068uzntAkNH5X9Td+k8jUVFGtdkDKzgG4mnydnaanMc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C4FWztKIudC8xTWLlZ26k0EWVjG6yfms7TsrfOUSuA4LrHAdJ68l+1TO66PZ3kzvq MUJIgPeLqae0lG74qHSvhKg5EpaPyJ1hI3XJ+ZNEHgoTzwIReBwEJulqx7soYRjc/l jJ5zcKjQNui9V8rMbkNe6Eo6v6ojMrHDM5rbJ0WJ+Zv/S2X2i7ApuL4+bHe5zE5zGh kSOoiTq7kDRg3M2roTL9qVPfuXexvfZD9q2LRxQsgOl3HEbenxmhoiGZFH2o1dKd+x o+fjMQirr4GFDEG66ApAPmLYsTvOy5TnFlwSp24nMTt49T4jm6wWZ5drPDDSlWoL95 johV6GXOQ72Sw== From: SeongJae Park To: Cc: sj@kernel.org, akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Kaixu Xia Subject: Re: [PATCH v2 2/2] mm/damon/vaddr: remove comparison between mm and last_mm when checking region accesses Date: Sat, 27 Aug 2022 21:25:00 +0000 Message-Id: <20220827212500.50479-1-sj@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <1661590971-20893-3-git-send-email-kaixuxia@tencent.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=C4FWztKI; spf=pass (imf30.hostedemail.com: domain of sj@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1661635504; a=rsa-sha256; cv=none; b=UR/OTimU2F/uZX+qL5ES1f3jkA7er9SHzBE7GkKHnTkywkIAnmLiBSi9Iil5v9tVK2jV9B XB6wC+7jNCSoShmlOZJ+A9vQ4ZJDCpMqc/f40GRoYpLiE0qMyWZsCAn0+27Ua10GpzDvss HnwqfYWyZFEbqlKtkVL48i0aePWiXh0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661635504; 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=Ga3usIol0H8BHmJDe3+t4HpliZkVnqnXhdNWwhpv+k8=; b=p0edh1U9SY2FdrsNZO/o9MLEQcVHN1y1dsLlkUti6tBkFebqWo+1Nn6FXAm7oH7yRmHNC0 Hh3HXq+8NciFgFdAfZYwoV1Wf9h0nHCxBjpdAwR89kcRqb8ht0MkL2m3b8pM0sV/v4kkfk bji0JeH0CD9rWiMGXHFgTrWwyzq5qPU= X-Rspam-User: Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=C4FWztKI; spf=pass (imf30.hostedemail.com: domain of sj@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org X-Rspamd-Server: rspam07 X-Stat-Signature: aorhcp7gp9r6etzwnyqbie58busrk5gc X-Rspamd-Queue-Id: BA1D880037 X-HE-Tag: 1661635504-878494 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: Hi Kaixu, > From: Kaixu Xia > > The damon regions that belong to the same damon target have the same > 'struct mm_struct *mm', so it's unnecessary to compare the mm and last_mm > objects among the damon regions in one damon target when checking accesses. > But the check is necessary when the target changed in > '__damon_va_check_accesses()', so we can simplify the whole operation by > using the bool 'same_target' to indicate whether the target changed. > > Signed-off-by: Kaixu Xia Reviewed-by: SeongJae Park Thanks, SJ > --- > mm/damon/vaddr.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c > index e481f81c3efb..5f66c826ee3a 100644 > --- a/mm/damon/vaddr.c > +++ b/mm/damon/vaddr.c > @@ -533,15 +533,14 @@ static bool damon_va_young(struct mm_struct *mm, unsigned long addr, > * r the region to be checked > */ > static void __damon_va_check_access(struct mm_struct *mm, > - struct damon_region *r) > + struct damon_region *r, bool same_target) > { > - static struct mm_struct *last_mm; > static unsigned long last_addr; > static unsigned long last_page_sz = PAGE_SIZE; > static bool last_accessed; > > /* If the region is in the last checked page, reuse the result */ > - if (mm == last_mm && (ALIGN_DOWN(last_addr, last_page_sz) == > + if (same_target && (ALIGN_DOWN(last_addr, last_page_sz) == > ALIGN_DOWN(r->sampling_addr, last_page_sz))) { > if (last_accessed) > r->nr_accesses++; > @@ -552,7 +551,6 @@ static void __damon_va_check_access(struct mm_struct *mm, > if (last_accessed) > r->nr_accesses++; > > - last_mm = mm; > last_addr = r->sampling_addr; > } > > @@ -562,14 +560,17 @@ static unsigned int damon_va_check_accesses(struct damon_ctx *ctx) > struct mm_struct *mm; > struct damon_region *r; > unsigned int max_nr_accesses = 0; > + bool same_target; > > damon_for_each_target(t, ctx) { > mm = damon_get_mm(t); > if (!mm) > continue; > + same_target = false; > damon_for_each_region(r, t) { > - __damon_va_check_access(mm, r); > + __damon_va_check_access(mm, r, same_target); > max_nr_accesses = max(r->nr_accesses, max_nr_accesses); > + same_target = true; > } > mmput(mm); > } > -- > 2.27.0