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 23103C02182 for ; Mon, 20 Jan 2025 11:15:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8ACE06B0082; Mon, 20 Jan 2025 06:15:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 836266B0089; Mon, 20 Jan 2025 06:15:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6D7536B008A; Mon, 20 Jan 2025 06:15:58 -0500 (EST) 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 45D006B0082 for ; Mon, 20 Jan 2025 06:15:58 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 06722AD9C5 for ; Mon, 20 Jan 2025 11:15:58 +0000 (UTC) X-FDA: 83027575596.29.D5BC955 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by imf05.hostedemail.com (Postfix) with ESMTP id 02667100017 for ; Mon, 20 Jan 2025 11:15:55 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IoJV7FH5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737371756; a=rsa-sha256; cv=none; b=Yz++A1KbhjmpgER0XlNkc2iw/P/wZTWeYVNDxuK5YW6ZhMORgc42hM/tTD5PCv9xvj7V/k ShCoGdot8nKRFuY5ojwoLzepjtf3LiWi+cKX7vYejt8kF9Cr4D0JOji//NIpGuR9dDBMYi CJZ5zlPIjCFNMMzh6Ts3qEp0OgcHBrk= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IoJV7FH5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.44 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=1737371756; 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=Grk9J6/b9VBuQn2GFV1dMGR5fuj1yzKJkHNAQSI0qz8=; b=3e/m+L1/oglf9I3v8hGvA0ih++MVP7jKIj2KOlY0NR7mF2U61svIMMEfA9CyzB9BXKybTu YON0Bd76bVghspoB0YYgWKi4TUH8Z/BP/rI5svPqqbE7mbPflBnox8lL3NI9FJR/8yd3TB 4HgQ3t9dn0AB/fLkbTl4yAIe2nuMIlk= Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-438a3216fc2so15978765e9.1 for ; Mon, 20 Jan 2025 03:15:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737371754; x=1737976554; 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=Grk9J6/b9VBuQn2GFV1dMGR5fuj1yzKJkHNAQSI0qz8=; b=IoJV7FH52jE86wcV9/TMePuURvEOyluj39k2QJLJwCeorTqDDJ8mCsXkFhjFy4PaOA yTIqnCY7K29lubyvKudNDSB6d/bZ4wPw8Ju9kFREXoTd0uGM5lLIqr9SMMIZnjyBg5hs 45FsNvd+Owg+chXXs7PhvQmIZvpLuKt09hk3Pbd7/p2hqWG0BL9uEsPGOt59iG66/plL sfvjeeMw2LF5yXXclOUlItxYml3PFONSBj6LT84/TyRphLxzWs7X33UO0KVg3CjH5DLq mgu6pNifj7lNWNXX1F+0he4CSKOzlna8jbURAf2PudtxhpRvuzQea+mzFDHT+sP+gLqB 2FxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737371754; x=1737976554; 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=Grk9J6/b9VBuQn2GFV1dMGR5fuj1yzKJkHNAQSI0qz8=; b=Wyw0zuIyvhXfK8MMLyxQNsDN0fSgVI3AOPoVb72Iokfk4SHsFVSXNCOe3g/qzLMjYX 82Nx+EN+hFyTde1QzcdN/DMNRi4QjGwK0MrTnmH4npvkANeMB10K6h84S6OhP8Zr0PL3 EAYuoQIIdLFTzXCG3Rh2AxXvLSEbZmIvNbUAsiu3stbkxFmZ5ogB22obco20fO0KJ2jM dwQIfJ2s2wVafi2zbS1l7fHeqk74ZcWc4fDn+SPeK9QqLFRTdHcipnrJSWaQBmclXD/7 wZeD+tcyQ9M65ilpBtVeS6p7ONrymb/N66HQ4dC7VdHRj6MCzOnuOudHVJ/MgdZy5H3V IBHQ== X-Forwarded-Encrypted: i=1; AJvYcCWKMI5fxLzxy/aaeuf4KZ1y1JucL+dkNvT6Lho/b+HVIHSg31VwZjdisIXXybn1zVeZUwnU3SD5pg==@kvack.org X-Gm-Message-State: AOJu0YyGIvQBT8iwN2T+8hLViYCG4UejnmL9hdUB1bYFODQz/TsjtjV6 t4hg7wOjP4vYotNSo8Qejew6oYAczLTEFLDD5OqHUogjR0kgy3ws X-Gm-Gg: ASbGncvJhRVsUnTcm0vwfurIi1GajE6X+fj7QljsawwMD/OdSNLFl1oWweVx7h6fzP3 fcGMxmnAFyuI1Hf27F6FiFlcR+5Iy8zJUXVbwq+pKtW1Y6WQ8vywN18RwFTqhMJSY8oQaSCApx2 P4P0Dj7K0AszD10hNcfILJET1JEXyDM20WlUpTH5IEz7jvFIZ7I85qzO4F6qq6rQkHy0Cd4VGEY mMH00OK3wQ+bd4gmB13mmA7RuSzcYoWNqvzLt3g2zX+hntG0viLWc2WhmGIRxdYqAwZJVnIBpes WKTzHJwKVCIuxPCR7Ofecj/uUeomODVG X-Google-Smtp-Source: AGHT+IFbr5mR//NKB/G8R+Pcmr8O/z0UAE/kTlXY81rkDpzp5l4T8SB64QRh8jdEVqTvLMPJctdhdw== X-Received: by 2002:a05:600c:a45:b0:436:faeb:2a0b with SMTP id 5b1f17b1804b1-438913e32bemr123863535e9.15.1737371752518; Mon, 20 Jan 2025 03:15:52 -0800 (PST) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43890413053sm136694905e9.10.2025.01.20.03.15.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jan 2025 03:15:52 -0800 (PST) Date: Mon, 20 Jan 2025 11:15:51 +0000 From: David Laight To: Jani Nikula Cc: Guenter Roeck , Linus Torvalds , David Laight , Arnd Bergmann , "linux-kernel@vger.kernel.org" , Jens Axboe , Matthew Wilcox , Christoph Hellwig , Andrew Morton , Andy Shevchenko , Dan Carpenter , "Jason A . Donenfeld" , "pedro.falcato@gmail.com" , Mateusz Guzik , "linux-mm@kvack.org" , Lorenzo Stoakes , intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, David Airlie , Simona Vetter , Rodrigo Vivi Subject: Re: Buiild error in i915/xe Message-ID: <20250120111551.435176c4@pumpkin> In-Reply-To: <87ed0xrcb8.fsf@intel.com> References: <34d53778977747f19cce2abb287bb3e6@AcuMS.aculab.com> <20250118170959.3aa56f4d@pumpkin> <29ef57a1-e4dd-4d5d-8726-f1f79c698b66@roeck-us.net> <20250118221123.5bb65e64@pumpkin> <20250119090935.7c690f85@pumpkin> <87ed0xrcb8.fsf@intel.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=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 02667100017 X-Stat-Signature: pxdwqniseqcpowtueh743orf4qto4w1s X-HE-Tag: 1737371755-910406 X-HE-Meta: U2FsdGVkX1+2I7o7xuvkblk4azUNpnfYDDrgLT1pG43su9J3RmA91ev0jiord+Dz4j2J5C+6jfXVb3Fb9PqPVmUTZf63JmtBxuc3z/iNMahiG8O534TXeBiHYB2YHJwo6o/E6sD0gg1wx9JkycJrSYoVHUsRVNpwsAN5qXZQsDcbEXpJDon9jsR3eT9N/ESW8rh9+HWaqkaPCE/j9/GALUJi20Ra90JkIqzOK1DwVIFcLoUqtpz2pTzsHNfwvLR08G9YxCPs8A4tuSV92+ksuirVjliSGSTInw5ubcVjUaC4I75vOmjN9W7FxHL1QN0p29hT3Y35G0Vd/oFX7ydr2NURJ+adtv7b4uREiJdNe7LNyKD5GANiKD0eHAyuDvvqMGwSWPKIhfFIHtfwG27Nke1mcbIEFuaVez0ifN6hsMmoJRhJg9lH4HQAlLOhYSsAuLR6HZsuzIU/Ss45I8l46QftIulw2a3MTgl9qMYuGVyT1/4xIDid30tp0uVKDbnwJZKJeL/vLjQcOJGgGP7DTpZqMH+Hf6pu5zMbEXKpbvoyOGCsAm6K7sH0WJFTi3jgLDDFOvAI+KHik9x/PE9mQcHRr5vlKCAFKiOAR5j2015OZ0jok4OUHTUD0k+dLNNkv8fjWwIaK7erpxb4ubvcIEpKUlvAPqyU2gN5gfj7GG4+TPl0IseEdHBu5ecdX3dZpMGkIsyzEEJF9oI+Wh5la/fZaCB7zB1VatH4gFZ7Dg6RoTx8Nb86B7WJxKdDDLPWW24iLYxtg7fY0WFzwgchqtk/X2PqUqWtHZ3E6pUJ+KrZZvicxcPVX/xKbuWkTvrhFLYmGDrZHIRFfQfz+A9lFZqkTMzO9KMEprFDi328ibjSfx6U14ZL/GmiFbdBuRnse4YZrtvDhY1rKdlr5RoxkO9uEr2bF5CPGN/Xxio9x8iUtTZ1cssbasTYYbQx3ZRAdHfn6TUXvT245DKVxPB +y8SptP2 ElM182lOpIoUjclsXQgZjsW+KKoYyqSvHvWunRcPA9qGT+f4z+0BlBYbExMXKez/sSIZ9bNfmhMaCjmUjSKzAwn8vT3DYCzjK3kVvzHDPHDkiptThoAXbNCJrj56LoDDDYLcxFDZxQjejRZXq1C4/KAKMo0KZOW1WHtobENHRTqQJl+Lz/8WavvePiCCNlSo1G9HgBBllSdkhsuFM1aXjsvLHc0m8WotpD7tsNzTN4WP4ko/smrSrQJFOD3I7vVihcD+HK4os7lsy//BNRaDuBFUcAYrFb190oOGTkelQi3VP9Lm866IpZKRPtGTwBmYTIQ32fmh/AxfNMykYr4aRfNiIfxi83Q6dZjuztX1LShvySjAs3wegu8Tp6V9k4LivY11oWY/hOifbXS1wFDe94ZzAYhjEylBSfSM94JFVFHO/Yz6J9HHdpvFn2VTXNwxDF7nZmxJ6Kcr27Pp7jrXDVo/sC887cNg9rsnjufM3JxqmLJtyEx8nom+DFkBpBEaAekhuaYLEfUjkyj+c77xKVV9+ekM8sRbIZrFKWi4HoS649QDUYIEzgx297g78jTR8OF4HHzNo9/ijWHoVrjGxOknptYZeiNvWtwZV2O4qFno1RnF+fZ/KBFajAQ3VZVwqSae3pVCpIVgUelyQDqm5IfXvS5nkIoc/BDmW 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 Mon, 20 Jan 2025 12:48:11 +0200 Jani Nikula wrote: > On Sun, 19 Jan 2025, David Laight wrote: > > On Sat, 18 Jan 2025 14:58:48 -0800 > > Guenter Roeck wrote: > > > >> On 1/18/25 14:11, David Laight wrote: > >> > On Sat, 18 Jan 2025 13:21:39 -0800 > >> > Linus Torvalds wrote: > >> > > >> >> On Sat, 18 Jan 2025 at 09:49, Guenter Roeck wrote: > >> >>> > >> >>> No idea why the compiler would know that the values are invalid. > >> >> > >> >> It's not that the compiler knows tat they are invalid, but I bet what > >> >> happens is in scale() (and possibly other places that do similar > >> >> checks), which does this: > >> >> > >> >> WARN_ON(source_min > source_max); > >> >> ... > >> >> source_val = clamp(source_val, source_min, source_max); > >> >> > >> >> and the compiler notices that the ordering comparison in the first > >> >> WARN_ON() is the same as the one in clamp(), so it basically converts > >> >> the logic to > >> >> > >> >> if (source_min > source_max) { > >> >> WARN(..); > >> >> /* Do the clamp() knowing that source_min > source_max */ > >> >> source_val = clamp(source_val, source_min, source_max); > >> >> } else { > >> >> /* Do the clamp knowing that source_min <= source_max */ > >> >> source_val = clamp(source_val, source_min, source_max); > >> >> } > >> >> > >> >> (obviously I dropped the other WARN_ON in the conversion, it wasn't > >> >> relevant for this case). > >> >> > >> >> And now that first clamp() case is done with source_min > source_max, > >> >> and it triggers that build error because that's invalid. > >> >> > >> >> So the condition is not statically true in the *source* code, but in > >> >> the "I have moved code around to combine tests" case it now *is* > >> >> statically true as far as the compiler is concerned. > >> > > >> > Well spotted :-) > >> > > >> > One option would be to move the WARN_ON() below the clamp() and > >> > add an OPTIMISER_HIDE_VAR(source_max) between them. > >> > > >> > Or do something more sensible than the WARN(). > >> > Perhaps return target_min on any such errors? > >> > > >> > >> This helps: > >> > >> - WARN_ON(source_min > source_max); > >> - WARN_ON(target_min > target_max); > >> - > >> /* defensive */ > >> source_val = clamp(source_val, source_min, source_max); > >> > >> + WARN_ON(source_min > source_max); > >> + WARN_ON(target_min > target_max); > > > > That is a 'quick fix' ... > > > > Much better would be to replace the WARN() with (say): > > if (target_min >= target_max) > > return target_min; > > if (source_min >= source_max) > > return target_min + (target_max - target_min)/2; > > So that the return values are actually in range (in as much as one is defined). > > Note that the >= cpmparisons also remove a divide by zero. > > I want the loud and early warnings for clear bugs instead of > "gracefully" silencing the errors only to be found through debugging > user reports. A user isn't going to notice a WARN() - not until you tell them to look for it. In any case even if you output a message you really want to return a 'sane' value, who knows what effect a very out of range value is going to have. David