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 ECFD7C02182 for ; Wed, 22 Jan 2025 01:58:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5C9996B0082; Tue, 21 Jan 2025 20:58:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5520B6B0083; Tue, 21 Jan 2025 20:58:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A4636B0085; Tue, 21 Jan 2025 20:58:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 143126B0082 for ; Tue, 21 Jan 2025 20:58:40 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 930EBB0F3D for ; Wed, 22 Jan 2025 01:58:39 +0000 (UTC) X-FDA: 83033428758.06.38BFADE Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by imf04.hostedemail.com (Postfix) with ESMTP id 818134000B for ; Wed, 22 Jan 2025 01:58:37 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=intelfx.name header.s=google header.b=mQCMw7HC; spf=pass (imf04.hostedemail.com: domain of intelfx@intelfx.name designates 209.85.167.48 as permitted sender) smtp.mailfrom=intelfx@intelfx.name; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737511117; 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=DxyXF8Hr8QolPU/FAk8yF622zpC5hPC6gkSHqzztZZ4=; b=vvL/79PS+AN/rURDP/KSoIAQBtuLrgxnOGjNMG1wGyICGY0e5SAgBSjkgHpZx1VGSyJKxy 8bhudDKY+FmUim5l+8IxBl2O53F3PM9M4r5pTP5v8MRFMth1GjjoZ7ReIwlEwKmgl/RTrD IQHPhjEcGlMQ6+9Ol8dNy8FfiyLP4LM= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=intelfx.name header.s=google header.b=mQCMw7HC; spf=pass (imf04.hostedemail.com: domain of intelfx@intelfx.name designates 209.85.167.48 as permitted sender) smtp.mailfrom=intelfx@intelfx.name; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737511117; a=rsa-sha256; cv=none; b=TujdLGHokZiEQIjSVIeMGXL/6Z+2J0mZMdBJfc9tpmF1LdhyT1LBqV7zKWqOFlgZS3If9e fw93WWG82ckmG+K+65G7UQLfkIm7YA8YkKgF1t9Zb/1JG/Qdh/jYu9yqW6YhrGHQBXftMm zi6PUuf68Svl2TwNzGignAOxB2cPiww= Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-5401bd6cdb4so6613480e87.2 for ; Tue, 21 Jan 2025 17:58:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intelfx.name; s=google; t=1737511115; x=1738115915; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DxyXF8Hr8QolPU/FAk8yF622zpC5hPC6gkSHqzztZZ4=; b=mQCMw7HChF7N5wOzv9c5n4X0YMzUTLJXVCmvRJ3FhRueyUEROoyvHTy/ON4eqz0CvC xtfB5KrF026O2YOl0Yek6kWT6p7f72p2nVQvgmCBI88tR5krS74AtQJKB+BYdlrAMABg cat6CcbyGhA0xNQO9nd+rV9iVBV7LgIwsMv4s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737511115; x=1738115915; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DxyXF8Hr8QolPU/FAk8yF622zpC5hPC6gkSHqzztZZ4=; b=alBNa7joSzNz+K74il5MoKPAD54rE3HWuTmeRwRnpjccp4+yL7V+dGrh6AbeoPSMkc DIyAiLvJ0WfVOMnkgxK2yjcDF9DxVQd2hT/HQkgFcNmVu59qb92OgxW7+QkyK0Sf5ICk QfvwetV4R7clB2vMQWkYNk4TmTxVtwUYO5OX8btGFQNTirZ8EfodLxykogh0tI7HmUUp 19d3kU9VbFgy94Z/xjzY1U3YOfucHyll6TV3I1Whrs3kNoa2ALZZgiOt6NQeaGzGhYaG EpWKdEkrsDAxuqxM22YAv3v/pjdkAAzPk/qzfqr8cKHqrt+iYMF8xRS7fxXa5JiJ4bFB uxIw== X-Forwarded-Encrypted: i=1; AJvYcCV8wI2JTLHYQYEtA8qrBWqLAg/qmt3OlXdqlq+L3xUXi0OYlL4CBixW8YjJzMkw00nW22Ti12xeZw==@kvack.org X-Gm-Message-State: AOJu0YxKS4llXdmtOEsbHOJD3EsZxwk1wKhLGNYm7inmkK6XHbKT+4JL Ayz8mVkOe2cg9HrofXo6HGUdhcu5a6GGYcvb3vJ+as4sP0NT6aSRvCWZtf4vx+o= X-Gm-Gg: ASbGncucHJRoeuL2yxLhldeMHOYAE8mZr4GDdeLPfYMyZi5lffRA162PgdX3CvGnynB VXsMs+0uwhDhLvMrRMfQ3GMQDcpvslIuuztZYOZbL5BwCTN1pWOngy18hRPrUd5yuKk3WcP+nhc kTWHL33MnSgXToBr9kyE1nyFqfUwm9IV1SxVU2V2xweUrC6uJcQkdpwwDobxUlZoYFpo9CB72vM qzH0oX0EDYM0fkEavbdgZppraP6ttKF1hOUQTINElpO2gD7t56uojnY/POLIpGx3oI7azRzOnZq cIMlijIg+MOx/caLD5VOtVH5LTpYJlNXtRWeOlSlqSI= X-Google-Smtp-Source: AGHT+IEbm3i2l9ctO/977rtxU4PTr1BHePcWsRUqHDQP1K8679iQ6Z1uySlSBXPdUBoeSUal2DMlMQ== X-Received: by 2002:ac2:5541:0:b0:542:2335:c43a with SMTP id 2adb3069b0e04-5439c246321mr4899214e87.21.1737511115328; Tue, 21 Jan 2025 17:58:35 -0800 (PST) Received: from stratofortress.vigil.i.intelfx.name (vigil.intelfx.name. [193.106.93.116]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5439af60ba9sm2079110e87.113.2025.01.21.17.58.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jan 2025 17:58:33 -0800 (PST) From: Ivan Shapovalov To: Andrew Morton Cc: Ivan Shapovalov , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Pasha Tatashin , David Rientjes , David Hildenbrand , Vlastimil Babka , Joel Granados , Sourav Panda , Bart Van Assche , Kaiyang Zhao , Johannes Weiner , Konstantin Khlebnikov , linux-mm@kvack.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev Subject: Re: [PATCH] mm/vmstat: Fix a W=1 clang compiler warning Date: Wed, 22 Jan 2025 04:57:15 +0300 Message-ID: <20250122015818.3308696-1-intelfx@intelfx.name> X-Mailer: git-send-email 2.48.1.5.g9188e14f140 In-Reply-To: <20241212182425.ad1f7894cd0f00b2e34bbaed@linux-foundation.org> References: <20241212182425.ad1f7894cd0f00b2e34bbaed@linux-foundation.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 818134000B X-Stat-Signature: ezqbskppz1xweddfz4a7q946y4g164bf X-HE-Tag: 1737511117-875983 X-HE-Meta: U2FsdGVkX19uY4yb3oEvHgUT+B20J3c2s1K7SCZ6+DDp/DSdEdfwRreMhfXMWSAknqM6a8eH3KKOYPabAoY64pnVebPoSURf6viL78NLyExLx36OhWICE+jfQq9lJXnAyX5uYRCZ8C5PZ7mcCvXdKW4jUrBCV0FanvUwji+UbzQOKLs8S6OYVfCgpPORQ2cSKMMxxgtWl8axzOlT/+wHF/6u+JG6ezf1IgunJDc98Ov0sxZIFKO2+D3Z1w6qCMex0RhpylKA6xbROPH3TVt/RpUOU9CY5JyPyYEeQixVRnilSgVjsYXtIRB42D12hYvV/7X1+ZwQk9DXNF13krQshRZiBuBDjMtUVqMmcEODwbMe2qnZGdnTEfesgHu7l7024EG2M4VfAfhplZW79FZizTfoSLg6ZVsLhhatk6GaEqIumgf//NhznFLKq8qJ+XKwhwcAkBZe57mde1muIn3wrSgpKPzOTXQLQUg+LzoePPe4qvQ9FCyj+mZD2slx2O/X/IQUnGoTGrLiNaJYx+tgLkmJyKMU3mJadVIf5g/UpUhkCL7z6SyUZWU+dPUGiDzxepnx84Lu6mN1cOepWOfWcnj5iMe+tSfhv7Dqu5LyrCILk7SZ+/jyHPTTbi5KToIRMJkr8QMIb/jusKPQ95ci7c7B5CMLOlEnUo7sXoFkMpBF2g+j56HKrNDXTwLDpAWqI0kOX39cZBJiU5VnUCbyVFMvLGwrnIbtiHGS5QMfGjBE04Jfj/S12cJKxD3zPE11n3TnFOUP6ker7V3AtDOKDATFyee6F3SC+DlT5HfCDSJil1VNnqjvLPMm98YfKiu+/A5CyKw5qMspWh0Nfe/frkAAbHez8x//vfl9CGn51JcWa+maZuV3TaFMv7H9QvMgv/GpoRMOYs4sPd/Eo97heyIOEAbW2FtG2EQl5MVkUj5nMr32ZKh+8rVbvKhu2uaSluLYwGA3/9LFGWRXSXQ L3KQwBtk AmxToWmqOEWqWYzI7g26mVZh/zUgF8DId/tSxt0wxZynbJEqyRO7LYGOoBv8LiPi7pUc/svPgKP/Hg/ICYj29guZN0/1UrBIha08k3xWH3svIiEo0Qds8uJjXK/huSxpkCmRpVyB68s5uG2ja7r68fFhQ3+OPThE1hhnemjvL08MlS6gURakiAsbeHFz0pJceUhbSF1CXv6J098nsNy8do7MsY6lQaex/juXLceVIgTvH+rDxi9Mx1XfKz6/E2fKm2aAXXsTnwKZeF+3Aw5cmXDOfgcgE96DbvQD3TQABekPgHtY1zr9+17RRgI0pr931KrUPRrhChzOhaqHqHnNGNeVMvDB5dkMoU9PICqbFlEuTjGqoT6AnFwuYQHGiY73T4is71mOq49odR58eYRc3gK0Nw/043t8ET22CHpeDCWWh5zURaVMwSiiO5w39lKHGzrp9etM/m4jgDKMc/4UJdZHd9rUHmqOj9BBj 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: > Spose so. One always suspects that adding a typecast is a sign that we > screwed things up somehow. The relationship between enums lru_list and > node_stat_item is foggy, and I'm unsure whether this is the place to > make the transition it. Perhaps lru_list_name() should take an > `unsigned int' arg instead. All of these *_name() functions do seem to expect arguments in range of the corresponding enums, so perhaps keep those args typed as a form of self-documenting code, and do this instead? --- >From f8960df01b7f4fdc8d09a366886563385aed7f18 Mon Sep 17 00:00:00 2001 From: Ivan Shapovalov Date: Wed, 22 Jan 2025 04:10:59 +0300 Subject: [PATCH] mm: fix more clang compiler warnings In the similar vein as 30c2de0a267c ("mm/vmstat: fix a W=1 clang compiler warning"), fix several more sites that generate warnings with clang 19.1.7: ./include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 505 | item]; | ~~~~ ./include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 512 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ ./include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 525 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. Similarly for mm_inline.h: ./include/linux/mm_inline.h:47:41: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 47 | __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); | ~~~~~~~~~~~ ^ ~~~ ./include/linux/mm_inline.h:49:22: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 49 | NR_ZONE_LRU_BASE + lru, nr_pages); | ~~~~~~~~~~~~~~~~ ^ ~~~ 2 warnings generated. Additionally, change the lru_list_name() and mm_inline.h sites to use the same `(int)ENUMERATOR + ...` idiom to match the three first fixes above for consistency. Everywhere else is's semantically more correct thing to do because we are not really treating any of these enums as other enums but rather treating all of those as indices. Link: https://lore.kernel.org/all/20241212213126.1269116-1-bvanassche@acm.org/ Fixes: 9d7ea9a297e6 ("mm/vmstat: add helpers to get vmstat item names for each enum type") Fixes: 30c2de0a267c ("mm/vmstat: fix a W=1 clang compiler warning") Signed-off-by: Ivan Shapovalov --- include/linux/mm_inline.h | 4 ++-- include/linux/vmstat.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index 1b6a917fffa4..5a2328728b21 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -44,9 +44,9 @@ static __always_inline void __update_lru_size(struct lruvec *lruvec, lockdep_assert_held(&lruvec->lru_lock); WARN_ON_ONCE(nr_pages != (int)nr_pages); - __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); + __mod_lruvec_state(lruvec, (int)NR_LRU_BASE + lru, nr_pages); __mod_zone_page_state(&pgdat->node_zones[zid], - NR_ZONE_LRU_BASE + lru, nr_pages); + (int)NR_ZONE_LRU_BASE + lru, nr_pages); } static __always_inline void update_lru_size(struct lruvec *lruvec, diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 9f3a04345b86..545568a4ea16 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -501,27 +501,27 @@ static inline const char *zone_stat_name(enum zone_stat_item item) #ifdef CONFIG_NUMA static inline const char *numa_stat_name(enum numa_stat_item item) { - return vmstat_text[NR_VM_ZONE_STAT_ITEMS + + return vmstat_text[(int)NR_VM_ZONE_STAT_ITEMS + item]; } #endif /* CONFIG_NUMA */ static inline const char *node_stat_name(enum node_stat_item item) { - return vmstat_text[NR_VM_ZONE_STAT_ITEMS + + return vmstat_text[(int)NR_VM_ZONE_STAT_ITEMS + NR_VM_NUMA_EVENT_ITEMS + item]; } static inline const char *lru_list_name(enum lru_list lru) { - return node_stat_name(NR_LRU_BASE + (enum node_stat_item)lru) + 3; // skip "nr_" + return node_stat_name((int)NR_LRU_BASE + lru) + 3; // skip "nr_" } #if defined(CONFIG_VM_EVENT_COUNTERS) || defined(CONFIG_MEMCG) static inline const char *vm_event_name(enum vm_event_item item) { - return vmstat_text[NR_VM_ZONE_STAT_ITEMS + + return vmstat_text[(int)NR_VM_ZONE_STAT_ITEMS + NR_VM_NUMA_EVENT_ITEMS + NR_VM_NODE_STAT_ITEMS + NR_VM_STAT_ITEMS + -- 2.48.1.5.g9188e14f140