From patchwork Thu Mar 13 13:52:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 14015082 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F2E38C282EC for ; Thu, 13 Mar 2025 13:52:33 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.912225.1318533 (Exim 4.92) (envelope-from ) id 1tsiz3-0004gh-Hg; Thu, 13 Mar 2025 13:52:25 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 912225.1318533; Thu, 13 Mar 2025 13:52:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsiz3-0004ga-F2; Thu, 13 Mar 2025 13:52:25 +0000 Received: by outflank-mailman (input) for mailman id 912225; Thu, 13 Mar 2025 13:52:24 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsiz2-0004gU-Ax for xen-devel@lists.xenproject.org; Thu, 13 Mar 2025 13:52:24 +0000 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [2a00:1450:4864:20::32d]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 63c459df-0012-11f0-9ab9-95dc52dad729; Thu, 13 Mar 2025 14:52:23 +0100 (CET) Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43cfb6e9031so9262215e9.0 for ; Thu, 13 Mar 2025 06:52:23 -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 5b1f17b1804b1-43d0a74cf8bsm55030405e9.12.2025.03.13.06.52.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Mar 2025 06:52:22 -0700 (PDT) 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: 63c459df-0012-11f0-9ab9-95dc52dad729 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1741873943; x=1742478743; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=fO6uuX/NNeoYzMSs64Qkp5bjEbxgGLcuU9dVefmd5QY=; b=QdQoJw2ZH7ek3dGMXaDo5dN73myQKoAWKiVaVTFeLLFzQ6WIn96RGgx66rVgilYXV+ k2SXGc1rPBrzNCeHCqWK8M69uUfPxjk4ax3PRskemdcWZmZJ1l6BS0alaCw2HuAMCPSw ytaIUIzEJ/M1GuZ89fZNd6Q1gGUYiLkhG4kDv0VM9FpyUhYUbZb4MF2NixVZo6xNOWZl 2sOvburOalkqC5VwV7uvj9ygdiei9hD1Qi3rQKqorkJyo+fbjxSCYKoqiG3R+/kgrc21 JhWEoDvNRHcxzW17D58YItEP0Z1sAqCNoaajrEmGUNCLGFrdALGeDwFy4RWIdQoRlwC/ aIiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741873943; x=1742478743; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fO6uuX/NNeoYzMSs64Qkp5bjEbxgGLcuU9dVefmd5QY=; b=cmCR36YkWXcLwH9VEpsTzBdt+nxsgD3UWnw1dzw3UOAaIB3sQUKsQHtz8VvwDG92d4 zz2piYUtczTqNKJ+EPr65MgZePf7g6vuG32aV65PAStRHx31qB+3iRLtrMfVFPdp0I2X Akkmt0ol5DEYXXOfLMGBX6lCnP+3VrlGBxDtYDt/gFUW8KN1FXUt5yixSs2reOMy8uV5 qIBDhxVvFxL1+1yOHUR3zN+oP9/hAfFnMFmFHGgp/OjgY4VHrEqjYWkRkDGE069sRt27 l2d0IDovmlVDyNc0Jb+LLgz7H97XIf1Rt4YkZuIbJI1iG5KBTMQd7of6st0koaEhyhzA 7NfQ== X-Gm-Message-State: AOJu0Yz4ljTK66ceMKOKXtxJveypIi1g4llwednH+ndtdAo9ZO/qEBBI D2HcNT3DLHCQpJH8m4qgKdNll5Aifip9JMT/s5o7gEMQxTiEvsqZMTgzEXa4KSxheZ2Y3fyxg/M = X-Gm-Gg: ASbGncv53HZTH6YJyvDQHybbQ99+Z1zn+O0h1x2QbQ+vJvepe/A/Z7B3i+3wxYqBy6Y GSVIEBE1Ay+WJEo6Na1q9ah1onGEER6i7t6aJaHnbNYBXgk3ZqLffx7gzQ4Eo/kI85okWeH0TsC ZZiHPjvjc6M5Bu3KVn/myWjMLv7LDs3edhDT5uwVvR0V9vZs6ebd7W9Ervkdmm74yH4J1pyudOy 3YIo6skueG6npTZVO90xowUyabf+DOA0KKQ9JkAaByaqYYKjyWQ7q+FCCXAj9oJ2vpGvn/QYBow j8Dk4pAEDQUjTgspR8aQvIBk4tKagWjrPXCjk61YyixNs2I4DQ7Edxjj1u9GKkM6I08n6v8ogsR ExoyQjDFkuFF4XfdbL9uf2nS2PJ2UIw== X-Google-Smtp-Source: AGHT+IEQcc1w3qVtZd/nrWClsUIJLEx1OCdv2qxru5vIJE6ASkLEWvwvH1zuUdJDbUKuiIKe6TieDw== X-Received: by 2002:a05:600c:524a:b0:43c:f75a:eb54 with SMTP id 5b1f17b1804b1-43cf75aed5emr172596805e9.13.1741873942752; Thu, 13 Mar 2025 06:52:22 -0700 (PDT) Message-ID: Date: Thu, 13 Mar 2025 14:52:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/6] symbols: add minimal self-test From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> 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 In-Reply-To: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> ... before making changes to the involved logic. Signed-off-by: Jan Beulich --- With this FAST_SYMBOL_LOOKUP may make sense to permit enabling even when LIVEPATCH=n. Thoughts? (In this case "symbols: centralize and re- arrange $(all_symbols) calculation" would want pulling ahead.) --- a/xen/common/symbols.c +++ b/xen/common/symbols.c @@ -260,6 +260,41 @@ unsigned long symbols_lookup_by_name(con return 0; } +#ifdef CONFIG_SELF_TESTS + +static void __init test_lookup(unsigned long addr, const char *expected) +{ + char buf[KSYM_NAME_LEN + 1]; + const char *name, *symname; + unsigned long size, offs; + + name = symbols_lookup(addr, &size, &offs, buf); + if ( !name ) + panic("%s: address not found\n", expected); + if ( offs ) + panic("%s: non-zero offset (%#lx) unexpected\n", expected, offs); + + /* Cope with static symbols, where varying file names/paths may be used. */ + symname = strchr(name, '#'); + symname = symname ? symname + 1 : name; + if ( strcmp(symname, expected) ) + panic("%s: unexpected symbol name: '%s'\n", expected, symname); + + offs = symbols_lookup_by_name(name); + if ( offs != addr ) + panic("%s: address %#lx unexpected; wanted %#lx\n", + expected, offs, addr); +} + +static void __init __constructor test_symbols(void) +{ + /* Be sure to only try this for cf_check functions. */ + test_lookup((unsigned long)dump_execstate, "dump_execstate"); + test_lookup((unsigned long)test_symbols, __func__); +} + +#endif /* CONFIG_SELF_TESTS */ + /* * Local variables: * mode: C From patchwork Thu Mar 13 13:53:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 14015083 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 80C6CC282DE for ; Thu, 13 Mar 2025 13:53:44 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.912236.1318543 (Exim 4.92) (envelope-from ) id 1tsj0C-0005F3-R2; Thu, 13 Mar 2025 13:53:36 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 912236.1318543; Thu, 13 Mar 2025 13:53:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj0C-0005Ew-O3; Thu, 13 Mar 2025 13:53:36 +0000 Received: by outflank-mailman (input) for mailman id 912236; Thu, 13 Mar 2025 13:53:35 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj0B-0005Eo-Bm for xen-devel@lists.xenproject.org; Thu, 13 Mar 2025 13:53:35 +0000 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [2a00:1450:4864:20::32e]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 8e1fbc28-0012-11f0-9ab9-95dc52dad729; Thu, 13 Mar 2025 14:53:34 +0100 (CET) Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-43cf0d787eeso8868695e9.3 for ; Thu, 13 Mar 2025 06:53:34 -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 5b1f17b1804b1-43d188bb81bsm21058715e9.23.2025.03.13.06.53.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Mar 2025 06:53:33 -0700 (PDT) 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: 8e1fbc28-0012-11f0-9ab9-95dc52dad729 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1741874014; x=1742478814; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=fCxxDGYuy2Cc/IFubfex0MjwHffrK4iFN5U1SgdHJM0=; b=gkw5rDRXCn5NJeyC37OadYrar6eFKzGfgGSisNWoFjxFKLYceoY7FNEup5AEDhC7jH 7BYyo9odLKNlqNn50g+gE8NAUWEa6xpOcuifOEZjMbxe0LDeonEVT6v6Qs3Lxp92KeVN 7ICwgrdavJMvw2vc7cxHTIkXpRkaZiKlkUKGXKrZWNfcdq7GooK9Ts3IfxLPafLlajbF DXPq9xaC86sjwkp0splyYk+ytEzMGGU9btgYhok1mKkTioueeYEY5MzpaIM+ncOMkWft wcGdUxAgHOmOVWeUjM2meEs+KLMcLc+BNStfbl4yQkezaeG4OfchnLgesJ9CFFCw5z3V LsBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741874014; x=1742478814; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fCxxDGYuy2Cc/IFubfex0MjwHffrK4iFN5U1SgdHJM0=; b=CRpWfnAcBaQXIORS39dHYrT6KA4WeW1Bye/GVIa3uAxisSB22FhsUtvyxZUNP5yPn0 An+fgULSKv3PobRFvv8NNC3q9ccAZiXloktuc94cmCT3rBGKtgdv7bSipjo9U/iKb6OC XeI3otZleV38MuywdqSV/a/4vDMagveVTcQpEhazLoTP7aI9OL/R4VT2Ijiy+YraB+/I YyGXlne6nNxDmQrHlXY0eL0eKb3diCsPIlR+YJlefu7W/y31rQxoDEqIfoLoXlbUR1mB LBqTzpfLJHwTJL+vFu2XbD/QwzNIZDwgcYa161JLKW7iry3n4ZK/3oqBiiBuGtk3Kn+D mORg== X-Gm-Message-State: AOJu0YwvoUdXSAwY1xhB81JmEmQEDBRgky7DsGLTGn88y7BL9hSNqJx2 GuNtCTPC5C3+AfBtuxlWSlrlP8r1FT+LGzJtxNXGraPNstY+G0JcrzK50cjAPqOcVgDby5Q/8Zs = X-Gm-Gg: ASbGncvC77X4bNzB2AmJf46IaUuI8awfFFLEquOIelTxQaw2eLz5vJbYvOCB6IDNLZG s9ncUdH7kjvmj9vJAQdfrHMDoiLxHQ2H3N2rgnyWpzE0VBB1dzSBuSDQCtLhn5Io0Wudo/sZDCO kbqJgzcrwg71MleEM2dUr91Q4tjNUUq4qESEGXgceuT2p85eudnsArxoLUbmXKwxbcDQK95DNS5 lE5dq4C8p33fmAEy8olMxd1yMBmU66KMnJvsRrgcfc5vWcjONR+9ustOlqzgBvKMZ91aOuwAYxX fCoAyrOlkcinnLuVynpBFV06zkXC+R6Aury4phdGvIk5ulWpsjkmo6eqWxIQHngso7GGKBO7byu wwRC5plrQoxUKqrlS2VLBR8yAWOFFBA== X-Google-Smtp-Source: AGHT+IFZjjQ0qBDB7b0zosF9/jHin5+CIaPO9cDuH6HESGaEsN6bV6XkBUq5irp9zrsar20f4aT0qA== X-Received: by 2002:a05:600c:3b8b:b0:43c:f6b0:e807 with SMTP id 5b1f17b1804b1-43cf6b2135cmr156894775e9.31.1741874013813; Thu, 13 Mar 2025 06:53:33 -0700 (PDT) Message-ID: <816a0320-d229-4f7e-b1b5-51dbb640c5c8@suse.com> Date: Thu, 13 Mar 2025 14:53:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 2/6] symbols: don't over-align generated data From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Shawn Anastasio , Oleksii Kurochko References: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> 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 In-Reply-To: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> x86 is one of the few architectures where .align has the same meaning as .balign; most other architectures (Arm, PPC, and RISC-V in particular) give it the same meaning as .p2align. Aligning every one of these item to 256 bytes (on all 64-bit architectures except x86-64) is clearly too much. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- Even uniformly aligning to 4 (x86, Arm32) or 8 bytes is too much imo, when some of the items require only 1- or 2-byte alignment. Is there a reason only x86 defines SYMBOLS_ORIGIN, to halve the address table in size? (Arm32 and other possible 32-bit ports of course have no need for doing so, but for 64-bit ones that can make quite a bit of a difference.) --- a/xen/tools/symbols.c +++ b/xen/tools/symbols.c @@ -304,10 +304,10 @@ static void write_src(void) printf("#include \n"); printf("#if BITS_PER_LONG == 64 && !defined(SYMBOLS_ORIGIN)\n"); printf("#define PTR .quad\n"); - printf("#define ALGN .align 8\n"); + printf("#define ALGN .balign 8\n"); printf("#else\n"); printf("#define PTR .long\n"); - printf("#define ALGN .align 4\n"); + printf("#define ALGN .balign 4\n"); printf("#endif\n"); printf("\t.section .rodata, \"a\"\n"); From patchwork Thu Mar 13 13:53:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 14015084 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CFB68C282DE for ; Thu, 13 Mar 2025 13:54:02 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.912239.1318553 (Exim 4.92) (envelope-from ) id 1tsj0V-0005dl-6p; Thu, 13 Mar 2025 13:53:55 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 912239.1318553; Thu, 13 Mar 2025 13:53:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj0V-0005de-3a; Thu, 13 Mar 2025 13:53:55 +0000 Received: by outflank-mailman (input) for mailman id 912239; Thu, 13 Mar 2025 13:53:53 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj0T-0005Eo-Qa for xen-devel@lists.xenproject.org; Thu, 13 Mar 2025 13:53:53 +0000 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [2a00:1450:4864:20::32b]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 991c7f28-0012-11f0-9ab9-95dc52dad729; Thu, 13 Mar 2025 14:53:53 +0100 (CET) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-43948021a45so8562395e9.1 for ; Thu, 13 Mar 2025 06:53:53 -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 5b1f17b1804b1-43d188bb577sm21275545e9.19.2025.03.13.06.53.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Mar 2025 06:53:51 -0700 (PDT) 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: 991c7f28-0012-11f0-9ab9-95dc52dad729 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1741874032; x=1742478832; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Hy8f/0LGlSutg/mtmD9f1iBXGGEL7ZBLLMqdPuSrLnU=; b=Bq82f5+0XUOlWERvnfPtYutYU/H+RB1MAEXhjZUTbNz6T3Bn8zm4MLfM0Ij9nhPi9s RFYzCvzjv1FooG69+Onni6bXbieeTv3N2KhJSv2oIUrddAe4Z52PmFpgz+7fRJ+oHRGW sp7gblv1lwHytuQsYDw16HHnIs1g0SPHgd2OyTsZW4HkL/FPVKSV2M4t7YSOhaM+0szc B+YJQ0VvX/6JXJhQ8yLCCyRGvcj0sllD49DVxiuWqG17qDAx+ZMdQ7g0p/v3bA0gBegw wA1G2sfFRsSLU2Hs7faCq0FqLsAJeeeAHQ5fAlIhL2+eL+aERtCKmcpwMBfXCVWQ67Nv wknA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741874032; x=1742478832; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Hy8f/0LGlSutg/mtmD9f1iBXGGEL7ZBLLMqdPuSrLnU=; b=DeWgUsPjJEElPgyBHRSFmP3jH9KIzHH3qSeUIIyRx2Ku6W33k6dhCcgVjoDzo1csbE ZlJ6Oy1CwfRbayucO/F3X5CuBxLdP9n2lUQXi+KGaFlcCQwMoCBNuCn0ZiYKUvStR0w0 FLfQxMLi+Fl4NbJffBC4BoEcKZLOcd1rOLuftFHbJTKOpy5SGGlPgrt4srVXCHwYvEbz KEUCc880nSOvHRiZX+Z5ewKRMTRLLTyLM8gUrVDz9kROGtyvLTYTrPPSCzJEstLleGeP wOIVW0QVJGOy0Rs8pKkUddGvqTHA15QGJZsUykpSyCUZLLAwDu7xt6x1VNrgUPV7kH/v AGPw== X-Gm-Message-State: AOJu0YzwscQJ1It65bArsOv/DOYQSUmP07NfsBSBMFr2ZLS8o0a5058U FmgaOpM5oKyDPR2TfQM6cshd+9Xhy36LmxekaARtFdZVSf8XsOj2AJvQR8Ts7C9jfRw9buGB7ig = X-Gm-Gg: ASbGncvhFUVIyV7TndA9uG1CNPn/8pvYu9swSZ7Aq2W6swKMTafatKLzvfFnlCY/knl KG/7NWYQ0hJG6gzLYehzHl9iLtK6JWl2KEgOFvaabqxtA5C/QyScRMVW4u92IEPXrWRzHlx62d0 1uX/E5Ej1WV4zhjR0bIqrxEiBgto5owhXJ6Za0UN1AgNZHWihNqEBzVG8QmRaMy8uOh4nMLxtQ0 Zjl5wCcN+UfkMGBbJ2eRmqwUiBFgcjwwz/9Dg+S+i0qfl2pG9Zrz+pKeg6/DXkedFBM5bsumFkJ 9O3DftCkOZElqXLmgyWVPQTOiwRAMaHIF5uM8enufterr/cpPwh2GFbkmfwPF3FDdRH+LbCkE+/ kPPX4z7XaYa+TKT7KGQdtGq9BSR136A== X-Google-Smtp-Source: AGHT+IGyDuPMAywci6EIpal80CSyYfIDp2RwhSjgzL9ACvgV48UFjVYb+yKpq2vwLE2ZhpgL0nqMnQ== X-Received: by 2002:a05:600c:3b21:b0:43c:fee3:2bce with SMTP id 5b1f17b1804b1-43cfee32d16mr103982915e9.26.1741874032154; Thu, 13 Mar 2025 06:53:52 -0700 (PDT) Message-ID: Date: Thu, 13 Mar 2025 14:53:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 3/6] symbols: sanitize a few variable's types From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> 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 In-Reply-To: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> Parameter and return types of symbols_expand_symbol() make clear that xensyms_read()'s next_offset doesn't need to be 64-bit. xensyms_read()'s first parameter type makes clear that the function's next_symbols doesn't need to be 64-bit. symbols_num_syms'es type makes clear that iteration locals in symbols_lookup() don't need to be unsigned long (i.e. 64-bit on 64-bit architectures). Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- a/xen/common/symbols.c +++ b/xen/common/symbols.c @@ -108,7 +108,7 @@ const char *symbols_lookup(unsigned long unsigned long *offset, char *namebuf) { - unsigned long i, low, high, mid; + unsigned int i, low, high, mid; unsigned long symbol_end = 0; const struct virtual_region *region; @@ -179,7 +179,7 @@ int xensyms_read(uint32_t *symnum, char * from previous read. This can help us avoid the extra call to * get_symbol_offset(). */ - static uint64_t next_symbol, next_offset; + static unsigned int next_symbol, next_offset; static DEFINE_SPINLOCK(symbols_mutex); if ( *symnum > symbols_num_syms ) From patchwork Thu Mar 13 13:54:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 14015085 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 66838C282DE for ; Thu, 13 Mar 2025 13:54:29 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.912257.1318563 (Exim 4.92) (envelope-from ) id 1tsj0x-0006Gd-FO; Thu, 13 Mar 2025 13:54:23 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 912257.1318563; Thu, 13 Mar 2025 13:54:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj0x-0006GW-Bv; Thu, 13 Mar 2025 13:54:23 +0000 Received: by outflank-mailman (input) for mailman id 912257; Thu, 13 Mar 2025 13:54:21 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj0v-0005Eo-Qy for xen-devel@lists.xenproject.org; Thu, 13 Mar 2025 13:54:21 +0000 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [2a00:1450:4864:20::42b]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a9ea97e7-0012-11f0-9ab9-95dc52dad729; Thu, 13 Mar 2025 14:54:21 +0100 (CET) Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3914aba1ce4so812528f8f.2 for ; Thu, 13 Mar 2025 06:54:21 -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 5b1f17b1804b1-43d188b0092sm21288445e9.5.2025.03.13.06.54.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Mar 2025 06:54:20 -0700 (PDT) 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: a9ea97e7-0012-11f0-9ab9-95dc52dad729 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1741874060; x=1742478860; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=pZ0/V7ZT52/4wqdqp0m7EzpxDL3ASTPBl65f2eq3ZWc=; b=F9v+O4/4HHONiImkwPPbKHOcoIccKOGppK492xNDJqKfwOveZRDyy20RFrTpYRMtyt IbMKZ3r+S2O9Oj4KZa8v1XQ7bVczkRIDeNcgnEmLelqmNNf6f1vzzalmvmdQKYu22dO6 RMMH8N84gUD+AFFWb+QYscQ6PvlxP7kyNEuA4KbaOBXbHccOP7tES1GYOGySu3+K1IA2 8xpF/nxLlM91bwDkSBw5DQAVrtF5QxHmnhPkzCfJ0889TUGTc+/pYazxSOHRG1oDae9A L5uWwQorvsqiHdU6K3LG1XSUBifLdhyA93N70VIr6AYX5duuYw+IE8uBaAJQZFUNP2Cr fJzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741874060; x=1742478860; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pZ0/V7ZT52/4wqdqp0m7EzpxDL3ASTPBl65f2eq3ZWc=; b=rUxyLMZr1Djorp0MuXgV5Qf7n+Uak9rduLjiM/F3w2ZNNCCVFOpEDGlOQ9nJ1LlrdL RiQS1efdz1V3NDmpbxQEivPpdHcCoCcXcfU7FufdVWxW2wcM0UEJ/i5hE48UcYnAWpaw YqJjqYCxYRoYdf1FKML6peebqIYIdBGGRfUtiXc4fyS2iBmHFghJu2LMcgaOe4NKbVwQ gw85HHzecopAJQrsNer4At15JcmHf8z4QXueQkIzpLDMNFzcILvbkP4XZUd+ymsWx0cU DbEsQp4tnCz9v9ZcwV5genwBdSNDFeuE2uv9f6M0jSSUqEpcDZIRQ+kuVJ5o5l6jRRdC Zebw== X-Gm-Message-State: AOJu0YycBMBlo5S8Ie4ULoXYLGoewVdvgo79rsem+1uKDMeKuTN1j0Pm D9mR4r3qXKj1LPAjyNIe0F0voTS1BUv5g4A9axbEKY98/72EAxzyj/f83nu102VjYWq26VlOuGw = X-Gm-Gg: ASbGncskFk4JcdKKlrUJp3MJzdr/iu+m3nB+aCdZAwUq/FmlGjAFWZf5pL0cezb+OuG PskTrNBHv7bpCCj6d9mnGpAQFAAxt2WXqLkfoXPXGtXLWtjpX00Kc0+rAvWrOBCD1Gj3ZsgB9UC iB3oVd1IQqoyy0qVM488PP05Wnelr7vd4CM4FqVX0MmoBJt+QaW+0LuY+h2yvtKNGU8EaznMsBB BZDNK/dwLb3YvQl9S7jL/Yr/5nZYc+jddypDNWrwkcY7/jjvtupBgU8HSHA5/lmvqLDVinPv2IO VYHG/kvjcp1POq2ViI37P+4jSDkI7Uylu1o5tK+R4eaYhIDdNX79s6WueHIOO30y/BAgcT16xCf yG0Mzb2LvXUAkFshTx5z2s5YgAiOttQ== X-Google-Smtp-Source: AGHT+IFGgmG1dRPjfBySTm/GbUtIWXMTCxzMjd2YdzNUe1gnX313Gdpu829R1iQoCuJQJXo5SDpFBg== X-Received: by 2002:a5d:6d09:0:b0:38f:4fa6:68df with SMTP id ffacd0b85a97d-39132dbca7amr23825541f8f.51.1741874060421; Thu, 13 Mar 2025 06:54:20 -0700 (PDT) Message-ID: <82494869-2565-4a20-b43d-224641919d68@suse.com> Date: Thu, 13 Mar 2025 14:54:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 4/6] symbols: split symbols_num_syms From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> 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 In-Reply-To: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> In preparation for inserting address entries into symbols_addresses[] / symbols_offsets[] without enlarging symbols_sorted_offsets[], split symbols_num_syms into symbols_num_addrs (counting entries in the former plus symbols_names[] as well as, less directly, symbols_markers[]) and symbols_num_names (counting entries in the latter). While doing the adjustment move declarations to a new private symbols.h, to be used by both symbols.c and symbols-dummy.c. Replace u8/u16 while doing so. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- a/xen/common/symbols.c +++ b/xen/common/symbols.c @@ -10,7 +10,6 @@ * compression (see tools/symbols.c for a more complete description) */ -#include #include #include #include @@ -21,22 +20,7 @@ #include #include -#ifdef SYMBOLS_ORIGIN -extern const unsigned int symbols_offsets[]; -#define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n]) -#else -extern const unsigned long symbols_addresses[]; -#define symbols_address(n) symbols_addresses[n] -#endif -extern const unsigned int symbols_num_syms; -extern const u8 symbols_names[]; - -extern const struct symbol_offset symbols_sorted_offsets[]; - -extern const u8 symbols_token_table[]; -extern const u16 symbols_token_index[]; - -extern const unsigned int symbols_markers[]; +#include "symbols.h" /* expand a compressed symbol data into the resulting uncompressed string, given the offset to where the symbol is in the compressed stream */ @@ -124,7 +108,7 @@ const char *symbols_lookup(unsigned long /* do a binary search on the sorted symbols_addresses array */ low = 0; - high = symbols_num_syms; + high = symbols_num_addrs; while (high-low > 1) { mid = (low + high) / 2; @@ -141,7 +125,7 @@ const char *symbols_lookup(unsigned long symbols_expand_symbol(get_symbol_offset(low), namebuf); /* Search for next non-aliased symbol */ - for (i = low + 1; i < symbols_num_syms; i++) { + for (i = low + 1; i < symbols_num_addrs; i++) { if (symbols_address(i) > symbols_address(low)) { symbol_end = symbols_address(i); break; @@ -182,9 +166,9 @@ int xensyms_read(uint32_t *symnum, char static unsigned int next_symbol, next_offset; static DEFINE_SPINLOCK(symbols_mutex); - if ( *symnum > symbols_num_syms ) + if ( *symnum > symbols_num_addrs ) return -ERANGE; - if ( *symnum == symbols_num_syms ) + if ( *symnum == symbols_num_addrs ) { /* No more symbols */ name[0] = '\0'; @@ -227,7 +211,7 @@ unsigned long symbols_lookup_by_name(con #ifdef CONFIG_FAST_SYMBOL_LOOKUP low = 0; - high = symbols_num_syms; + high = symbols_num_names; while ( low < high ) { unsigned long mid = low + ((high - low) / 2); --- /dev/null +++ b/xen/common/symbols.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#include +#include + +#ifdef SYMBOLS_ORIGIN +extern const unsigned int symbols_offsets[]; +#define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n]) +#else +extern const unsigned long symbols_addresses[]; +#define symbols_address(n) symbols_addresses[n] +#endif +extern const unsigned int symbols_num_addrs; +extern const unsigned char symbols_names[]; + +extern const unsigned int symbols_num_names; +extern const struct symbol_offset symbols_sorted_offsets[]; + +extern const uint8_t symbols_token_table[]; +extern const uint16_t symbols_token_index[]; + +extern const unsigned int symbols_markers[]; + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ --- a/xen/common/symbols-dummy.c +++ b/xen/common/symbols-dummy.c @@ -3,22 +3,22 @@ * link of the hypervisor image. */ -#include -#include +#include "symbols.h" #ifdef SYMBOLS_ORIGIN const unsigned int symbols_offsets[1]; #else const unsigned long symbols_addresses[1]; #endif -const unsigned int symbols_num_syms; -const u8 symbols_names[1]; +const unsigned int symbols_num_addrs; +const unsigned char symbols_names[1]; #ifdef CONFIG_FAST_SYMBOL_LOOKUP +const unsigned int symbols_num_names; const struct symbol_offset symbols_sorted_offsets[1]; #endif -const u8 symbols_token_table[1]; -const u16 symbols_token_index[1]; +const uint8_t symbols_token_table[1]; +const uint16_t symbols_token_index[1]; const unsigned int symbols_markers[1]; --- a/xen/tools/symbols.c +++ b/xen/tools/symbols.c @@ -323,7 +323,7 @@ static void write_src(void) } printf("\n"); - output_label("symbols_num_syms"); + output_label("symbols_num_addrs"); printf("\t.long\t%d\n", table_cnt); printf("\n"); @@ -373,6 +373,10 @@ static void write_src(void) return; } + output_label("symbols_num_names"); + printf("\t.long\t%d\n", table_cnt); + printf("\n"); + /* Sorted by original symbol names and type. */ qsort(table, table_cnt, sizeof(*table), compare_name_orig); From patchwork Thu Mar 13 13:54:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 14015117 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A94E6C28B2E for ; Thu, 13 Mar 2025 14:03:27 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.912293.1318593 (Exim 4.92) (envelope-from ) id 1tsj9W-0001fP-P2; Thu, 13 Mar 2025 14:03:14 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 912293.1318593; Thu, 13 Mar 2025 14:03:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj9W-0001fI-LG; Thu, 13 Mar 2025 14:03:14 +0000 Received: by outflank-mailman (input) for mailman id 912293; Thu, 13 Mar 2025 14:03:13 +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 1tsj1L-0005Wp-RM for xen-devel@lists.xenproject.org; Thu, 13 Mar 2025 13:54:47 +0000 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [2a00:1450:4864:20::331]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id b70eb2d5-0012-11f0-9898-31a8f345e629; Thu, 13 Mar 2025 14:54:43 +0100 (CET) Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso6115475e9.2 for ; Thu, 13 Mar 2025 06:54:43 -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 5b1f17b1804b1-43d0a75b0f6sm54380865e9.22.2025.03.13.06.54.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Mar 2025 06:54:42 -0700 (PDT) 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: b70eb2d5-0012-11f0-9898-31a8f345e629 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1741874082; x=1742478882; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=BLOSHq8PWlNDBpZfFh39qmol2jrCmXZN7mJgC6pp9zw=; b=Dc5+uRvK4O8z3z9fneMry5OuJja3ueWO/XG7YI20gmdCqtCqreUU4W3ijB20FNXte0 XDK8NvkR5WYoMMvEA9yxSll7ROYk4ygGUR38SwtIfM/hB5Gykc/17zSaUyhxStRhcxow GYuPAi8YgrpDCmFxHfmvWK62h8onVflbbp/0EzFLq3+wcDB2a+L5KYR0eWEbqNFHXHGP MAMDvoTi5EkiYfRJG/rJtrTr/oh+QDtILVRNcin9ssBeJDwcWYPRo1NWMqLRXEWFdeZP QAuXa1AXess4s9153yGELdmn+22APCwxUrZs90/txoZ219v1Fetd3Tdp2cxvMhYGtU2v 8nDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741874082; x=1742478882; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BLOSHq8PWlNDBpZfFh39qmol2jrCmXZN7mJgC6pp9zw=; b=jDQ7c/KKNvZGywFq/3BATd3uqu89SY7cpfOhK+4/BckuCKFLZ8UFemp4L0cEQt0Cp8 X+WPg7JtU3LxvH7fAvmKlrV/4huVGw6PnV+MMrWYFI8abSVgXhITQPAcuYHef1wH55X8 wL64vPEcpfy2DPJBRZrs0O6i9uY+xk6vPWhYI2hbO1cm8SuPBk5dgmiEeyfYZZ5Eu4wO Nr/ymyyaEcdxDsrsut1qpDQ/2UTWTEjBw8RIM+jMOsJKyBS7sbOPUKKgdZ8cCvcCHChv fMMyMJlg1eF4l8bG/NBgoottezrglcFpR59FGtkwCZH9d7TEYCLeaTCcPcEGaysNoqRR xg0w== X-Gm-Message-State: AOJu0Yw6ry+DnTM/IQmKn9PNwjlDTRyuPxLkSz7Xw9q59abQ2oopyaJA UmCqs1GqSD4cQajpbsTb5kWQZ1+gdgVKjD6hq3Ae2dVYvBaGAvvYFmRxWqiJ6KgeWGwszB8CmtY = X-Gm-Gg: ASbGncu2sxCc/CyVJZIVXzNbLkOOPI+rfpnglrS+Z8MFBdF7zC7Jxd6MhXr5o3tOfr/ 1jvf3HKAlj7imz/mwVcLm4SSyfBLhWbdFrWCiGchn5U4g9p/qDWuFT+I7e6aW6C0heDhiIlfvtu 8QKnp4fiUiOK1foMX7nb1ceTTv8uwYKm5EAc3suaec7IYNgEx7Cco52IuBnQPJUlPzSTYuzifVC H/9eT2olKZnwvXHBi9ZUeJDOB42yelPrtahltXSfpibOHuG//Maq7Q+JdXdtHbKUNlVlU9au5fO MYEsZ9XGQdm8K3gluUqsrzBhFTNAuDBkxPEhRpL3+Q/t8SBRERZwswHI3gOxrPJ9CFZWmn1OsSZ dS+IvKzpdUbauk18GhuFjP2ef/zI6jQ== X-Google-Smtp-Source: AGHT+IHNrxWxqUZCs1z/QJri7R24okz3X/vk5S6V8rhATJNTwR8xIQ1Guxwt4lsvdBllZ08p7oSS2g== X-Received: by 2002:a05:600c:1c9a:b0:43c:e8ba:e166 with SMTP id 5b1f17b1804b1-43d01c1daebmr103220705e9.22.1741874082408; Thu, 13 Mar 2025 06:54:42 -0700 (PDT) Message-ID: <51f2cd39-e92f-4745-8053-e51ada22d601@suse.com> Date: Thu, 13 Mar 2025 14:54:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 5/6] symbols: arrange to know where functions end From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> 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 In-Reply-To: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> When determining the symbol for a given address (e.g. for the %pS logging format specifier), so far the size of a symbol (function) was assumed to be everything until the next symbol. There may be gaps though, which would better be recognizable in output (often suggesting something odd is going on). Insert "fake" end symbols in the address table, accompanied by zero- length type/name entries (to keep lookup reasonably close to how it was). Note however that this, with present GNU binutils, won't work for xen.efi: The linker loses function sizes (they're not part of a normal symbol table entry), and hence nm has no way of reporting them. The address table growth is quite significant on x86 release builds (due to functions being aligned to 16-byte boundaries), though: Its size almost doubles. Requested-by: Andrew Cooper Signed-off-by: Jan Beulich --- Note: Style-wise this is a horrible mix. I'm trying to match styles with what's used in the respective functions. Older GNU ld retains section symbols, which nm then also lists. Should we perhaps strip those as we read in nm's output? They don't provide any useful extra information, as our linker scripts add section start symbols anyway. (For the purposes here, luckily such section symbols are at least emitted without size.) --- a/xen/common/symbols.c +++ b/xen/common/symbols.c @@ -116,6 +116,13 @@ const char *symbols_lookup(unsigned long else high = mid; } + /* If we hit an END symbol, move to the previous (real) one. */ + if (!symbols_names[get_symbol_offset(low)]) { + ASSERT(low); + symbol_end = symbols_address(low); + --low; + } + /* search for the first aliased symbol. Aliased symbols are symbols with the same address */ while (low && symbols_address(low - 1) == symbols_address(low)) @@ -124,11 +131,13 @@ const char *symbols_lookup(unsigned long /* Grab name */ symbols_expand_symbol(get_symbol_offset(low), namebuf); - /* Search for next non-aliased symbol */ - for (i = low + 1; i < symbols_num_addrs; i++) { - if (symbols_address(i) > symbols_address(low)) { - symbol_end = symbols_address(i); - break; + if (!symbol_end) { + /* Search for next non-aliased symbol */ + for (i = low + 1; i < symbols_num_addrs; i++) { + if (symbols_address(i) > symbols_address(low)) { + symbol_end = symbols_address(i); + break; + } } } @@ -170,6 +179,7 @@ int xensyms_read(uint32_t *symnum, char return -ERANGE; if ( *symnum == symbols_num_addrs ) { + no_symbol: /* No more symbols */ name[0] = '\0'; return 0; @@ -183,10 +193,31 @@ int xensyms_read(uint32_t *symnum, char /* Non-sequential access */ next_offset = get_symbol_offset(*symnum); + /* + * If we're at an END symbol, skip to the next (real) one. This can + * happen if the caller ignores the *symnum output from an earlier + * iteration (Linux'es /proc/xen/xensyms handling does as of 6.14-rc). + */ + if ( !symbols_names[next_offset] ) + { + ++next_offset; + if ( ++*symnum == symbols_num_addrs ) + goto no_symbol; + } + *type = symbols_get_symbol_type(next_offset); next_offset = symbols_expand_symbol(next_offset, name); *address = symbols_address(*symnum); + /* If next one is an END symbol, skip it. */ + if ( !symbols_names[next_offset] ) + { + ++next_offset; + /* Make sure not to increment past symbols_num_addrs below. */ + if ( *symnum + 1 < symbols_num_addrs ) + ++*symnum; + } + next_symbol = ++*symnum; spin_unlock(&symbols_mutex); --- a/xen/tools/symbols.c +++ b/xen/tools/symbols.c @@ -38,6 +38,7 @@ struct sym_entry { unsigned long long addr; + unsigned long size; unsigned int len; unsigned char *sym; char *orig_symbol; @@ -87,6 +88,8 @@ static int read_symbol(FILE *in, struct static char *filename; int rc = -1; + s->size = 0; + switch (input_format) { case fmt_bsd: rc = fscanf(in, "%llx %c %499s\n", &s->addr, &stype, str); @@ -96,8 +99,12 @@ static int read_symbol(FILE *in, struct /* nothing */; rc = fscanf(in, "%499[^ |] |%llx | %c |", str, &s->addr, &stype); - if (rc == 3 && fscanf(in, " %19[^ |] |", type) != 1) - *type = '\0'; + if (rc == 3) { + if(fscanf(in, " %19[^ |] |", type) != 1) + *type = '\0'; + else if(fscanf(in, "%lx |", &s->size) != 1) + s->size = 0; + } break; } if (rc != 3) { @@ -287,9 +294,18 @@ static int compare_name_orig(const void return rc; } +/* Determine whether the symbol at address table @idx wants a fake END + * symbol (address only) emitted as well. */ +static bool want_symbol_end(unsigned int idx) +{ + return table[idx].size && + (idx + 1 == table_cnt || + table[idx].addr + table[idx].size < table[idx + 1].addr); +} + static void write_src(void) { - unsigned int i, k, off; + unsigned int i, k, off, ends; unsigned int best_idx[256]; unsigned int *markers; char buf[KSYM_NAME_LEN+1]; @@ -318,24 +334,32 @@ static void write_src(void) printf("#else\n"); output_label("symbols_offsets"); printf("#endif\n"); - for (i = 0; i < table_cnt; i++) { + for (i = 0, ends = 0; i < table_cnt; i++) { printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr); + + table[i].addr_idx = i + ends; + + if (!want_symbol_end(i)) + continue; + + ++ends; + printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", + table[i].addr + table[i].size); } printf("\n"); output_label("symbols_num_addrs"); - printf("\t.long\t%d\n", table_cnt); + printf("\t.long\t%d\n", table_cnt + ends); printf("\n"); /* table of offset markers, that give the offset in the compressed stream * every 256 symbols */ - markers = (unsigned int *) malloc(sizeof(unsigned int) * ((table_cnt + 255) / 256)); + markers = malloc(sizeof(*markers) * ((table_cnt + ends + 255) >> 8)); output_label("symbols_names"); - off = 0; - for (i = 0; i < table_cnt; i++) { - if ((i & 0xFF) == 0) - markers[i >> 8] = off; + for (i = 0, off = 0, ends = 0; i < table_cnt; i++) { + if (((i + ends) & 0xFF) == 0) + markers[(i + ends) >> 8] = off; printf("\t.byte 0x%02x", table[i].len); for (k = 0; k < table[i].len; k++) @@ -344,11 +368,22 @@ static void write_src(void) table[i].stream_offset = off; off += table[i].len + 1; + + if (!want_symbol_end(i)) + continue; + + /* END symbols have no name or type. */ + ++ends; + if (((i + ends) & 0xFF) == 0) + markers[(i + ends) >> 8] = off; + + printf("\t.byte 0\n"); + ++off; } printf("\n"); output_label("symbols_markers"); - for (i = 0; i < ((table_cnt + 255) >> 8); i++) + for (i = 0; i < ((table_cnt + ends + 255) >> 8); i++) printf("\t.long\t%d\n", markers[i]); printf("\n"); @@ -450,7 +485,6 @@ static void compress_symbols(unsigned ch len = table[i].len; p1 = table[i].sym; - table[i].addr_idx = i; /* find the token on the symbol */ p2 = memmem_pvt(p1, len, str, 2); if (!p2) continue; From patchwork Thu Mar 13 13:55:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 14015086 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 005AFC282DE for ; Thu, 13 Mar 2025 13:55:46 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.912269.1318572 (Exim 4.92) (envelope-from ) id 1tsj2B-0006sb-OQ; Thu, 13 Mar 2025 13:55:39 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 912269.1318572; Thu, 13 Mar 2025 13:55:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj2B-0006sU-Ks; Thu, 13 Mar 2025 13:55:39 +0000 Received: by outflank-mailman (input) for mailman id 912269; Thu, 13 Mar 2025 13:55:38 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tsj2A-0006sM-H5 for xen-devel@lists.xenproject.org; Thu, 13 Mar 2025 13:55:38 +0000 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [2a00:1450:4864:20::334]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id d788b571-0012-11f0-9ab9-95dc52dad729; Thu, 13 Mar 2025 14:55:37 +0100 (CET) Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43cf0d787eeso8899975e9.3 for ; Thu, 13 Mar 2025 06:55:37 -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 5b1f17b1804b1-43d188b6d3csm21145695e9.11.2025.03.13.06.55.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Mar 2025 06:55:35 -0700 (PDT) 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: d788b571-0012-11f0-9ab9-95dc52dad729 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1741874137; x=1742478937; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=5qdZYmy9cJ905wD0Otv7PRiJxoIoH9X0sUdlDkKSKcA=; b=fhZYsQeNbipVfcJMoQYXsfNriBLktsJSsJXRc8FSTkzO3Wda+TXYXCUe8dyBrhoOyR elNYzk//HzHxGoj5f+R4RnrmFZSTXEPSgb95zCtTaXlbPqMjK+//JjvLOVQ9QqmUaIUs m1jisQ3lr61PGw2wj4l3UAHirRALogZsOyJle6c3dkMxkK0FxncicSBStA+HOI2vy2YA CjnHKfO1qpshur0ZorXqX8lUZBGA7XOZhkvwkUrarn90NoJCUYgf9s/s6AoS3COzot00 p+z/yuA8ZQ+cH7ooEIMIbACn0iH3VkYkyn6gV6R+xPmIY1GNqXyXLYKoybn8IVxv6WS8 u+AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741874137; x=1742478937; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5qdZYmy9cJ905wD0Otv7PRiJxoIoH9X0sUdlDkKSKcA=; b=XZfVKvJtxaZWeVDCh9S1jMddRdHzf5ApJ13jMDkVHVDA1IZBgwWbI95NxvsSYqyJgs BLP6NbjA3Cf3qJS+g4UVpqO+YrP4GLldIftKctlL8JEFypNl7Uyk1xYgQz8Jb7SSw+lB v92XZMr5zWlc0xWDt7fnZbSMivBipm+q0bWjku2YcE3wqjfEnyBCvE3eUQcoUvyhzlVt OoUs6bCAE0x1n4O62MDyxB++/r/TJ1sIrw0FSceWZ5nFY4ytfzR8BNDsgKTEt4KI+oiF /kAfMq/ySOF5yA9qblzJAM9250WSLpdP5GclPWumQdq4u9oDy91yGMhb3vzd/GEbNqrP /dYg== X-Gm-Message-State: AOJu0Yzw+zinMM1gWUlqeqaxwNC3ads2D3wsJ6BlHvv3XRxuFcTm9hi/ leKz8kZzwcU9DmREPkB5+GFmMDqIsGXHVCyFkdKZxuJ8KOIAcdnZTVYB5mQeNy2Q/tFqmfJO1rk = X-Gm-Gg: ASbGncsflgdYcJfLidEP+J0lYMhyUkwjK9tDBUCiyLakJ5vroUD+d56MDmU614matxD lheM2vUsAg3ZrCQfNpoZ+nhVK0zsy9V5PUOSfF/bq898AMZLvEZg7wSkI5X0p4iCFOmKOUaguSz m9ZDGIzcNAGiVKMBBZJ0eY+K4DI9Q9eD9SC8PZDVFcLIOGsvKomDrRWbQh7jLGSkf7C/V9XWnJF W+IhZ7NlZ4enX6yON61hhxBAoCIVERYoYpAEalzUJY8lZtjN7+J/YfTHdJmkpZclxQ5BSdioCyh sg60uGQ+t2KNm+dNBUMha4FAEIk9xoBX7beJP0RlJdBdBklXdC//lHgLiL0PcnlMDbtOjD0lwJ6 caxCRPIXDS5w4Iccp2u+djjPsgAcemg== X-Google-Smtp-Source: AGHT+IHhEpSmsnzbUqc8RQP8V5pcX6okwHwgBUU+FJpFGEJcjrYYAu9mN1ftQYelsGnh7gexHqulnQ== X-Received: by 2002:a05:600c:198d:b0:43c:fdbe:4398 with SMTP id 5b1f17b1804b1-43cfdbe4493mr132230475e9.6.1741874136880; Thu, 13 Mar 2025 06:55:36 -0700 (PDT) Message-ID: Date: Thu, 13 Mar 2025 14:55:35 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 6/6] symbols: centralize and re-arrange $(all_symbols) calculation From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Julien Grall , Stefano Stabellini , Anthony PERARD , Michal Orzel , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , Bertrand Marquis , Volodymyr Babchuk , Anthony PERARD References: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> 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 In-Reply-To: <58b3d7dc-5966-432c-8def-e841feaee1c8@suse.com> For one there's no need for each architecture to have the same logic. Move to the root Makefile, also to calculate just once. And then re-arrange to permit FAST_SYMBOL_LOOKUP to be independent of LIVEPATCH, which may be useful in (at least) debugging. Signed-off-by: Jan Beulich --- Likely syms-warn-dup-y wants to follow suit; it doesn't even have an Arm counterpart right now. --- a/xen/Makefile +++ b/xen/Makefile @@ -460,6 +460,10 @@ ALL_OBJS-$(CONFIG_CRYPTO) += crypto/buil ALL_LIBS-y := lib/lib.a +all-symbols-y := +all-symbols-$(CONFIG_LIVEPATCH) += --all-symbols +all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name + include $(srctree)/arch/$(SRCARCH)/arch.mk # define new variables to avoid the ones defined in Config.mk @@ -612,7 +616,8 @@ $(TARGET): outputmakefile asm-generic FO $(Q)$(MAKE) $(build)=include all $(Q)$(MAKE) $(build)=arch/$(SRCARCH) include $(Q)$(MAKE) $(build)=. arch/$(SRCARCH)/include/asm/asm-offsets.h - $(Q)$(MAKE) $(build)=. MKRELOC=$(MKRELOC) 'ALL_OBJS=$(ALL_OBJS-y)' 'ALL_LIBS=$(ALL_LIBS-y)' $@ + $(Q)$(MAKE) $(build)=. MKRELOC=$(MKRELOC) 'ALL_OBJS=$(ALL_OBJS-y)' \ + 'ALL_LIBS=$(ALL_LIBS-y)' 'all_symbols=$(all-symbols-y)' $@ SUBDIRS = xsm arch common crypto drivers lib test define all_sources --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -81,15 +81,6 @@ ifneq ($(CONFIG_DTB_FILE),"") obj-y += dtb.o endif -ifdef CONFIG_LIVEPATCH -all_symbols = --all-symbols -ifdef CONFIG_FAST_SYMBOL_LOOKUP -all_symbols = --all-symbols --sort-by-name -endif -else -all_symbols = -endif - $(TARGET): $(TARGET)-syms $(OBJCOPY) -O binary -S $< $@ ifeq ($(CONFIG_ARM_64),y) --- a/xen/arch/x86/Makefile +++ b/xen/arch/x86/Makefile @@ -111,15 +111,6 @@ notes_phdrs = --notes endif endif -ifdef CONFIG_LIVEPATCH -all_symbols = --all-symbols -ifdef CONFIG_FAST_SYMBOL_LOOKUP -all_symbols = --all-symbols --sort-by-name -endif -else -all_symbols = -endif - syms-warn-dup-y := --warn-dup syms-warn-dup-$(CONFIG_SUPPRESS_DUPLICATE_SYMBOL_WARNINGS) := syms-warn-dup-$(CONFIG_ENFORCE_UNIQUE_SYMBOLS) := --error-dup