From patchwork Mon May 6 18:02:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13655875 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 D5CCDC25B5C for ; Mon, 6 May 2024 18:02:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 390406B0082; Mon, 6 May 2024 14:02:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 319506B0083; Mon, 6 May 2024 14:02:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C50C6B0087; Mon, 6 May 2024 14:02:52 -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 EDA9E6B0082 for ; Mon, 6 May 2024 14:02:51 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 94D6140B38 for ; Mon, 6 May 2024 18:02:51 +0000 (UTC) X-FDA: 82088741742.13.76D9A27 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf29.hostedemail.com (Postfix) with ESMTP id 82130120017 for ; Mon, 6 May 2024 18:02:49 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qhkBB7in; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf29.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=1715018570; 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:references:dkim-signature; bh=8/Ng1N1Z2EqPnVBvsCQp3RptDaVDlXRuyPl8HON9cQo=; b=QKqU8kjaBOhn4Ro3FrQoroSNzXmt2i+sV6wpBUeAP/eT4RXVr94kTxwtZcnD/oU8dnkKE7 /gRntzxszWz1rbxCpfnWyGf1t1OHu95X+RnXPuM2G+OzogLxRYTUvAbYNpLP80g39dZ1hh KZChAp39z5yEAiz9HKyEQp5uAJqR9FM= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qhkBB7in; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf29.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=1715018570; a=rsa-sha256; cv=none; b=EKkHiOCRR5aVXBPf3QTgs/F1tdU1L8HvChZFG938gfcdCSSd6JZC/jbPvfV0txL+vf8P2S 8hUg8eNs0VApQbbZEo6pHgLRPjmsC2+bu33EURSWIdJW4+9Uk/oHUCG1VGTH+9NZxcsie9 0eGmlm1HGl9t0717cxxMCpGNJ55pVGI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 7BBB2CE0FF0; Mon, 6 May 2024 18:02:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40D56C116B1; Mon, 6 May 2024 18:02:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1715018564; bh=fqRLeDpMpLEhNJVbHZLCTU75BBCRbuwZMSWodHnJdO0=; h=From:To:Cc:Subject:Date:From; b=qhkBB7in8mS9W1tIqHCEPWz5aZqW5cfimQodAJooz4TEaNkJOLCX7+MGkuP34BBCq v9aFDXNjhEBjTusv8n/LIGzL+Ar/JOJInwutge/ypD6XICQWSsgLOl3Z1Db9K4HdCV Bkmij/ktc1VwJL6egTUmTNt3vH6nd5GfYKNvWj73mMnIN+dHgdwStaytOWY6HVsTGH YD/cEcOhmatDTuifUAQZA2QD8IJ3JnIi/g5TbtR6hdEu7KBZ53rYmAytXyUaM1ZO3C Jo4+gsoS3k/m9xpP3sgdJLX3cYV+TLKA13sx16j+/ww9WmF84zDPYhFRAkOMcqK5N6 ZDWNbgu58Nmsg== From: SeongJae Park To: Andrew Morton Cc: Alex Rusuf , SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v4] mm/damon/core: Fix return value from damos_wmark_metric_value Date: Mon, 6 May 2024 11:02:38 -0700 Message-Id: <20240506180238.53842-1-sj@kernel.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 82130120017 X-Stat-Signature: 6sq31w9beqaxfr9brebjpkyn89kue6e3 X-Rspam-User: X-HE-Tag: 1715018569-172891 X-HE-Meta: U2FsdGVkX19YN1HPcE4jLixMjMdsxydUcwdFa9l/ar4hNJFXtx0vidERS7FP6vtFj7jqnwRM55tRT2gHfmrt9h0PTndaA64AFR3ldIwbC28odLMuQUc+om/GrR3j6uiABZebzlzAb03G0jmxcAuuFzX9mGXPqYzuhYYPVtKJ2+haFX/4GiMY4QFQf1SYz0utbdot9sraSYMjcommlGP7SyZsQ8nRdPHZBC8MBZ9Z6L6Djw3kFIcrZ0N5fx2qCf9daDGEIPoUvrVWI20reOBxDYTvMQi652YKpeCuFVzKp2eM4SVlnsz+sh/Srb6p1RJAM+mlJYwprt4IliZoX1qaaBTPk0L7f27Af6TZOc0JcGWE3bko/Y5ellqqGoX6M0G2cHYjrt6rZmfEiUf/K7rrqlNW8CZMQC3pc564DqnZ3z7LvdqtQfH5WQHp1ZbZkirbyFVMlRitGHW8vOkBi0nUn2nO96ETdzgo+J4gpq2sRgzbn+C5e3Ql2U+HHx3TntuEL5YqvRIW+cIygNXhEYWr6joXU39ClPucOocZBpZAXqbJTDOkSQkAff73/gIMfCWDsRdW2tTWhOCXzo/tQR0tdWcrEQQz4TBakwLBkbcIFjz8ii1COhB/WZOuiGRyTYEEg3AwxMd/xjTA8ylZSAzNYimFuy2vvCjEz+VSlPA1fvJOyndgihKm1pQ7JxI4wqGkJhnOVoMd9x042rDvoirZnZlHxjzBNPPsfBoXWhtenNIkzrRn3l/BT/KCVWoD2zGr264VxpTcwNmiR9W5R9FOZ/Jl/7VfpWQpzP0i5xQNS/Cv4VbUPJrougVS+fcTdEEZjAE0xbVkq3IErVrGGdy+794Qtt+2tI/rgc/PsHXu+5LFdXaigHq+g/7qGjvgNLd7hwg405EQiNIgU26qlTU8JpbvmQbC3PhPDZZvEZ6jkiwQ0GTsNbnCYDaGKTvDItbPH/D57n9Gs7ZTHl9ab9y RILV8ndn tOCrZBzjSUvT6ffjg4tNuMwT5sDizuMEv6fP6tmwiiB4Ja0hdy18nhu16Qh5nKLLPtpnuf8lTSrpPEHLBz1ZLcNJN2ENNdttCtOcKjZVJIIp/TiC+AqEG6BGTiBBpipklk9Mzk5Q8IcWBMi5cIL3eCdZQwscbF8rUEG3f+d6VuF/vihXhLM2Gl7uVhaePP9GUgKHKo6MgZUxkUCaw7tLqMc5LV2VA0tmBO4hrRFlxL3BvlMU1+yAjMAwweO70thqMMEAlas4lPhYZ0KYHfX3S7+nuQbjaIMUMqiYznT69qzMeE22tBdI0J73WLqSd4I2dh6GJbqCLMYGeVZ83XoLAsCFdUgFqNyC3pBHazCx9p258B91uAtO50YlpjA== 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: From: Alex Rusuf damos_wmark_metric_value's return value is 'unsigned long', so returning -EINVAL as 'unsigned long' may turn out to be very different from the expected one (using 2's complement) and treat as usual matric's value. So, fix that, checking if returned value is not 0. Fixes: ee801b7dd782 ("mm/damon/schemes: activate schemes based on a watermarks mechanism") Signed-off-by: Alex Rusuf Reviewed-by: SeongJae Park Signed-off-by: SeongJae Park --- Changes from v3 (https://lore.kernel.org/20240428191439.194027-1-yorha.op@gmail.com) - Add Reviewed-by: SeongJae Park - Send to Andrew and linux-mm@ for being merged in mm tree mm/damon/core.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 939ecfcd4641..6392f1cc97a3 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1481,12 +1481,14 @@ static bool kdamond_need_stop(struct damon_ctx *ctx) return true; } -static unsigned long damos_wmark_metric_value(enum damos_wmark_metric metric) +static int damos_get_wmark_metric_value(enum damos_wmark_metric metric, + unsigned long *metric_value) { switch (metric) { case DAMOS_WMARK_FREE_MEM_RATE: - return global_zone_page_state(NR_FREE_PAGES) * 1000 / + *metric_value = global_zone_page_state(NR_FREE_PAGES) * 1000 / totalram_pages(); + return 0; default: break; } @@ -1501,10 +1503,9 @@ static unsigned long damos_wmark_wait_us(struct damos *scheme) { unsigned long metric; - if (scheme->wmarks.metric == DAMOS_WMARK_NONE) + if (damos_get_wmark_metric_value(scheme->wmarks.metric, &metric)) return 0; - metric = damos_wmark_metric_value(scheme->wmarks.metric); /* higher than high watermark or lower than low watermark */ if (metric > scheme->wmarks.high || scheme->wmarks.low > metric) { if (scheme->wmarks.activated)