From nobody Sun Dec 14 05:56:49 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=1763549426; cv=none; d=zohomail.com; s=zohoarc; b=itEpaLkGyFjQh2+O3FFdhDbhEhAQzJtcJRWr6yeBgITaOfMhhC+hur5bEcfMVJ4/1L1LBdoUOHh4+1RxMmidCCHtB70wB5xJich52G18BrTbehiSvjvZokSvXBmD/LVHuY9wZbI70OU7lCj9pQJTyW8NuwbU7Rq6U1YiUv9D91k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763549426; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lK2Mi18t8Rxkch5T8qqE7ShIv2l4kzNr0A0IpujOPGk=; b=Y6/p5vFkZqlzmU8lRwfHfdDUYF34LRzayQ8zjrgXT8TEKtJYzkKYuTiFwF0591WvXxw1d3bKQdpITz8XrRGPsjOt/QSoQ7xG0dax29EvrHaTyPuCKMThmHUWHN+oYyDaLZFFjCOPhx3JQWz8CVojCIdOnZrjfc7Fo5fzYHZCqL0= 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 1763549426103895.2090779003867; Wed, 19 Nov 2025 02:50:26 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1165757.1492445 (Exim 4.92) (envelope-from ) id 1vLflJ-0003Dv-1S; Wed, 19 Nov 2025 10:50:09 +0000 Received: by outflank-mailman (output) from mailman id 1165757.1492445; Wed, 19 Nov 2025 10:50:09 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vLflI-0003Do-UA; Wed, 19 Nov 2025 10:50:08 +0000 Received: by outflank-mailman (input) for mailman id 1165757; Wed, 19 Nov 2025 10:50:07 +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 1vLflH-0003Dg-HS for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:50:07 +0000 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [2a00:1450:4864:20::535]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 829b57e2-c535-11f0-9d18-b5c5bf9af7f9; Wed, 19 Nov 2025 11:50:06 +0100 (CET) Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-6419b7b4b80so9776895a12.2 for ; Wed, 19 Nov 2025 02:50:06 -0800 (PST) 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 4fb4d7f45d1cf-6433a3d8775sm14817729a12.5.2025.11.19.02.50.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Nov 2025 02:50:05 -0800 (PST) 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: 829b57e2-c535-11f0-9d18-b5c5bf9af7f9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1763549406; x=1764154206; 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=lK2Mi18t8Rxkch5T8qqE7ShIv2l4kzNr0A0IpujOPGk=; b=K5O31HBQ17SzlA1lvKm5VpuWR/ElRaNkBU/R5fhT6QmUJ8P4YQ98vRhLVX4IoFRn3P M/WLso7/FdhSM6wIYqEwov+eKbubPdcTSxv1RGZrnQ12NvTHbrCXdbQy4I38IuVAyFub 5xqklwconi6ScAHazeKXlwEo+xp72JlTikUaM4LypOhwKe7OUZLF+8JRY6QZMj1IlFBd kfTbnLY6QOnsdPoRXdggyTxs8QsWmtsV9wa3DTIQpxJJr44ODbJtGE3SA3KmgdfB7owK s4mmK/tq/JnIbNDvY4z5XdsYhXlrDP6cXTL/7NGUwTHuoZF9h1xDitONu+htx2L6wTTo zeow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763549406; x=1764154206; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lK2Mi18t8Rxkch5T8qqE7ShIv2l4kzNr0A0IpujOPGk=; b=Ewr9ZZNO9N88M1bvrXSYQlwv2SHRfbXVjgCvcnqDfcRFuEG8T/RTz3Fkd99VA31VWV 5V3XJoTTk8VX5jh90PEjNxST/fc4gJjvbgp0yh5uKK8d3N1+bBGwWwWuh9/sqA1ZHDei KeT1d4lHbD5ZM04Nub8j8kZzeH4qAiic1HPupJkZQqG/ls/38gpQjGx5GSrbhQKdgjog LyxQcUyBLlmdo1WSVPzmMd31YCETng7RE2ToZgIylRMDZ9yZ3eBlU8dAKuekTqu/7VCu 9OFrBhJKVgVRbwqFFmdII7GvgjNe25ZWmFjgwaFqgXRmfhIzA7H73Np0j0qQyZDfTSfS oddw== X-Gm-Message-State: AOJu0YyrYSmGM66/XnRgcnWPD+qopxsSPn3N9uqUKGa54XA2GS9Jr+n7 aZ90al25uAynihGmPuSG7efvpFF2UDMJQF1EtNj/oG4zldFlqlTzGZStzfpHjaDjSwzClTzgrRw lwmY= X-Gm-Gg: ASbGncsl/C1mwmN0EYZGgvIiodkGRjK5nlJVs6/FRMRo2l5AE3blL48RXrb3/bCiBh2 R/hjj/zRTT8KNOyaZ3iBpSBHL/kbXnkWz4LM2QIR1r26ffNj8UPaDdUEX6vJyokjJ0SgDWp2D4S 57fCV8OMtRALfo36Bi9pZMvSUhzROJQBA1pbwq1hjdtJKQRcINeEDhmddbzz/8dwfoE7wF5B/vq P4K7+jf8SCoaHs5SE+Sn3NgmwWRcrFbRmVW3/YvEwoXTljbc9W285Xe1MAbCl79NPFKTDMYch47 F1CTkh2zTuQ5aPEOdDBMSQPGMeQMw9nbVFhVw4gE5u1BX96GGuMPNL/F3sz7MHXtB9mi6NNEvku VsI0XLStHXsl0uFABldNlO7LU6ArfC0bCZTBYM0PP3tBE+iQ6Chi2MKQkQhpJ659cRY9DThJxPT VmqesBZiuIFwySA0Wp4mCNjjJsAj/+twSIyi7Q3y8Xy5aWfkattUaAz63NDKiEn7VbhVlg0Y1BS mMuv526lL4oymp/lK16O+9v X-Google-Smtp-Source: AGHT+IEqxxpjSt+O5RXVgWwMrFHFihOSiWNxj4fki2yqblLF5mxuS/pdeObbIjugdfN80OhHk8I2mg== X-Received: by 2002:a05:6402:518a:b0:641:27d8:ec3f with SMTP id 4fb4d7f45d1cf-64350eac3e6mr17397428a12.29.1763549405864; Wed, 19 Nov 2025 02:50:05 -0800 (PST) Message-ID: <5ccf9000-9847-40de-838e-cb181633b098@suse.com> Date: Wed, 19 Nov 2025 11:50:04 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/4] x86/guest: move allocation of Xen upcall vector to init code From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: 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: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1763549427362153000 Content-Type: text/plain; charset="utf-8" There's no need to do this every time init_evtchn() is called. Just do it once when setting up CPU0. Drop the assertion as well, as alloc_hipriority_vector() (called by alloc_direct_apic_vector()) uses more restrictive BUG_ON() anyway. Then evtchn_upcall_vector can also validly become ro-after-init, just that it needs to move out of init_evtchn(). Signed-off-by: Jan Beulich --- a/xen/arch/x86/guest/xen/xen.c +++ b/xen/arch/x86/guest/xen/xen.c @@ -233,16 +233,12 @@ static void cf_check xen_evtchn_upcall(v ack_APIC_irq(); } =20 +static uint8_t __ro_after_init evtchn_upcall_vector; + static int init_evtchn(void) { - static uint8_t evtchn_upcall_vector; int rc; =20 - if ( !evtchn_upcall_vector ) - alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall); - - ASSERT(evtchn_upcall_vector); - rc =3D xen_hypercall_set_evtchn_upcall_vector(this_cpu(vcpu_id), evtchn_upcall_vector); if ( rc ) @@ -293,6 +289,8 @@ static void __init cf_check setup(void) XEN_LEGACY_MAX_VCPUS); } =20 + alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall); + BUG_ON(init_evtchn()); } From nobody Sun Dec 14 05:56:49 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=1763549446; cv=none; d=zohomail.com; s=zohoarc; b=FUBPVl1y1e0qKh7Z/XEZG+BgmE2tZnkBb/0bysRbB9oHKcI02BmCL/n7/0bXejZqepP6v/ePzK2Iv0vH1Xq82JR3IWiHUVqitgzrh+qGRJh6WwL6XjL33wNW8o7iOWmtaXiOObX91QHdnLkCBPyXTvJE90wAW0CckU7pwmc1S0A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763549446; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=; b=Ye3xs5e6iU9SBbAYaguKDr0acxZgrKjQg7jQ2LtjW/r3DZp/z4Y6yp4LQ8Q4AzBX61CzQjrBHyYLZ7p6Xsu10BQbJmbJkekSPoHTdlEX9voj5tOSlIGLshk85OTo/AgAkRG/fNaQ4GsRi+wfU5cfMeaDMiZMzM5QepSciKkzX6Y= 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 176354944592072.47868532431016; Wed, 19 Nov 2025 02:50:45 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1165764.1492455 (Exim 4.92) (envelope-from ) id 1vLfli-0003hE-8O; Wed, 19 Nov 2025 10:50:34 +0000 Received: by outflank-mailman (output) from mailman id 1165764.1492455; Wed, 19 Nov 2025 10:50:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vLfli-0003h7-4m; Wed, 19 Nov 2025 10:50:34 +0000 Received: by outflank-mailman (input) for mailman id 1165764; Wed, 19 Nov 2025 10:50:32 +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 1vLflg-0003Dg-GW for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:50:32 +0000 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [2a00:1450:4864:20::52a]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 9199e2b2-c535-11f0-9d18-b5c5bf9af7f9; Wed, 19 Nov 2025 11:50:31 +0100 (CET) Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-640e9f5951aso1183527a12.1 for ; Wed, 19 Nov 2025 02:50:31 -0800 (PST) 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-b734fad4494sm1575027766b.18.2025.11.19.02.50.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Nov 2025 02:50:30 -0800 (PST) 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: 9199e2b2-c535-11f0-9d18-b5c5bf9af7f9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1763549431; x=1764154231; 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=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=; b=QTzRlye3nn6iWQha3i7xHxibutqPNlfTuiEjo0mkXmYhg4M40J27w32dJswhU1AGCN 7UqA3DPvr+F2A82Ayfo4G0ecckBZMFc+/ImgRGZxCnVAXyA98you+XmpbVFnmTUNYyGt wUUgdyybJteytq0ZoTSt7ejT6G8kmFEIhxSx8vOeYaEqZn2glBcFLuTjHl+7cS/hZwvs ew+d9BisoaB+l/kNj7hZxGbaorLGEenrmsCkIkWiGLbPvxvzvUY8YnDvFU2Non8mXLmf Vl3CVsWJzaJmGX1QzzUWnwgTkP8HIeDTCUeM8RK89iF+SZ/ZfhZ6TMHOR0k0nKWxU84o MSPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763549431; x=1764154231; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=; b=XNqUMOC1XNRjYljgmHhvhsxLsZYdOdLrgwpTfegnlsx6umDwsiF4wz1AMPpBhvWb8T zmIaEQruzB/3eTlcNfBZuXmOVbGt8//1zwqFsZ+tY9m95d51GnZZR52/K2hns1N8gzlO ujGCvsMGrqU7+eHcq6C2Al17U6CClui6eyGCY6UmiuWyqGQR+VKcrPagO0pUgkwOl8RL urlL5pQgrov2Vyh92g3hwDbd6lPQawnjs0zYpShjLUByIfUSLEiNaarcxk8chTGQlcYE SSpuv7kINJCPEOJZUrblzljDlp0H/Z0RIfSTmG01PLDgVOysnHpwqAZLBE9LyM93j2du K9zQ== X-Gm-Message-State: AOJu0YwnTuME3CNI+iiQ/0hFaNKnHrL7DDZgt3Az3M6cBmHGyGA5tkMI xDB65g0qqkvzC3rFN8zQDxVKenCQABSZNUkJ7eZSBcOCRXWdh+3ohs5qJUg0sH0bNB5f2+uFdEZ Wg94= X-Gm-Gg: ASbGnctxceg64vvJ3URY+gam0wYzrtkhH+hGUXDWutNdJ6isDiTELLCAz0ypoprBTXM hiVxGLl1cbkioy6QNNaErlBpd6wvaqQSxbDFa+bG5zhxaOwnLyESohOGomh70xMtyLUdrE2MX7/ kFlqQtf8PJncxEbeDK19UE5+MQ6yp5ar4SQTF24UlHihO9YHCIRVoEWBzpc42WlUHCvOfD7z00C UMEX5rZqsoAgRpel2LYdFZvlkNfe5jH0H7w5jBZ+Jz8GUeHmx8ggmaKwOppxIqNW94c+abaWXAB nWOe4K1+Y7IUmDSSOIAMOtRlwFyzo8RMAzVCk700E2rX4duohJm0CJa/4wsaT8AqPWVpXpRdZlK oYCj5aYwZPGpVvILC0ZsKnz4H61xFI+Y5+rLiusqnAmRAAKjriZbchvjGm2aAuV0m6XUe7potBZ 8E3n7JSVQFMqqRoqHcgyz6k6nBhTxi5zoQWrmnbawCnhkhBppDqinvSWSOk6O4gpb69miJQq+1c +E= X-Google-Smtp-Source: AGHT+IGTSa2SoqaSM6MxzZVV6krh/0JZvl3sKjNYS5ilfrS4p5hFfhVobIvSqhuabRs2iEnGysniFg== X-Received: by 2002:a17:907:9625:b0:b73:9222:6a64 with SMTP id a640c23a62f3a-b7638d02056mr241902266b.3.1763549431096; Wed, 19 Nov 2025 02:50:31 -0800 (PST) Message-ID: <638d0954-e889-41ee-b277-282f83170c69@suse.com> Date: Wed, 19 Nov 2025 11:50:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 2/4] x86/MCE: restrict allocation of thermal and CMCI vector to BSP From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: 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: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1763549447452158500 Content-Type: text/plain; charset="utf-8" There's no need to do this for every AP; just do it once when setting up the BSP. Then both vector variables can also validly become ro-after-init. While touching intel_init_thermal(), constify its 1st parameter, which in turn requires touching intel_thermal_supported() as well. Signed-off-by: Jan Beulich --- This contextually (but not functionally) collides with "x86/MCE: adjust S3 resume handling". --- a/xen/arch/x86/cpu/mcheck/mce.c +++ b/xen/arch/x86/cpu/mcheck/mce.c @@ -37,7 +37,7 @@ bool is_mc_panic; DEFINE_PER_CPU_READ_MOSTLY(unsigned int, nr_mce_banks); unsigned int __read_mostly firstbank; unsigned int __read_mostly ppin_msr; -uint8_t __read_mostly cmci_apic_vector; +uint8_t __ro_after_init cmci_apic_vector; bool __read_mostly cmci_support; =20 /* If mce_force_broadcast =3D=3D 1, lmce_support will be disabled forcibly= . */ --- a/xen/arch/x86/cpu/mcheck/mce_intel.c +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c @@ -87,7 +87,7 @@ static void cf_check intel_thermal_inter } =20 /* Thermal monitoring depends on APIC, ACPI and clock modulation */ -static bool intel_thermal_supported(struct cpuinfo_x86 *c) +static bool intel_thermal_supported(const struct cpuinfo_x86 *c) { if ( !cpu_has_apic ) return false; @@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in } =20 /* P4/Xeon Thermal regulation detect and init */ -static void intel_init_thermal(struct cpuinfo_x86 *c) +static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp) { uint64_t msr_content; uint32_t val; int tm2 =3D 0; unsigned int cpu =3D smp_processor_id(); - static uint8_t thermal_apic_vector; + static uint8_t __ro_after_init thermal_apic_vector; =20 if ( !intel_thermal_supported(c) ) return; /* -ENODEV */ @@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp return; /* -EBUSY */ } =20 - alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt= ); + if ( bsp ) + alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_inter= rupt); =20 /* The temperature transition interrupt handler setup */ val =3D thermal_apic_vector; /* our delivery vector */ @@ -667,7 +668,7 @@ static void cf_check cmci_interrupt(void mctelem_dismiss(mctc); } =20 -static void intel_init_cmci(struct cpuinfo_x86 *c) +static void intel_init_cmci(struct cpuinfo_x86 *c, bool bsp) { u32 l, apic; int cpu =3D smp_processor_id(); @@ -687,7 +688,8 @@ static void intel_init_cmci(struct cpuin return; } =20 - alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt); + if ( bsp ) + alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt); =20 apic =3D cmci_apic_vector; apic |=3D (APIC_DM_FIXED | APIC_LVT_MASKED); @@ -993,9 +995,9 @@ enum mcheck_type intel_mcheck_init(struc =20 intel_init_mce(bsp); =20 - intel_init_cmci(c); + intel_init_cmci(c, bsp); =20 - intel_init_thermal(c); + intel_init_thermal(c, bsp); =20 intel_init_ppin(c); From nobody Sun Dec 14 05:56:49 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=1763549468; cv=none; d=zohomail.com; s=zohoarc; b=MRd3NFNPjgfbSoeAnP3CLSh/iqzT1UfFsw1Gw1gGzbV56ac45+ojDK3RND8qTYoLHU7GD2PPMjO5j3v9zJzZnj/R2aZyiP4W7QDzH9J79gHa6rRwA/ov5UaWQNX73thtmP1mV1OwCTL3BVpSNyURWz6/zlLRBk6n4vdAS5w951Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763549468; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eRIw90P1ahcneHzGRMqLxQ5Dx5L/DYU6UEQ17i/AD+g=; b=UxUdg1qaNeIiEVknv94nsNTnESeo4OVXDWYbBbjtTD8wv+vQw5ZiQer2htA9Fl+0fXGfEfXpIRHp8f++n8MOEf+23DM3wzfNg0G1VpMg8K0dd4DBMTCxVuTdp9xvT5t48WEOKN+xuSESn/G+2hCMBf3zlx/8goq5rH5TFNyuy+4= 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 1763549468136553.0020511857086; Wed, 19 Nov 2025 02:51:08 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1165771.1492464 (Exim 4.92) (envelope-from ) id 1vLflz-00046f-IQ; Wed, 19 Nov 2025 10:50:51 +0000 Received: by outflank-mailman (output) from mailman id 1165771.1492464; Wed, 19 Nov 2025 10:50:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vLflz-00046A-Fa; Wed, 19 Nov 2025 10:50:51 +0000 Received: by outflank-mailman (input) for mailman id 1165771; Wed, 19 Nov 2025 10:50:49 +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 1vLflx-0003Dg-JX for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:50:49 +0000 Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com [2a00:1450:4864:20::635]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 9be3f6e7-c535-11f0-9d18-b5c5bf9af7f9; Wed, 19 Nov 2025 11:50:48 +0100 (CET) Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b73161849e1so1208365366b.2 for ; Wed, 19 Nov 2025 02:50:48 -0800 (PST) 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-b734fa80bf5sm1616900566b.3.2025.11.19.02.50.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Nov 2025 02:50:47 -0800 (PST) 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: 9be3f6e7-c535-11f0-9d18-b5c5bf9af7f9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1763549448; x=1764154248; 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=eRIw90P1ahcneHzGRMqLxQ5Dx5L/DYU6UEQ17i/AD+g=; b=EKOJLhcqmTjoGEfPNDGekkVV3GMrM8XutPH5ygp+PgbvsvDpZVp41ovXdP0r/oSDtk m9c2ovprDXh9jOvTEjZ21Pq+MK4TspzIXGPQbtJsKgk30QTGxyaqonb4g4PvnjVolZ7x AK9BT5RoI0UaT5Za1BHOVHT7f+h9r1Kfvyj2vEG3Wwnc8ZeIOy05otxlJMMkxd83AG7N IIcrvNKblQHcgvDoI+eaG5/i9x1mcfTxHmC3yEfgKrVLXnwglF2T/kwW0ladfejoDFkx ZyBqmxyCCJ/063Co1mwCSKOckSoWgOk9d6+bJpXHlankZ/B3KUtWjbWB4MNj7dLrjtRu Anww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763549448; x=1764154248; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=eRIw90P1ahcneHzGRMqLxQ5Dx5L/DYU6UEQ17i/AD+g=; b=MulAyCXphTqPYrs+YS+lUr0K30UAzk3NZsQeWS+Evl6e5cKgye3OqH2yis3AEJxBbE H+Tmaddjs0OkETEgtnoIRt/KgBSfblNiTQFVnLx9k6S55BUG3r6ouzGfjitteRpDt5SD 0hAPGrel7NXPwALtTrvlUwXQ5GHbnBJTzvBXswoxHTXR0bGXS3C1uNd9rrgvRRn6hCCh YO2ok6X1foy5J6jWUJMAkEiYuW2LsfHA4nqci29DuFi5nG8QMda3Np1SIm0PnG0GpYuo kxkYeZHZgk5nnEORHkmc93HQz9qr0v+eRUg7wTGeEqzv4IzlnKnheOqFJcjxUF51lIz1 nu0g== X-Gm-Message-State: AOJu0YyWNFr0F7QF/3q9txpIUKhg1hqe5TY4KlExoXGny0Axn6VVjDSx 76/cCZ0xgYqjyD7BLSH0vkyiCwIEdm1pur4T8kaXHTmUNTEpWpyp61Sy3F3olfziT+RN0pPxmp9 MRpc= X-Gm-Gg: ASbGncsT5LUzQ1kl+p6wfGdXYwB8q1NAcFBQTorRYvgpwdbDANaPqAFXkMdXCDr3aYR RhoRIrh6kgt/KO6jiqB1PCauVCyTp3l6whVS/S7J8LQoMa7QvJbCF3AMckXRE9omvM+8ujk9tEl rmieiDOXKx60otLRcQCVRB9T8PYiHgoLX6FE+JgoTa5c77JSahGAyupBSqbnJ70CtCjot67OE81 PIO/1i/uNiGAJS0KIXBVeqetj7m/gN80jWbQmMhQoSjG/8CPZ5V4X5VkDF9UPwqcC5lMFXKvASR P5ftSI78RslA4wLGF3Dam4mXcveQYS9ZmcgAL020+/sVi6rmF7zLLDsmFUmEd0vI20ad5sDy5KH 2DLArPLXHUhrC6KpVYkEgCGE7/yR7/LiStgI1w68Iu93IOm/+5ME+yR+oay8PEvQEUK1m5ylGW/ 4fNQgNK7nrluNXsvkTZxA9g6B+bozV5Hcm5qzQY/6UqD8F0zXElnRD/HeoJnVQb7GIg9VlpbhX4 YlhriZ67UZwCxz66+OY+NbJ X-Google-Smtp-Source: AGHT+IH5Debcdi1hBvibEqbG4IgnnstzobN5hsYPDLb/0BEFtc6X1L4wNV9cXEsV54VeOfBtNuurNg== X-Received: by 2002:a17:907:3f99:b0:b73:3f7d:3df with SMTP id a640c23a62f3a-b76379a1cf0mr198206866b.41.1763549448161; Wed, 19 Nov 2025 02:50:48 -0800 (PST) Message-ID: <3d412bdf-e053-44f2-b51a-300f9cb3e775@suse.com> Date: Wed, 19 Nov 2025 11:50:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 3/4] x86/IRQ: direct-APIC-vector setting is now init-only From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: 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: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1763549469733153000 Content-Type: text/plain; charset="utf-8" With all callers of alloc_direct_apic_vector() now being limited to BSP setup, it and its helpers (whose other callers have already been init- only) can become __init. As a result data items can be adjusted, too. Signed-off-by: Jan Beulich --- Question is whether with this the "if (*vector =3D=3D 0)" in alloc_direct_apic_vector() is of much use anymore. --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -970,22 +970,22 @@ void pirq_set_affinity(struct domain *d, DEFINE_PER_CPU(unsigned int, irq_count); static DEFINE_PER_CPU(bool, check_eoi_deferral); =20 -uint8_t alloc_hipriority_vector(void) +uint8_t __init alloc_hipriority_vector(void) { - static uint8_t next =3D FIRST_HIPRIORITY_VECTOR; + static uint8_t __initdata next =3D FIRST_HIPRIORITY_VECTOR; BUG_ON(next < FIRST_HIPRIORITY_VECTOR); BUG_ON(next > LAST_HIPRIORITY_VECTOR); return next++; } =20 -static void (*direct_apic_vector[X86_IDT_VECTORS])(void); -void set_direct_apic_vector(uint8_t vector, void (*handler)(void)) +static void (*__ro_after_init direct_apic_vector[X86_IDT_VECTORS])(void); +void __init set_direct_apic_vector(uint8_t vector, void (*handler)(void)) { BUG_ON(direct_apic_vector[vector] !=3D NULL); direct_apic_vector[vector] =3D handler; } =20 -void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void)) +void __init alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void= )) { static DEFINE_SPINLOCK(lock); From nobody Sun Dec 14 05:56:49 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=1763549480; cv=none; d=zohomail.com; s=zohoarc; b=fA9OBEUtAEqfQcSBQmdERd/kdDNhJkfbh06pd8pA3+UoeHYCwvDskCah52ET4VRPFuUU5kt/3wB1BP9J/eDwYxunfWIw9vHvLYgizRaPghqe9+GFtSPjQd7b5ubqqjHVo4VgtZhjyzlKGEKMiUQRFBIJbduvVDLANwkT7/RZfIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763549480; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UtnZFSIGU7bG1vfdAcW2qaHOgH8mtrYWLBBQLVZWajw=; b=IiF3NA42EX88vBIrQJfydUN+7akBeDlzBEhwIIQnGnRpOJH1vFfEReEQ5hxvoogtMtfgX2gKFN/1KIyr0S0XhNhx+yWZqQ+7UkP9Un7M/NxtbZmofqo7y25gsKvof4yI0XgiqDtio2O+sTzaKPYmRY7GT1ybMn4zcOgi/KxSoUw= 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 1763549480346879.9715811692371; Wed, 19 Nov 2025 02:51:20 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1165786.1492475 (Exim 4.92) (envelope-from ) id 1vLfmI-0004cz-Ow; Wed, 19 Nov 2025 10:51:10 +0000 Received: by outflank-mailman (output) from mailman id 1165786.1492475; Wed, 19 Nov 2025 10:51:10 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vLfmI-0004cs-Lt; Wed, 19 Nov 2025 10:51:10 +0000 Received: by outflank-mailman (input) for mailman id 1165786; Wed, 19 Nov 2025 10:51:08 +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 1vLfmG-0003Dg-Kj for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:51:08 +0000 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [2a00:1450:4864:20::636]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a71dca3f-c535-11f0-9d18-b5c5bf9af7f9; Wed, 19 Nov 2025 11:51:07 +0100 (CET) Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-b736cd741c1so820364766b.0 for ; Wed, 19 Nov 2025 02:51:07 -0800 (PST) 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-b734fedb2eesm1580727666b.68.2025.11.19.02.51.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Nov 2025 02:51:06 -0800 (PST) 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: a71dca3f-c535-11f0-9d18-b5c5bf9af7f9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1763549467; x=1764154267; 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=UtnZFSIGU7bG1vfdAcW2qaHOgH8mtrYWLBBQLVZWajw=; b=JMDx/mazn8LOGl1CnahVgsdpLuwMZqvljBKmaKpeV2qxkDJEwMv7JE8MVt/cK8n+XK +onHGPCa/u9psOtq0jKc9fAueTxfD/hcltvytc3nU+NMn83hF1djsQq7m1IXaihwqffl ZAwasDOT92z5MQyn1MILi0rchPf+GQlMrqN6UBEwPxUp8vV2we7Egna1pya4efnJzBtP nTkkYwMgziT4D4Ekpp0QxBeMKbfKFdPsTxLuZcD8j/0+Eruj02rluMSIW7kBdsTWWXeO iZhuqHz6MbnWKxqS1OkVyNNwZ2B7AwIOn/6kjbQMvvORfUCBhTHCxADuZ4onRlQ3m0Ci +qng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763549467; x=1764154267; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UtnZFSIGU7bG1vfdAcW2qaHOgH8mtrYWLBBQLVZWajw=; b=SII/+GezYzHlKFMeOV/oYXNaG4ux9KI2tXmrqnxSwV5UvO+82h9DLzWo7uedNlIM17 DZNXmCid/u4xDdO4vJgbgUbF7X83h1v/2Jz62PhB3sqOf6SJ+nml3YxksgR7W55lTgaV 285nIjPHZJpD8dT5nv2mS74xlJtI2Q40qXwDxDxlP8ZLnbnm1YStcBeEj1OFj1pzTrJk 6CkkMlTH9xisVDA/j/MuCpAJet6myKOU+2uQYsQyBTUu+tsfEbaax6s9weCD/I8/cbF7 /7pyIAsR5jjCJS9GvrD/uBkthXJXBKd2M8Vaon5+JYDA0f4uShAbfXhdDLdO+Lr6aZ9t UdLw== X-Gm-Message-State: AOJu0YymXrUwoCUKOdmQ0Q8dXl3xKQFbMpSKiG0RpllTYttwW4CH4iwB LdcbkzWZxej/ZOHEU4yu0bX8qGCyVraanW/qoVg+pULy58tvwZrn4UIv/xzlKYztzQbmsiKFNvE 9XG4= X-Gm-Gg: ASbGnctuCuI1rGtXZIPTIffxClMwy8sm+5hUKDYd4YqR7EXJ6iiLBeebSN0D7OdgxXV QRybmDBNyDj5Y+VvU93GOojjgFipjMCjxISWUAw+uHygUnahbYpsIil6jsXhB+NQ34VEbEJyxgN l5uhi/pBofbOBVBO2+8azPwKvL4DB48Y5bSdhj9voWnpcma0bK/g9RlOfTPZwIWJidsjfqz+/Jp POqfQaspq1vokH8fQ2U6cK5zPEiZp71GAbFceTW0c/R7t0aDd7IkIkLKNyxXmXONReuBZJUsqA/ Z/5h40N//N4h1ZKpnGPJU+Tzy1kaLYdjItMOIGJX8dcY4HuGHmh7nlczL0S8HXFn7qIt6RlgYUj UcrJWK2xYenFgz5lka5xAWP1hCD9YYhFvoE+l2Ooy57hks4pLk2F75Hv8aOXepr7WiekHWEFRr9 i3BrwCWDpu+HmG0fmn/ayAmkEljKXHsvo2IYuO1XNYSh4XpihKnLSN8GusBDigCeq27923rg0G1 dfAB6U23OZSmul0mb+6VpZ2 X-Google-Smtp-Source: AGHT+IE2WtzPthZ9szFJm6vcoB7pTMXSg78Zs6a7lb6QJzF8tCzGLaldMkWOBo/FvokuUh0HrOh19w== X-Received: by 2002:a17:906:c103:b0:b72:5bdf:6074 with SMTP id a640c23a62f3a-b7637897967mr247384266b.20.1763549467155; Wed, 19 Nov 2025 02:51:07 -0800 (PST) Message-ID: <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com> Date: Wed, 19 Nov 2025 11:51:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 4/4] x86/vPMU: don't statically reserve the interrupt vector From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= References: 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: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1763549481930153000 Content-Type: text/plain; charset="utf-8" Move the setup to vPMU code, doing the allocation of a vector only when one is actually going to be needed. With that the handler function also doesn't need to be split across two places anymore. Add the freed up vector to the dynamically allocatable range. Signed-off-by: Jan Beulich --- In case down the road we also want to have a build mode with vPMU code excluded, this may also simplify things a little there. --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi entries[3], entries[2], entries[1], entries[0]); } =20 -/* - * This interrupt handles performance counters interrupt - */ - -static void cf_check pmu_interrupt(void) -{ - ack_APIC_irq(); - vpmu_do_interrupt(); -} - void __init apic_intr_init(void) { smp_intr_init(); @@ -1333,9 +1323,6 @@ void __init apic_intr_init(void) /* IPI vectors for APIC spurious and error interrupts */ set_direct_apic_vector(SPURIOUS_APIC_VECTOR, spurious_interrupt); set_direct_apic_vector(ERROR_APIC_VECTOR, error_interrupt); - - /* Performance Counters Interrupt */ - set_direct_apic_vector(PMU_APIC_VECTOR, pmu_interrupt); } =20 /* --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -40,6 +40,8 @@ static struct arch_vpmu_ops __initdata v static DEFINE_SPINLOCK(vpmu_lock); static unsigned vpmu_count; =20 +static uint8_t __ro_after_init pmu_apic_vector; + static DEFINE_PER_CPU(struct vcpu *, last_vcpu); =20 static int __init cf_check parse_vpmu_params(const char *s) @@ -94,7 +96,7 @@ void vpmu_lvtpc_update(uint32_t val) =20 vpmu =3D vcpu_vpmu(curr); =20 - vpmu->hw_lapic_lvtpc =3D PMU_APIC_VECTOR | (val & APIC_LVT_MASKED); + vpmu->hw_lapic_lvtpc =3D pmu_apic_vector | (val & APIC_LVT_MASKED); =20 /* Postpone APIC updates for PV(H) guests if PMU interrupt is pending = */ if ( has_vlapic(curr->domain) || !vpmu->xenpmu_data || @@ -160,7 +162,7 @@ static inline struct vcpu *choose_hwdom_ return hardware_domain->vcpu[idx]; } =20 -void vpmu_do_interrupt(void) +static void cf_check vpmu_interrupt(void) { struct vcpu *sampled =3D current, *sampling; struct vpmu_struct *vpmu; @@ -169,6 +171,8 @@ void vpmu_do_interrupt(void) uint32_t vlapic_lvtpc; #endif =20 + ack_APIC_irq(); + /* * dom0 will handle interrupt for special domains (e.g. idle domain) o= r, * in XENPMU_MODE_ALL, for everyone. @@ -369,7 +373,7 @@ void vpmu_save(struct vcpu *v) =20 vpmu_reset(vpmu, VPMU_CONTEXT_SAVE); =20 - apic_write(APIC_LVTPC, PMU_APIC_VECTOR | APIC_LVT_MASKED); + apic_write(APIC_LVTPC, pmu_apic_vector | APIC_LVT_MASKED); } =20 int vpmu_load(struct vcpu *v, bool from_guest) @@ -432,7 +436,7 @@ static int vpmu_arch_initialise(struct v return ret; } =20 - vpmu->hw_lapic_lvtpc =3D PMU_APIC_VECTOR | APIC_LVT_MASKED; + vpmu->hw_lapic_lvtpc =3D pmu_apic_vector | APIC_LVT_MASKED; vpmu_set(vpmu, VPMU_INITIALIZED); =20 return 0; @@ -860,6 +864,8 @@ static int __init cf_check vpmu_init(voi register_cpu_notifier(&cpu_nfb); printk(XENLOG_INFO "VPMU: version " __stringify(XENPMU_VER_MAJ) "." __stringify(XENPMU_VER_MIN) "\n"); + + alloc_direct_apic_vector(&pmu_apic_vector, vpmu_interrupt); } else { --- a/xen/arch/x86/include/asm/irq-vectors.h +++ b/xen/arch/x86/include/asm/irq-vectors.h @@ -8,13 +8,12 @@ #define EVENT_CHECK_VECTOR 0xfc #define CALL_FUNCTION_VECTOR 0xfb #define LOCAL_TIMER_VECTOR 0xfa -#define PMU_APIC_VECTOR 0xf9 /* * High-priority dynamically-allocated vectors. For interrupts that * must be higher priority than any guest-bound interrupt. */ #define FIRST_HIPRIORITY_VECTOR 0xf1 -#define LAST_HIPRIORITY_VECTOR 0xf8 +#define LAST_HIPRIORITY_VECTOR 0xf9 /* IRQ0 (timer) is statically allocated but must be high priority. */ #define IRQ0_VECTOR 0xf0 =20 --- a/xen/arch/x86/include/asm/vpmu.h +++ b/xen/arch/x86/include/asm/vpmu.h @@ -99,7 +99,6 @@ static inline bool vpmu_are_all_set(cons =20 void vpmu_lvtpc_update(uint32_t val); int vpmu_do_msr(unsigned int msr, uint64_t *msr_content, bool is_write); -void vpmu_do_interrupt(void); void vpmu_initialise(struct vcpu *v); void vpmu_destroy(struct vcpu *v); void vpmu_save(struct vcpu *v);