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 0963FC3ABC0 for ; Wed, 7 May 2025 20:40:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5A78A6B0096; Wed, 7 May 2025 16:40:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 554896B0098; Wed, 7 May 2025 16:40:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 41CB26B009A; Wed, 7 May 2025 16:40:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 22A946B0096 for ; Wed, 7 May 2025 16:40:57 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8F3385F001 for ; Wed, 7 May 2025 20:40:58 +0000 (UTC) X-FDA: 83417280996.05.78AC3F9 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by imf26.hostedemail.com (Postfix) with ESMTP id 883CC140004 for ; Wed, 7 May 2025 20:40:56 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WflfOK3m; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf26.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746650456; a=rsa-sha256; cv=none; b=1xzMvB8g9PUnxRoAE0Gkh12VwQpTcQxxWqqzsm80CHxm/PCod9Q7oOR0EO4rCIzcRpU8nU qyT1mhWITvEdx1/cIJ5Bcq/ZsyChG0MnbGF6MyZ5Afk3omYmGBn2+c8/Eac7a0mim1AwdO DuD4VB/vdYL7vkh5pMtiNnMXsCHS60M= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WflfOK3m; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf26.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746650456; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=vc93lrG0Hw2SjNwVZqM3dgp0VFSmvwCyoXXVfnOTYQs=; b=NnoHGAuOtnlYs0jr56Lx2qinYnA6RepRJqXwCkdqqzX5A3BDT4FjrGv7aYzFdWzEquzEXy K5uFSXT/Tb7hK0bSwH3oLgSuMUoccyK+OZM5UeakGSJpFidysVvXuJ4ReoVVX7u7NuUh1e y9e+jh1OepKPoVrWKeuyg/yjkaPSmJQ= Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-3a0adcc3e54so186655f8f.1 for ; Wed, 07 May 2025 13:40:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746650455; x=1747255255; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=vc93lrG0Hw2SjNwVZqM3dgp0VFSmvwCyoXXVfnOTYQs=; b=WflfOK3mxGTEwaeQTDGlJ7NPJCpZVYC6FB7/tqTKuQpO4MUN0RkiyRPt55IGPvlVz7 2TFQ/Bw/HMyf0SFraZ2JwuP75T/noniGW36boxWmpySj0lsad4AkxLsxEYzQUdI+vGkp zimfxbnTIGbzENtmlrk848kjOQQ/vSHnW0ybEVneWPN2QfDRWYHmxI+FDU9xrZIhQBJ7 xZBi0nrucYyWthvOJpKwoHfHBXWX9A6cU9hLsZLaX9Xbdgdmd6/439yocuZy1RLQthbm S/ACPdDEGdld+Wt0ooPZ1ixKwF3x9CFZTUwe5Zhjl59jj0V5S+jYOVm99WQo/Eymt1Hv L2SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746650455; x=1747255255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vc93lrG0Hw2SjNwVZqM3dgp0VFSmvwCyoXXVfnOTYQs=; b=hHO6B2lJqzlkEeP12M6dly8McTcw1whhVVGXxYDJvQqCn3ZnZirG92Z3ZjLeUh9MA8 yl0IzCzg/naECyjtcoUeE9D2M0ceUJI3K4cZtV7DvcOBQ3M8VtfKExpnZ2Xnq+lR5aVW IDcOpNTlmss4NW33gbMOJ8Z/jv+iwGfMnxm+Hs1WymjLiOJDQjkCXLkg1gVzIb7ElMPy Sixr4M6n7wsSLuOy5gct/xBoKxTxuoKw8GpJRa68TMkmmrad5hGoIoARKD8PtFQn5e9g Vq8+P3yO/VF6bM6XiEhJ7UE7MNboIEolyiWcL3SaOaG0PHh4QsaXHK9HxEah/kqSzsTm UyZg== X-Forwarded-Encrypted: i=1; AJvYcCWZxZesy6zR8fCQRLjphm8qldQLL/3tKMmCqNrZUkQnHAOgGte9F4BlY409fB8+zxyAr/RINI9w7w==@kvack.org X-Gm-Message-State: AOJu0YyixHZki+xaU3V+PhbVUEidqq0yaXNhQD4prJIcMsz6usL8j6XS lrR2N/h5OYUyDgaF/C8QVZC1jZy1fDJPR5W6QaR0LJ4tLTSldt1y X-Gm-Gg: ASbGncvQfn4yeo+PmU5lC22zosXA6WTikce3EH8UUknbSLlrurzDUtIFZbnsA2EaT2l BYto92Ayej95Q5FRjJgbUAzku43ahyRJ1sjjEdhF7gY2lArX3nNiFIrW/T23cZYYsx5Vys1SeGM IRwiPNywDTcA+EEP0OWRtlisR0nJazklNGpbj5ORsZl409DjXUSOFE7eBwjOvUzXIEV+/TBC8NP tapKvyvSQwn6HZkHv9zeOem+REjcnjkcNxf6sTchZEOqIU58EBiZeH93knyrBtamWFrD1ULolk6 Em1TqQ/yd3JDZrggDUsIw7kUQjowNKEinExVVesHZFgyLCyZtW7M7wS2CjeQeAIZkvmkdXm/3XH 7A3M= X-Google-Smtp-Source: AGHT+IF7lnGYz8tX2qUOl403YDquvjWN2znFm05K0wGqllT1vIoVkF8GUXKgNAbIhOBhsKkvnOQoNw== X-Received: by 2002:a05:6000:402b:b0:38f:4f60:e669 with SMTP id ffacd0b85a97d-3a0b4a244a4mr4112259f8f.29.1746650454667; Wed, 07 May 2025 13:40:54 -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-3a099ae0cafsm18120171f8f.19.2025.05.07.13.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 May 2025 13:40:54 -0700 (PDT) Date: Wed, 7 May 2025 21:40:53 +0100 From: David Laight To: WangYuli Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, yuzhao@google.com, stevensd@chromium.org, kaleshsingh@google.com, zhanjun@uniontech.com, niecheng1@uniontech.com, guanwentao@uniontech.com, Matthew Wilcox Subject: Re: [PATCH v2] mm: vmscan: Avoid signedness error for GCC 5.4 Message-ID: <20250507214053.42c90b11@pumpkin> In-Reply-To: <62726950F697595A+20250507040827.1147510-1-wangyuli@uniontech.com> References: <62726950F697595A+20250507040827.1147510-1-wangyuli@uniontech.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 883CC140004 X-Stat-Signature: 7aw5rgrhixt677j84cpw7rxm8ybf1jdc X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1746650456-254807 X-HE-Meta: U2FsdGVkX1/0ta5id3r02hlzD+lBfTsdVKPhbK/yVQLcNaAqNlYcQi6pxh9B6CNLZcp/RF2f30DoYwlXFlzemmIiwvJ8SAwgDMswrrvST5KlhldoMBo8d/kJpvHAunjLhpdET44yHfDlo4SoQJMeU82hE6gr3sQj4g1C4g7suIBkKNWF+l+xOK2jWZiYT83UifOOE32JyqWRgYKsri0jEZPVjE/GdKlW/F6E1LFi10DSjwgZ1UfFRHww6nGbIvPCDBhtHKTWUUtsVqvGkxusT2KiOq1ZiHmU/FIAVc/joWxQ72GJBfyzYDUqWPdlNdqpUzx6csu+pTUMyhcdbqLzkYF33l5K1W8MPV4vbfzXj9Equg1YzGkB+Hz4Bi+aNpAtsy5jdeHhJPdhlacNZylA7E4U4OLV6GCVMsvmq75KFW6++RLoVXY8PVWZV9ruZWA8t86HfM5ESLd9ZLH4Kb+5Q47uk9LXQr+w4nJGo+eRSrBk+V+LbEd0HsFzao7mWawc0fIw6DkQdV0y4AnGWsT+QikqGyEICab2XbKA6nGqugOi+MmK14Pe8/cQJqSeGo3p+TFr4clBGDYjAY/Yii+EtfJ48wN6QKstU4zFNCrdPN60SDesxrUtemQQUZ/U9ZpdYiS8/6Tu82L6FNTsOVsJXMf2xT71K3CYgeKdZrkluFHEtOYbQfr7tfynXW7PbT8DK9oBPSLFbwSQWSvcSzdcbymOlfkzwLWEb6ijaLj7Z6HLMA04gAIJCaPleAUaxCzT9LUGCIG6z6WIT+goEb5nQHsLXe9WBi6rW3rh4tsA/jU56EwS1CiAxT3+fOIEaX/uv+8e+OPAALHAGx4DDrjmdEjxU5kXCWOkBvuPj09p4pDnIICaVZesi22hOsLX+qO30FM5y0Fd9DHeemRo8/2b+sQlXdlHq1BhaZuddXhTS7m+ZxriWy9SBBa/ZjNXrvlnspRZiciG1Ofw3iuv4JM wLCwlYtF SGrpAIjM/5c630hU28hRAwaGKWIimoY9rlJI9oEi/+H+2QqvKcHb2ld2ouY5rNBOeoveRqFb/lFgK8G1T5cxmio0MCXH0frK1/zA4uPcK9S1ZIWU8tngjsVOkePeNeWRjyFUDtVi/s9jK5sK7yl6PtHI0EcO9oE+4LZVLDrUi/++GEGu7fl43c72uQE4ji7nmObgzPxr6/8B97KYk/EP6VTkSyG9vaxaGlIy7mB725W2o9WV534++uKi7j4o2VKt1gR39QzB7UE19r0/ntQVWGDXVxketnZvpFjHk2v3Gq0lCKHwJ2g6/rH1oKwru/E9Ktxeb8nBWirPi/4mE1dQHVqomI5p/6R/KC93krKgmOQNnZimJct6/JQ7igX3yavYYMUEov+oGU6tLQl7Dr9K+jbD/HrpoLjEhgqLQCLSCPqj3hFUCF12+am/BTKyLwEi6A595JDeQoOYk3yI63eCRhV26g0OP8LkBcPjv3GD3ibRULNK/G1qNxITqVLHEFSWpCkC1 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: On Wed, 7 May 2025 12:08:27 +0800 WangYuli wrote: > To the GCC 5.4 compiler, (MAX_NR_TIERS - 1) (i.e., (4U - 1)) is > unsigned, whereas tier is a signed integer. That is true for all version of the compiler. The warning depends on whether the function is inlined or not. >=20 > Then, the __types_ok check within the __careful_cmp_once macro failed, > triggered BUILD_BUG_ON. >=20 > Use min_t instead of min to circumvent this compiler error. It isn't a compiler error, it is a coding error. The correct fix is to change tier to be unsigned. (and probably 'i' at the same time.) >=20 > Fix follow error with gcc 5.4: > mm/vmscan.c: In function =E2=80=98read_ctrl_pos=E2=80=99: > mm/vmscan.c:3166:728: error: call to =E2=80=98__compiletime_assert_887= =E2=80=99 declared with attribute error: min(tier, 4U - 1) signedness error >=20 > Cc: Matthew Wilcox > Fixes: 37a260870f2c ("mm/mglru: rework type selection") > Signed-off-by: WangYuli > --- > Changelog: > *v1->v2: > 1. Fix commit msg. > 2. Use min_t instead of min. > --- > mm/vmscan.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) >=20 > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 3783e45bfc92..8d9a82621c4f 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -3163,7 +3163,7 @@ static void read_ctrl_pos(struct lruvec *lruvec, in= t type, int tier, int gain, > pos->gain =3D gain; > pos->refaulted =3D pos->total =3D 0; > =20 > - for (i =3D tier % MAX_NR_TIERS; i <=3D min(tier, MAX_NR_TIERS - 1); i++= ) { > + for (i =3D tier % MAX_NR_TIERS; i <=3D min_t(int, tier, MAX_NR_TIERS - = 1); i++) { That loop is atrocious. There are two types of call to the function. Either 'tier' is a constant 0, a variable 1..3 or a constant 4. You really don't want it not inlined. When inlined gcc tracks the domain of 'tier' and knows it is positive. That stops the error from min(). If not inlined you get terrible code and the warning. For the loop case (and that includes the 0, then 1..3 loop) you probably want to ensure the [hist] and [type] array indexes are only done once. I suspect gcc can't do that for you. David > pos->refaulted +=3D lrugen->avg_refaulted[type][i] + > atomic_long_read(&lrugen->refaulted[hist][type][i]); > pos->total +=3D lrugen->avg_total[type][i] +