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 CE8E9C02183 for ; Sun, 19 Jan 2025 09:09:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 998C26B0082; Sun, 19 Jan 2025 04:09:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 947076B0083; Sun, 19 Jan 2025 04:09:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7E75C6B0085; Sun, 19 Jan 2025 04:09:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 5C6536B0082 for ; Sun, 19 Jan 2025 04:09:41 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CEE601A2088 for ; Sun, 19 Jan 2025 09:09:40 +0000 (UTC) X-FDA: 83023628520.24.F8EDFA1 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by imf20.hostedemail.com (Postfix) with ESMTP id DE4DF1C0010 for ; Sun, 19 Jan 2025 09:09:38 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=m8fdkIp7; spf=pass (imf20.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.53 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737277779; 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=GpRQfPo+dIVvMcJc83bhcvAD0N42aVYCbsSTsOGPCsU=; b=hHSvhRGAylhIoWGa8h6Vv2RwAopR/L163yVt+UnE1dOnGPoTREu91l3GbjQxP53qyk7zC8 t5ivxkpkH2l3u1pIYDuxqWd/JuNQax6Vp5pntWuE/AkWW+M5+85+PrBwcdxJjFPTvC+Lvc DtKzN6hAWbxRj9ySblsHha/KmTis+Xg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737277779; a=rsa-sha256; cv=none; b=CaAhdkLFk2oiuTzU0I1URKSyXun2tF8CBrfMgragBYQ4+VEJvyR4ImloZqInJLwqY/4/Cj Agcf3I5qmci6K8vqRge8WGARHSiMHPA8naBzAZ+AZi4F3JDQXejR0H7o0oU2jszwv8lxo8 JlweocmQwGNcqN6yZtM9SLx+eONCc9Y= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=m8fdkIp7; spf=pass (imf20.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.53 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4361f664af5so39400625e9.1 for ; Sun, 19 Jan 2025 01:09:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737277777; x=1737882577; 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=GpRQfPo+dIVvMcJc83bhcvAD0N42aVYCbsSTsOGPCsU=; b=m8fdkIp77+ayP/w3Ct/yKQtYZ7koh3JSma8mcP3lL3WSwvged2VtThgntAQDMd7F9T HbCd4yhzIIu5JeSNwdfs9jj5k+PQCcLApnb2ohp8e7GJU06GQcvO++9yKhCQ3yDh1HYY XW/eGQ07e+XdYDrB2D1zoW1TghFUX53WeGTgQJIn9+kSDcBE3pvHEfQLbd99z4eLcuzm P6xpfqJrIXUuJJubY1Fard63n2e/TKbNcAHXy78PWeeypUtFr87YSmII/36qCgi4a9Qn 8hCCGi4KRd0KQgO/4Wc0tckg+dzitj1AG8678mMRVRT/XSJdnshKdFNPP1jJfpCRWie+ 7dsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737277777; x=1737882577; 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=GpRQfPo+dIVvMcJc83bhcvAD0N42aVYCbsSTsOGPCsU=; b=NqlJFnENSTnAq+j9X+x1iNIaDN6jU8VmUZczt0W0gs/icmtaxOqHqBJwrxvFlG6Y3x nYOQhIa/gZrmIfAIKhO2Bvg/VnrCBXS3AusuODgzn1r6ceE5v+Ggx/OpJgbpyKiyQ+l/ Prj+Uq0EYvuVB7716KDOu1gRe/ibWNSAwQ7pl31pwEr8/YkUTpLUE1ObrwcVDidQpzhe 70m+s2GRamW5avzmREXZIrcDC8C5PCtZrT1RmxPZFuhdNktqO/vS/WJ2XhqA2FogdjOE N4+HPMo2t58sgdQs2ZZT5+yeS7CSljtnzbSdC2gU4Y8d3mHY+ZTO5mAljzpSs0O13ZS8 i5CA== X-Forwarded-Encrypted: i=1; AJvYcCUdM3DY/KzKRZu6KAq8M6JOD/MDPdaMTGpZKGqY5YrP3h8Qat5Oh43WF9iE+flZnJZKRRZgLsSJ9w==@kvack.org X-Gm-Message-State: AOJu0YyUmSJ5FcRJhbj97OEo5Rgwa1zTd83BvUdV6dtTlKBcUxRGrgK9 n6W57nFlpgXga3LCjNNu797jy/2x+I3O4PLwzg5+loeO5T8u6O91 X-Gm-Gg: ASbGncsX4RwuwY3hn1EjTsWL49u2tWs9btTMSL++JnsB/c+ZGhTACybSvJD6X9LPmJX YdN3lKvC3ro7plAgO0ZzxlxtI3mvgb5Yq2Krg210onxi+cNM7Ah+3DtQhuRPdWZWimAiqYM2U0b hSPSnI4oZVqKoYUONravzr0omyoQrJq4gxJr25IoP9MvsbT/VONaQARf137upnGH12bZkwnU8Mh CEENZFji/KzOj1SZaUScuftWzkgZkQy2oS9/dQUu0rCTZ3lLQahUtaTW1p0+VPZLfJwXgwJL5n7 vX3A6wH/S0fG7FiuIq+66WeJhdTyox1r X-Google-Smtp-Source: AGHT+IEuKIzgPC9hm5HdrQMLOvk5XY5pw6JdVTD0sbRLPHCvA9Cnqc+BT5boheqzFsu1pqtmM2wImg== X-Received: by 2002:a05:600c:3b02:b0:434:a781:f5d5 with SMTP id 5b1f17b1804b1-4389143ba53mr84319045e9.30.1737277777068; Sun, 19 Jan 2025 01:09:37 -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-437c75298adsm156216465e9.30.2025.01.19.01.09.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jan 2025 01:09:36 -0800 (PST) Date: Sun, 19 Jan 2025 09:09:35 +0000 From: David Laight To: Guenter Roeck Cc: 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 , Jani Nikula , Rodrigo Vivi Subject: Re: Buiild error in i915/xe Message-ID: <20250119090935.7c690f85@pumpkin> In-Reply-To: References: <34d53778977747f19cce2abb287bb3e6@AcuMS.aculab.com> <20250118170959.3aa56f4d@pumpkin> <29ef57a1-e4dd-4d5d-8726-f1f79c698b66@roeck-us.net> <20250118221123.5bb65e64@pumpkin> 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-Stat-Signature: c37trawj7af3gzo76j1tu9x6k4bxsck1 X-Rspam-User: X-Rspamd-Queue-Id: DE4DF1C0010 X-Rspamd-Server: rspam03 X-HE-Tag: 1737277778-49172 X-HE-Meta: U2FsdGVkX1/dt3gdYeEPALJUr5qvy1W9EcZHNcdQWdjx9yvcDNvjWHO3nsXmVXJaI+dTYQLkHadzEnWXkhKv8DcRiUqD1WgAIKyHL2laUeRYEyIQKC27+SsfcStfEuMhUPlWB9gguQOboUczHrzSZ+/Ce6WhXrmTLV41mNIq/fNwgMeAlRCDg8VPiXAe/DJw9yJJQJh0mHn9Mu1nlL0/gbQEkU1t5xpgyUIymZB3yI0BtW6acdxxelI9DFumSO50fRroXG0WNI1lgLMczy44+wD3+0aWHMSkDGqoYQ/BU2ynzOnmYvJwLSb6H5LUO6c6GETnAH89mhJljlHxWI9ctCTz0CecXIQG1XsuYVd0LFhE+jAtjcIXQOxRbw8K93oO2T9TJPUPhgxar57z23cvjDPdMKBRBkLNvRw0J+KJVhWEF3gcWqkEogvA6zg0W91TJjTqK77JhzZymp62uycOJypbAJ9I77TD1UkWD3RmfwXebNOJZTlaAJ7WuWzsUBDaWQWkKfO/FVT+9O4LYadAlv8nIo25hj76cistWfgC+RaD9n4MTx8dZAGUaa4wwBvFCg9xtxlFkD55dbWlUkfCUN9DylkTg6he+P7KNXrVH6LoL9wiI9cS1NAebWKFZJ1TzIKCek2G9C2t04Mhx+IRDKKlTiSjYdA2/0GGW1jmffNfkFBL9+sXY0naRL2771YBpDndm8V4fP2RRJP52KEUGLNTmW5Dj8OD7WUZkIHIfHyllxkueRHkkp+/TXbCAT9TjEiX25j/1bQrUAR454nNRqHJ1vjBOWmfAhcx2YVcOsJoZcfwZYgXe37avPnQDmJH9gEFMxdgXr0M/hc+ZRPSnviiYPAWt2ApBItoKVz5I6UjeREk3VpnesX17M01d2tmwRj5mfJvUdfv1ubabCFXyky247usCRGTq6/ShQOfByjjcHHPROp7k1pyTGwQKT4lCHvD9ObUimvGzR9Em5S Mv18lil5 dTbLrzKXpTfCGYeCq+gt0QUGZiXY5nzQe8/ecKlc+NIB6wuX3VkIrnDwtIyOA1/rkx2J8z2wk3eZnVxswbQ65R1204pS4O8l13T6BzwDCYwuzxrJm5icrK7EdYbSyNN2bRJu3fjdNV1pUyq+pZhhTJ0xpJY0zu84l2OvPxl8Du8i/njTmKzUE5pFVhe5eyVw4zlfQ3syego+5DPWErd3fSry5l15AE+hzouUPN4XpTv/vZlqlvK92MRPyDIvd5RqGexgQJQibdxb7tVei/HIsRPy3w2XI/r40IQNF8MAPMaxJ8NBWAd6zh52Jvlp4HF6Jd0Amxb6HGG1Jvi+Izkga2zkyDGzT7LFSw8kfhvl2f3B3cLkKL40/jSH5wHpbGrOmXHBbvFOdp0LzF6QIoxpZ5aSQHx9JUKdYRY3ubMdDvjEmSLj7gML0Arfcjh7Vc45ZKPX0Z5dJ5VBy04wylcTN/d/QQ5RHa2lDaPCvBS2qqyyLaTZCSkxVPz1e7fkpGYU69JVfbUVm39gnzzXzyNsX1B9EipIEBTMW3GkUbambjASrv0QmJ6uCjt+RMpd7ZTZM4WC8LZskovh84P30PyV50fkGnLJJmVG+AuG7CcAPgdQWuv5CjNKAIn0bsQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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 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. David > > Guenter >