From nobody Thu Oct 30 22:56:30 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1756717042; cv=none; d=zohomail.com; s=zohoarc; b=JbedqSxGE7c8oOeNIxxbBF4vB4+99clLGawnVzxNvYXsgz5upGCHe8QqH6AhL9Qh3IDwkEHZ2irsdUc4m/ShP7G7tQnsTiIjjkgfYDZWlSuuCTCZNKitGh5FlkFgpYFBkWXGfD/EPViDjVgLvrI3NvkH8Lzk5oEC4HnbNczRWVo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756717042; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N9SDNFNNmkHRjQNNVUzXHvawpqEnyUdSDygomNw7bmY=; b=STK2udnDqqy+PBf0/ew9K80RTMkLjWMkac96yLfG5Z/gtp6mjHHHQKzpjBp+yHIhRDEYdvKdOjlxdp1psoGolLSyPe1wGK490fpFWRNSXth5EEUtUgtH1vkoa+gLOENeZhdFOfILwffbXA65Dx9lBlqyt2ig5XleOj/5fpWt7Uw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1756717042543661.2884296053122; Mon, 1 Sep 2025 01:57:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1104184.1455300 (Exim 4.92) (envelope-from ) id 1ut0LR-0001wi-Sz; Mon, 01 Sep 2025 08:56:57 +0000 Received: by outflank-mailman (output) from mailman id 1104184.1455300; Mon, 01 Sep 2025 08:56:57 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ut0LR-0001wb-PC; Mon, 01 Sep 2025 08:56:57 +0000 Received: by outflank-mailman (input) for mailman id 1104184; Mon, 01 Sep 2025 08:56:56 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ut0LQ-0001wV-AC for xen-devel@lists.xenproject.org; Mon, 01 Sep 2025 08:56:56 +0000 Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [2a00:1450:4864:20::62e]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 9b78469e-8711-11f0-8dd7-1b34d833f44b; Mon, 01 Sep 2025 10:56:54 +0200 (CEST) Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-b0411b83aafso210699166b.1 for ; Mon, 01 Sep 2025 01:56:54 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aff15fccad1sm627989566b.108.2025.09.01.01.56.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 01 Sep 2025 01:56:53 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 9b78469e-8711-11f0-8dd7-1b34d833f44b DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1756717014; x=1757321814; darn=lists.xenproject.org; h=content-transfer-encoding:autocrypt:content-language:cc:to:subject :from:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=N9SDNFNNmkHRjQNNVUzXHvawpqEnyUdSDygomNw7bmY=; b=P17YsNH7GpMASb/7eVWFtwFwPG68w9Lwgii9WbnISW48lftAK0r0o88w8IXSjhk/PJ gfBfU+a3FnuGGXPVqf4KZgQLlsZOvUlSeQ7IiWlRF+o+eATWTb3yAzFT9YU0ZyZmpBmL gNVJS8Gsp8IWEe3P4mKZG1Ya4qL9tCtGZoxSYW7CSouXHP5CSWisfP8HaSnF1ultP9N0 eYpVxh4mfKln8CNrAU2AHlLpDZ+58MCoKmMgyLfnciumNt0nbeP3APWHHY30HoLF0dR1 ZnPov1xz3nSqYU9m21HiwqA3ryEogdHmpaks0hR47gF+oiTk5tHByWqn8nm+kBeAoHAP bB2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756717014; x=1757321814; h=content-transfer-encoding:autocrypt:content-language:cc:to:subject :from:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=N9SDNFNNmkHRjQNNVUzXHvawpqEnyUdSDygomNw7bmY=; b=p7sYQQ+HCv0G/G+8Ls4jkGsV2yubWnwJgP6T0dn+jxqY5t4yx+NC94kUU/zXf1zSvQ 4jcd/tBgJlezCSycoOl6KhDyQUitNmE5hON4ME27pHKPK9ybC6WAb0sB5JSiG4mEn5lY 4XFZjKaLzbj3UZ4H4ydWo9epQWprkPckvbpFcgD00oA85X8d9YBw/liztOrTcM9yAyIr nrk75ktvYCAB4lAiprfCJc895aiXIZ/uBt6PWJv0CinB8RVuoocXLSGnU7L10HpS2Ske vXuEMbrL4z7CPlEVix+fC5zXnDhd8jXkIYZyrRmBsT/299fwQewd14dvseuzUV+Oqhkz RwYA== X-Gm-Message-State: AOJu0Yzn0CYHcy409rAuKF11K0dazAid8Xgi0GRVDX/WHXKWqS6XWAyE XlziuUkW1+Zb56R1fKvQN4xZFTKOZjg1fgsqsAT+FKSAKXq9eDMcpsc6X9bbcLlLtmQSQSms9Ev 7zqM= X-Gm-Gg: ASbGncvaUBlihGAkc9TzXxBas2Ah0rftG2Rb0Ydzr/tptwZoxF4Oy9DHZ4e1JgwUA71 RlD+ewgsQujMwfjVgP/UbKzJL1col6Fyl3oI++J4e92ppOukZPUVx+gshu8acUgCgI2/PXqvaRt qCWyRHsg0+d/hFMVIRAh1dnCTVUwHvOXo9y3G5EYPAP0r2N+2aJMVkURnsIKpzotvdMslNR/tzE KQ30+/IztMeXRAMz7VMem+rQ7e1sr8NW3mPN+B5KvuGCw37qCQ5m/PguqRHtozfwt8uvOBQgRyv yTAOsuyQ9oT1qUDgoCDhnMsh7Vg48/4ECcC8yYhcnVu+DUHuAldvbSV5NwaiqeCz6Ei22BgzocF z5XrNCmVE9p1v17fSgiPQaAPMnXuF5gw9YRl5yhj80syQygArustZwsfZHMY0QwGnjtfR0gsoE/ 0pYUC1x10= X-Google-Smtp-Source: AGHT+IHx+eZb5Ns66uHXiuh9bYCarqdoK0NWtQ7X43CRFoR3TLSpYHoaWMFt6J6DWm6fxy+6Ghu8mw== X-Received: by 2002:a17:907:720f:b0:afe:c1e4:5561 with SMTP id a640c23a62f3a-b01d8c802bcmr716634066b.25.1756717013650; Mon, 01 Sep 2025 01:56:53 -0700 (PDT) Message-ID: <41ba214a-6137-4d8f-9f4f-3a362940d8a8@suse.com> Date: Mon, 1 Sep 2025 10:56:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Jan Beulich Subject: [PATCH v2] x86/gen-cpuid: correct cycle detection To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1756717044596116600 Content-Type: text/plain; charset="utf-8" With the processing done linearly (rather than recursively), checking whether any of the features was previously seen is wrong: That would e.g. trigger for this simple set of dependencies X: [A, B] A: [C] B: [C] (observed in reality when making AMX-AVX512 dependent upon both AMX-TILE and AVX512F, causing XSAVE to see AMX-AVX512 twice in its list of dependents). But checking the whole accumulated set also isn't necessary - just checking the feature we're processing dependents of is sufficient. We may detect a cycle later that way, but we still will detect it. What we need to avoid is adding a feature again when we've already seen it. As a result, seeding "seen[]" with "feat" isn't necessary anymore. Fixes: fe4408d180f4 ("xen/x86: Generate deep dependencies of features") Signed-off-by: Jan Beulich Acked-by: Andrew Cooper , with one further --- Doing AMX-AVX512's dependencies like mentioned above still isn't quite right; we really need AVX512F || AVX10, which can't be expressed right now. I'm now handling this by some custom code in the AVX10 series. This contextually collides with patch 2 of "x86/cpu-policy: minor adjustments", posted almost 2 years ago and still pending (afair) any kind of feedback. --- v2: Adjust an error message. Reduce diff / indentation some. --- a/xen/tools/gen-cpuid.py +++ b/xen/tools/gen-cpuid.py @@ -366,7 +366,7 @@ def crunch_numbers(state): =20 for feat in deep_features: =20 - seen =3D [feat] + seen =3D [] to_process =3D list(deps[feat]) =20 while len(to_process): @@ -379,14 +379,17 @@ def crunch_numbers(state): =20 f =3D to_process.pop(0) =20 + if f =3D=3D feat: + raise Fail("ERROR: Cycle found when processing %s" % \ + (state.names[f], )) + if f in seen: - raise Fail("ERROR: Cycle found with %s when processing %s" - % (state.names[f], state.names[feat])) + continue =20 seen.append(f) to_process =3D list(set(to_process + deps.get(f, []))) =20 - state.deep_deps[feat] =3D seen[1:] + state.deep_deps[feat] =3D seen =20 state.deep_features =3D deps.keys() state.nr_deep_deps =3D len(state.deep_deps.keys())