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 16F33E7717F for ; Fri, 13 Dec 2024 22:01:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C42C6B00A1; Fri, 13 Dec 2024 17:01:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 774016B00A2; Fri, 13 Dec 2024 17:01:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63BD16B00A3; Fri, 13 Dec 2024 17:01:22 -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 462086B00A1 for ; Fri, 13 Dec 2024 17:01:22 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id BF34F161171 for ; Fri, 13 Dec 2024 22:01:21 +0000 (UTC) X-FDA: 82891305714.17.B7E8943 Received: from 009.lax.mailroute.net (009.lax.mailroute.net [199.89.1.12]) by imf21.hostedemail.com (Postfix) with ESMTP id 0698A1C0011 for ; Fri, 13 Dec 2024 22:00:29 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=acm.org header.s=mr01 header.b=gVykc88t; spf=pass (imf21.hostedemail.com: domain of bvanassche@acm.org designates 199.89.1.12 as permitted sender) smtp.mailfrom=bvanassche@acm.org; dmarc=pass (policy=reject) header.from=acm.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734127268; 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=33Hhf2nff8DxbFrPEbMW+PJ23B9Qg3lcSNj14g0EmxM=; b=BHtj+fukegQaZ/hgk8z9bTAkPpucD4wsWpihBTodg/p2e6n2C3WCumWnq0bpO+UeansBjA ScYyzaKsw/2IdRYSewufb+JOrlVkuVVBG2SujJyiUUqigz0d3HbIczrY/ODLFMbgMDU671 knnq1SeYjxz0kUbqsUcC0hF2ofc7HaQ= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=acm.org header.s=mr01 header.b=gVykc88t; spf=pass (imf21.hostedemail.com: domain of bvanassche@acm.org designates 199.89.1.12 as permitted sender) smtp.mailfrom=bvanassche@acm.org; dmarc=pass (policy=reject) header.from=acm.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734127268; a=rsa-sha256; cv=none; b=cxrcSqHMZrBGDK2oesvLqjrjEWFuufmItdFpzcpo2iFFzT/qw5xTW7hEiLdI1ASAAkLSlI Ia9FwXtJm1xrJKm13j7o60tzmq/yMtw3GM10VJDmRXGWPwIvyQ3dCrmKqcuPielHNhEaIl 47HbkAyizs4ZqTYkH+Ne0FlnnCpbMg8= Received: from localhost (localhost [127.0.0.1]) by 009.lax.mailroute.net (Postfix) with ESMTP id 4Y93FV4T3Kzlff0l; Fri, 13 Dec 2024 22:01:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=acm.org; h= content-transfer-encoding:content-type:content-type:in-reply-to :from:from:content-language:references:subject:subject :user-agent:mime-version:date:date:message-id:received:received; s=mr01; t=1734127275; x=1736719276; bh=33Hhf2nff8DxbFrPEbMW+PJ2 3B9Qg3lcSNj14g0EmxM=; b=gVykc88tScoFS2TMjD4HTzlM1v7mUBqKtJBaoq1Z J1Ghv/APKphHW9XSKCyMFGeRVbMU1QP/cSjD8ExD124almVxa9jhDAqFsoCFJm1/ O+tcIF0SxjnjWd71aoDyNIMfADn3QFsCOx/n9O167cEICyatMIaRQVMzSxSHd74e dcMSrygDvo1x+3Vd06nVAMoHmGiJtmSPXgvAjB/7uMqYa7zCMcHWQ7bCIrByqdGZ BGWj9KOdhih4Pm8gjylpw+6X/yHyj9jJPII+Xu4bAQUrOgaVDE0CPGSi5SJ2s4Dm U+C53GwObc9EFxGkXeC9r5+7HpE5g8YXJfrLRSokgqcS/A== X-Virus-Scanned: by MailRoute Received: from 009.lax.mailroute.net ([127.0.0.1]) by localhost (009.lax [127.0.0.1]) (mroute_mailscanner, port 10029) with LMTP id kl0qcsPltdcM; Fri, 13 Dec 2024 22:01:15 +0000 (UTC) Received: from [192.168.3.219] (c-73-231-117-72.hsd1.ca.comcast.net [73.231.117.72]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: bvanassche@acm.org) by 009.lax.mailroute.net (Postfix) with ESMTPSA id 4Y93FR0bySzlffl3; Fri, 13 Dec 2024 22:01:14 +0000 (UTC) Message-ID: <8640d744-d182-474b-9059-204bcea47d1a@acm.org> Date: Fri, 13 Dec 2024 14:01:13 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/vmstat: Fix a W=1 clang compiler warning To: Andrew Morton Cc: linux-mm@kvack.org, Konstantin Khlebnikov , Nathan Chancellor References: <20241212213126.1269116-1-bvanassche@acm.org> <20241212182425.ad1f7894cd0f00b2e34bbaed@linux-foundation.org> Content-Language: en-US From: Bart Van Assche In-Reply-To: <20241212182425.ad1f7894cd0f00b2e34bbaed@linux-foundation.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 0698A1C0011 X-Stat-Signature: xewsy6xbr8pc1mbj3fsjngapxwunpjir X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1734127229-607832 X-HE-Meta: U2FsdGVkX18oTtl3Jo2bDpgElVcakC21ees5atnddLVms1oUzzThzRQAmNDzTT8xgX+AhS4NGVvDPW6X5qfLh233VaJta7o/el7WUjFdqYsSSLaKa022F3pKDFVko73uYdVqWGwyGACeTb8dspMwK2OmMY7NQdHpJPKIlqkw5e1z4lbEboqTqZl5APtj85sr0D9vi9EHWVNYutVgItfI/aF5aGcA033SeBXaAeXSE90xLEfaoaeIYRD9tOvlD5dH5FQ0vKIS2ZTq6+CbpGWVKMvgI0s5h3K/H+8Xh0IwQSks57Xfqse2wQX3lZrrKCFybFKCfB6bqhPencLkOPDI7g1rTUzq6LJcFhJue5ujosPQxjiTRveXI1qSTo+m+azVWw0sfZUPeqI43xTHUdyZtl/eQsbAF2W5cpHVIrsaEzhbn8U+LiZHOgjFfqe3ueo0AqxIFZRvMJ9cMSv20/4CDpTrl+cLn+6v4iexy2ePBIP0Z7CPz+Z7npVmhqZlLgrBJifdo1r0jmRewTMasSrKZ0Rqfu0yqWHB1abAy3FLg1JR0ufuHAS3F6Rv6yKhIT3floS989Luv/6lNyhz2Qx9LHSILZQBTLMlopYJLSDGOwiNnjakiPxCGI+cEBClUgDCkoXUHLrq0dEf471mAkMjqSpBsJC1ojA/fIC1E7yTxPcMb0hGiEP8nl0IBoyIS7mGBuZwyIz+2Wiv9fjj55Y9Ifw7SQeJO1Du41X5/+lCL+KK9j1/NG8CuDqjJbFTNVTgR4LkLRbG0rTCAPyYkL1W8iLaxeQ2TBgUEZDq5S8PAlcSj3p8eDWxkyfK8kEoNSRIcr3ORi/ujYRwWY29Cwz188lGOh+NDliBVbqKw5Tf9EzSz0GNQhYGpm1V3Sp1D/HKKkrUTeG4xqfvmqp0J5B8ehtktUxKs+8XqkzUJOsU5EkFwjkoHsPFn/E6SxXJzDkDDO6ANsY34ST+TGqLiqb 8vjg75KL CsSW5G2m38d0eod6/CuTXAuueEUW4gN51mRapvYQHkK1bA8IBVRiXGNu/oOjI2B+pIeuGhMIeAgk0gZze4P11OZdXJJ38Zou7+60CCSCrQlwtHxQwH8mZJwwwl40yvihnGwO6+ClJTHhDDtuToweMDbpM9T9XciWjV1JqCyX+Abhq5O5AS2hRtbqoUWTlXjGm9A2rZqbg5Fgb6zjD0ODuMeSKONVHo5K5cq3wy0uYXQFzigOfZkvp33CK40Nmx+YfCtRm 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 12/12/24 6:24 PM, Andrew Morton wrote: > On Thu, 12 Dec 2024 13:31:26 -0800 Bart Van Assche wrote: > >> Fix the following clang compiler warning that is reported if the kernel is >> built with W=1: >> >> ./include/linux/vmstat.h:518:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion] >> 518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" >> | ~~~~~~~~~~~ ^ ~~~ >> >> ... >> >> --- a/include/linux/vmstat.h >> +++ b/include/linux/vmstat.h >> @@ -515,7 +515,7 @@ static inline const char *node_stat_name(enum node_stat_item item) >> >> static inline const char *lru_list_name(enum lru_list lru) >> { >> - return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" >> + return node_stat_name(NR_LRU_BASE + (enum node_stat_item)lru) + 3; // skip "nr_" >> } >> > > 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. Could the (untested) patch below be a better approach? Thanks, Bart. diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index b36124145a16..a361cac06a85 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -135,10 +135,16 @@ enum numa_stat_item { #define NR_VM_NUMA_EVENT_ITEMS 0 #endif +/* + * enum lru_list constants are often added to NR_ZONE_LRU_BASE. Define + * NR_ZONE_LRU_BASE as an integer instead of enum node_stat_item to prevent + * that the compiler warns about enumeration type mismatches. + */ +#define NR_ZONE_LRU_BASE 1 /* Used only for compaction and reclaim retry */ + enum zone_stat_item { /* First 128 byte cacheline (assuming 64 bit words) */ NR_FREE_PAGES, - NR_ZONE_LRU_BASE, /* Used only for compaction and reclaim retry */ NR_ZONE_INACTIVE_ANON = NR_ZONE_LRU_BASE, NR_ZONE_ACTIVE_ANON, NR_ZONE_INACTIVE_FILE, @@ -157,8 +163,14 @@ enum zone_stat_item { #endif NR_VM_ZONE_STAT_ITEMS }; +/* + * enum lru_list constants are often added to NR_LRU_BASE. Define NR_LRU_BASE + * as an integer instead of enum node_stat_item to prevent that the compiler + * warns about enumeration type mismatches. + */ +#define NR_LRU_BASE 0 + enum node_stat_item { - NR_LRU_BASE, NR_INACTIVE_ANON = NR_LRU_BASE, /* must match order of LRU_[IN]ACTIVE */ NR_ACTIVE_ANON, /* " " " " " */ NR_INACTIVE_FILE, /* " " " " " */