From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51C0231F995 for ; Mon, 3 Aug 2026 14:57:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785769043; cv=none; b=SGk5FyLsFqka3oddRwPAIWVRzI2wWXOJSE6OtpQhJyclgAomqegbCr+UB7YsJHwlCw+q5N1LV+GZi4Jrsrsu9Ujqp6o17JsSTlCMHTM0xQ5sWsmtvLjj7/JOOclz5axG23WOUuOW8RBZDV4OchvIxno7ddC8UE5Awc/0L+s7nUQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785769043; c=relaxed/simple; bh=sJUF2UnrPqNELsMR2fGhE2BlL02YRxP+ImQptnWyR38=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lCvSR98mvlpvEX6cnbusqnvDCE0qozr7dgXtJGYHw1rAyY02YKuNcDzvzsEGsjudU59/W4WOosW7S8ztpUQiPSifTTq6PSkifQj0aPsBbjYWf+i2vhkGifEQJV6iCWkiADCZG3Sxipdim5Bz6QJJotgT/b2we0IhdnaSwPRkX4M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Q1DTg55O; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Q1DTg55O" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-47f904e80eeso3198573f8f.1 for ; Mon, 03 Aug 2026 07:57:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785769041; x=1786373841; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=doE31CPU3agNQxp/VoBL0iESGBCUl1rgFFpxig9/S98=; b=Q1DTg55Owbntlw+hzW+8wHku+ILoMKsn9GIdItpV9AoA5NXWy0e4noxuabNN7pss6g HOHDIT5xazzHU/cwZB+j/DpWQKpPrT03wrjJPtjewkzg11nULqRkketK7Eiitsj3Sg5l oz5E1TCvvpowX9lfEV1Y7n6Vx6b3O53He8Mhj94qRdl2RshoT3LyZwHtbs0wYYH1hnD2 fYpqpP3H2xQI8YfPZIssnNoomzsOOvhGq90gNu5oOPB/818TgSsINqRXEA8oNsTFvlWY 6sI6iop4LVk+lmPkOjlPSFUFM6KR8Elal21kae+VjX+bLnH6sohgQtWykW0Hi/wsoOKw us/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785769041; x=1786373841; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=doE31CPU3agNQxp/VoBL0iESGBCUl1rgFFpxig9/S98=; b=f3ztwD1P/O26GBgEaD3lePSxohG1YuWkLLtBJGRU1FegZjOfBvixHJpSSON7r+GlEF qVYDhHBUWJHkDN/oh5aGnQ10eAKAAzp7p5DF9tHmNsfLtC30qE24Opogmg16jSX78jTn 5+BDh+/HrTUDFSYEZtAZ8DrSojYMLkal1nSwgPF3yiNPiyVlssfuEz75Cns01IMk3LA7 oFJjAJGG1ihih5QAJHzrR2wCOEdRdh+T8TXXxWfvYIBUrCPYmZBK2VNs6wKMTE69aTra 090BJsYnzhtspEudRGXXLxTft17S26N7vfQ/MBhlsBMwVssCvUFQSmm1pFxMEuX6Up29 ZJGA== X-Forwarded-Encrypted: i=1; AHgh+RrZGaTjlf3/8ivGQKUYZS5OdcTDcchMlyKVregMlYNthqXQOwnhh8WgK90EE6M+uD7sYOJy3JHsIJhodFc=@vger.kernel.org X-Gm-Message-State: AOJu0Yzwo4YqvsC8Lj45Lo2Clop87nK0VKYnIx5BNhPGzDktygYxpSjb ne6vEBOUS/NzX3bJaznHNPiHvfxXFbcso7I0xZCVqgji7knLoG1gy/ZS X-Gm-Gg: AR+sD11rVqu71QaPjSiJIexAExv3oEg5Am7USXQJj51ktzP/TmZI77Vi8UsrhqhnjQp mghZJEmagkR6wJoo+zFjwu9W+p2uGyIkExqkXfYqtrn0sW8xW0HleaNVGjiY/7hHZ5QXuxH3Ari a+6FR1FuDqp3ee+KYQIiDaV12qUPPvo8BPCyKq2UWPMUAgbofuHjmA0lDSFlGq1f5stJ9l20roe 2MUIj7Gv+OoxfqxEMR2omLSBiryIH8HLQX2BQingVq1ahAAMtUpsGVPprQk9ftO8Jy/J4BG8i/G bxku7OGmZK3Wm0i5lBa7QqsxoSMJBjh+4ofoP0wn279Hngxxh8Yt3OhxecjiftyF+CyXBoMqOKe ldeDUL9twJt+BBFPKbqyWnAHHQ90fdmG+9LVlTMslVDOXRqzCwE6lHmYDTAp034B8kqKbtl9+K0 OEY8xItcSNTuofKmurNXY/quNRErMbGTHvFCvsEcsf4UFhu0+eYxQgbabctvSOM0iariYdTrVaJ wPeZw1cx/ya3IlnP063ifIeXQ== X-Received: by 2002:adf:fdcd:0:b0:47f:8fc8:af01 with SMTP id ffacd0b85a97d-47fd72f1fd4mr22343046f8f.27.1785769040415; Mon, 03 Aug 2026 07:57:20 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fd458bf7csm35015001f8f.32.2026.08.03.07.57.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Aug 2026 07:57:20 -0700 (PDT) Date: Mon, 3 Aug 2026 15:57:15 +0100 From: David Laight To: SJ Park Cc: Andrew Morton , stable@vger.kernel.org, damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 2/2] mm/damon/lru_sort: error out for >10000 active_mem_bp Message-ID: <20260803155715.08868ca7@pumpkin> In-Reply-To: <20260803134034.15217-3-sj@kernel.org> References: <20260803134034.15217-1-sj@kernel.org> <20260803134034.15217-3-sj@kernel.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Mon, 3 Aug 2026 06:40:33 -0700 SJ Park wrote: > damos_quota_score() can trigger division by zero if the target value is > zero. DAMON_LRU_SORT lets users set the target value for the hot memory > scheme via active_mem_bp parameter. It avoids setting it as the target > value if the parameter value is zero. However, it also sets the cold > memory scheme with a target value that is calculated as '10000 - > active_mem_bp + 2'. Hence, if a user sets active_mem_bp 10002, the cold > memory scheme's quota goal target value can be zero. As a result, > division by zero can be triggered. Fix by returning an error when the > user tries to start DAMON with >10000 active_mem_bp parameter value. > > It makes no sense to set active_mem_bp with 10002. It also requires > module parameters write permission to reproduce the issue. That said, > the consequence is quite bad. > > One reliable way to reproduce the issue is like below: > > # cd /sys/module/damon_lru_sort/parameters > # echo 1000 > wmarks_high > # echo 995 > wmarks_mid > # echo 0 > wmarks_low > # echo 10002 > active_mem_bp > # echo Y > enabled > # dmesg -w > [...] > [ 597.421247] Oops: divide error: 0000 [#1] SMP NOPTI > [ 597.428848] RIP: 0010:damos_quota_score+0x6f/0x480 > > This issue was discovered [1] by Sashiko. > > [1] https://lore.kernel.org/20260801213028.5127-1-sj@kernel.org > > Fixes: 40d98d31cd70 ("mm/damon/lru_sort: support active:inactive memory ratio based auto-tuning") > Cc: # 7.0.x > Signed-off-by: SJ Park > --- > mm/damon/lru_sort.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/damon/lru_sort.c b/mm/damon/lru_sort.c > index 7e077084cb03a..3920d5042f109 100644 > --- a/mm/damon/lru_sort.c > +++ b/mm/damon/lru_sort.c > @@ -233,6 +233,8 @@ static int damon_lru_sort_add_quota_goals(struct damos *hot_scheme, > > if (!active_mem_bp) > return 0; > + if (10000 < active_mem_bp) That is backwards... > + return -EINVAL; > goal = damos_new_quota_goal(DAMOS_QUOTA_ACTIVE_MEM_BP, active_mem_bp); > if (!goal) > return -ENOMEM;