From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 DD88DC369C2 for ; Tue, 22 Apr 2025 16:33:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:Subject:From:References:Cc :To:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GNTeGLZu0ue9DYA7cbpLGB/KOoqOF2UkmvCgFb3f8iU=; b=Lsw11pYPqynRsgWxfegW280/5i FJsi+B7jQuabZzSgD+5JhnUR6IKL9jI81JUpRKXoH825DaSWsnGNaAgvmAg5wngtz/hpVW/ICO3Vn 9SUxLiioAmwcgN7BtglCjlxLRG2KgDytN4l9wRCXtbKqdcYz+XES2seIBxGVWkoKb1t4ILYPRG2ee a9qYmIzjmpnZN19ijIbpe6KbVAIKXne2sJZkIFqFPHLeHY+O1jbYsOM6t85AM7i6yQ20bmwcdryYe vACW7S0K70XlaMXJMxm5mtVr/wgK3qwdA9NDcp9NlQ7OL1JURQ7W27+7KZAnCo2VpNhfVFu8/UF3w r50MfNfg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u7GYk-00000007vJm-1I6Z; Tue, 22 Apr 2025 16:33:22 +0000 Received: from mail-mw2nam12on20606.outbound.protection.outlook.com ([2a01:111:f403:200a::606] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u7F0S-00000007Zvs-138P for kexec@lists.infradead.org; Tue, 22 Apr 2025 14:53:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bhkQs2R3lzVPAvtm///FO12sRHhl0WZseIUJrPoCiTKQz4LnwM/0PprmlaChyqWCp/GCU4WRhMagzbgKZf40bMs6u14f9G7ArnC1VsKh7wbSFkySRSPYeocVRJRqfl6DCDD4YaJMMIgG9YSiakrGBBNQI0H6RNKopl8x6mQ/K84Yk1hdFbyd+AeS9QpGShheCxwSsY3SXWTsD6h9Y/ffKtdFw1kNJFOAWcrQ1/8glB4kMF50muGarOIDT9szWais9hitr7viubgxObNhMByhOe+XGW9rx9NeXOveezjCynJijkwz3P6IBaoDNxl0eTnGv2qVUNB4hTThu241xGISBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GNTeGLZu0ue9DYA7cbpLGB/KOoqOF2UkmvCgFb3f8iU=; b=AgToRwLGdsWpVbNLG7TFIHmnG5eA2PdbTGNAJzGqzOevCuEEbceGmpCY2bRPjimziMUblhVx9eZrzmJEkVQzqnVKBp0AmYNe4876G9HQNKIuDUrn1qM0Ej4HfUDg7czRyRNesWSZD5Kw1BWs/Wr4G1S2X5/BrUtS1DXlXlvuzDEjUqI0Lt2G3G2p1Hk4jQZT3oqKoJn5v3skvv4v/2tZRFQVTTEb5iNHcIgDXLLIFnJbdjI0aYF/DjgYhN4B0x71hKbbGrm9T4aX0mG54OPVqqecZ8BEp/Jf4M9oC53fdm1sdSVG9tBrOCBhPY/PmJkk5I3KJeMjIRGWNoJ3gyoAUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GNTeGLZu0ue9DYA7cbpLGB/KOoqOF2UkmvCgFb3f8iU=; b=ZIobQ8pYNcJ+GdJu/Z5QUezyg0OOgAxLJpN5LfgbbKa3yfNPo7bR3kCgxN1nRYAn2shCVNXLN/gr505DJm+FAXWVBotcwQj0Ywb25/aHvATDx2lB/B6Dyg7pOapIGRnLs6D9k5vBm85ARE+cYrLWmroyBKlgej21vfJ5+WdPBQc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) by CY5PR12MB9056.namprd12.prod.outlook.com (2603:10b6:930:34::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Tue, 22 Apr 2025 14:53:47 +0000 Received: from DM4PR12MB5070.namprd12.prod.outlook.com ([fe80::20a9:919e:fd6b:5a6e]) by DM4PR12MB5070.namprd12.prod.outlook.com ([fe80::20a9:919e:fd6b:5a6e%5]) with mapi id 15.20.8678.021; Tue, 22 Apr 2025 14:53:47 +0000 Message-ID: <787ce95c-2d7c-b005-6b6b-c379f0a9f603@amd.com> Date: Tue, 22 Apr 2025 09:53:44 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Content-Language: en-US To: Ashish Kalra , tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com, x86@kernel.org, bp@alien8.de, hpa@zytor.com Cc: kees@kernel.org, michael.roth@amd.com, nikunj@amd.com, seanjc@google.com, ardb@kernel.org, gustavoars@kernel.org, sgarzare@redhat.com, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, kexec@lists.infradead.org, linux-coco@lists.linux.dev References: <20250421204453.318557-1-Ashish.Kalra@amd.com> From: Tom Lendacky Subject: Re: [PATCH] x86/sev: Fix SNP guest kdump hang/softlockup/panic In-Reply-To: <20250421204453.318557-1-Ashish.Kalra@amd.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SA9PR13CA0053.namprd13.prod.outlook.com (2603:10b6:806:22::28) To DM4PR12MB5070.namprd12.prod.outlook.com (2603:10b6:5:389::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5070:EE_|CY5PR12MB9056:EE_ X-MS-Office365-Filtering-Correlation-Id: 16b75caa-754c-4ff9-6585-08dd81ad7c4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?REJaZzBpTXdTNUdMNE84RFNXcFJrSHZEM1c0ckZqYS90QWY5dnRUTzM4d2Ns?= =?utf-8?B?QzRLZk41L2xBdDZEV1lSaElxWGhMbWxGZzZtcCszS1BhdHNXNlV6amJhQm05?= =?utf-8?B?YjZtQlFtL2U1WC9xRWNQTW43WWR4Tk9RU3hZeGN6Z096SmoxejZFcy9QWEhQ?= =?utf-8?B?ZEJqTXFjcThvQWJBMTMxZFpUZXFsOFhXWnZoa0NnSmVlbVoyby8ydUNnYkhO?= =?utf-8?B?QUhKOGhicWRpOUptdUdQaE5pZGxvZ0ZLbE9TTzZoTkJyclFieDl5K2RlTE1O?= =?utf-8?B?anYxWXVoTXp2emZLSFl5aVU2QktjMGlRWGV4UTBDSnJkNFhYcGVpUS9YRUx4?= =?utf-8?B?QkJSbWozdVVVY0hQcXVDdXlwelppMmZ3TmZlSTdtTWlvY3VPeXdyYmhkeFFm?= =?utf-8?B?Y0xkL2ZnY3R1RXNZZklDS2NWMG4yVEcvS2EyRUpqbVNJd1dlVkRPWW9VZ3pO?= =?utf-8?B?L1FCZTcxWHh1RFhqWnpocU1jaEYxZm1ReTdxekdNeldNVURmZ29LK1haU2Qw?= =?utf-8?B?RXdpNzcxdDhjSlBRL290UmlWMzRGVU8wVUMyU3V4d0dzaitUZHROanRqQkd0?= =?utf-8?B?Q2liQ2gxL1FXM0RzbUgrNnBMYzNWMjZNOUlteWJKV1BlWDJYVDgzZWREbEhM?= =?utf-8?B?ZzE5WU1rMmlDNGhJSS8vVm1PV1Y4WkM3ZGVkOWFiTi9wRER1ZFdTZVFNTXVJ?= =?utf-8?B?Y2U4YkJYNks2MzBQYXVQcFc1b1BWaGozalM5K1FHU3Z3eVZEWHhUMHZpL2d5?= =?utf-8?B?MmZuNlIyakVzdWZBdmlQTHZhQ0hwTnltUC9vYWIrRjN1VmNucHZ4d0F1alNv?= =?utf-8?B?NTZFN2ZKZzZzQ0RveGg3LzJQKzc1YmxoVEJKbjAxVTJ3WTVNazN5RmxTVThr?= =?utf-8?B?T1hEdTNsQ1VzbXdyUHR1cGpPdTdNVDBEWmFkYWFhUHNBR3BnaWo5YUxWbHk3?= =?utf-8?B?R2pwQXh6Zk9wTGdkazNUNkdKR0NZT1p5TVkxS1NndEcxZUlXVytqK29DYVZ5?= =?utf-8?B?dHZwenBReG50Q0pYQXp0QkkydEx6WnNmNVM3SEJRTzZzSWVwWUMzK2h0K2xl?= =?utf-8?B?L2RYOTgrSDZNRHpiS0IzSjllVVlic05HRGJ0cm1RMW02U0Y2WGN3SVdGWnFN?= =?utf-8?B?UmlRc2FyenpNUFpOMGpaSE44U1I4NWRseVc1cGEzZWQyczdsbFFEVlhERUZr?= =?utf-8?B?d25ydE83clZNV2FEK3hyZHJTbldkL3h4cm1rRlJlQ1ZZbGtCd0s2M2MvUWNU?= =?utf-8?B?eTF5b0dSR0UrcjM5bllXeUZHT1hDTzZ5WCtwVW90b3BpQklmWmE1c3MySXBB?= =?utf-8?B?NkJtQnkzS2tIY3NoclhoRmw2VWVVbVdDVzhUb3RuQVNwQ3Z1S2N4TmV1NVlO?= =?utf-8?B?aGlUNHZhRkU3TCtwc0hQRzVFMnRZMmlZY0UvU2VpVXdxQ3FwNXhyZGJiUVVR?= =?utf-8?B?NjgvQ2tTREozakZQQkxISkdjOVRmZkdFQnZUUVdJalhkODNxajgvazRDKzBW?= =?utf-8?B?MEdNdkYzUHFxMkYvVGpldmRRZXErT1A0TVV2WWdUVG5Mc0F2ZXIwbzdTa3l0?= =?utf-8?B?aWZtbkxxcjZ4S1R5UmVucUx6T0x2a3V0UFFtTU1iWkpiQlZ0OXFFTEhoMHdy?= =?utf-8?B?UitSRzF2TGpYbFdkRWYvQi8rWCt0M3B2QVdTeU9BOXAxOWRtOVR1d25kdnA3?= =?utf-8?B?ODFSZHZCZFl4M2JZUTljOVlvcENyaUtSdktlaUxRNDg4aVJtd1BTSnB2Wk9N?= =?utf-8?B?SjZ5VVVBV1FzaWxRU0hRVzc2bHhuZFhZRDZFYm9hSWtiUjJBVE9Hc0ZKV0JK?= =?utf-8?B?ZEhERzBMYTc5djFoaS9sV1ErR2R4T2xyb2w5NCtQZ2k4elNNUVA3cEhDOEFv?= =?utf-8?B?Z2JvUGZZZ3RDendXNTlZVHJ3ais2R0U0YnpoQUxSeW9BM201S01tVmZDbFRa?= =?utf-8?Q?YXhzO6imsNU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5070.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d29MTWtBREtQbkttMWh0Z2hGYWI2NkxSS1orbGp3bjEvUWg2NEowNDZtQVZl?= =?utf-8?B?UkhrZHZMT2RDNXozck5FcVorQXRvMVVFREt0b1h0Q0lidnJEK3hKc1pTNlFE?= =?utf-8?B?UER6Nm1kZWtqSXBDUkFXa1UrQml2cHVZeVh6bmlMZUI1akV5RThwWDNWU3lN?= =?utf-8?B?czBxeGJ3WnlNYkxPSjQwT0ZubVhsVE84TnN4VytDT2dCRUtXUWloQlBnQ2Va?= =?utf-8?B?MkwxLzZBTytObktwdzQraHkwNVZ5NFh3MHpaeW41eEoxTU41dWRjRWtrNW12?= =?utf-8?B?eDNzekFUWDVsSi8yaFdtd2VOK0haRXAyeG8zWlFtUDh1OXRZTjJDSFFzS3lp?= =?utf-8?B?VXNGdkI0aEVxLy9YTEhKSXdOYTBSK2Jsc1FOL0ZzaW1YSW1mSUg3TC9Vd0E5?= =?utf-8?B?V0VYRkFTMkczcE9DMnQySzdFVWpIODdHRjFIY2FpcDcyaWR0ZnZZMFAzQU5k?= =?utf-8?B?Q1QwMFd2Z1RhMlNKemQwRjNLY2xERVZTRmhFR0I0dEZFVW55TjNaYXJoYW9Q?= =?utf-8?B?UDRHVWVzSFlHOUtZZUFJcTV4MVlXUCtNNUVYNGFZTTJucWtkVG5sL2pMeXZU?= =?utf-8?B?c012TmpWSHp4UWZwd3A1K1RrbktSdU1xeXUzeE5kdTZzaUxGaWpub1VFaWVj?= =?utf-8?B?OFpVNE02ays1NStFQWd6Slg5NG5qQ3RXL1R5dGFWZmxpTytvVkRlYVRiN2Nk?= =?utf-8?B?UFVvd3M0WCt0QysvdjhGYzhnUXV5SS95UExXMGxwSnpkUUpDMGlQWWVCSFpT?= =?utf-8?B?ZjZMTHMyalRpZWxwc2hKR1BzaE1DaW1vbmljanlUMlpxVEZOR0FPeCtUeVUr?= =?utf-8?B?bnM1ZU9DS1EwaDhRUmQ0YlJBd1VFUTBYS0pOWFErRk5FSHVyZmEwNFQyc2Jr?= =?utf-8?B?TWVOc2pKVVhJeWRUL05aVTVXcEpXWXZoRzdldzk1ai80Z1FQYStxTk1admtW?= =?utf-8?B?aUljdEh4NTNzYTJValpTRHlwcDR3MTR3WUJ3VXlCTkFJU1ZBNTYxWG04NFFS?= =?utf-8?B?THI0T2l2MTdoUHppTUgzVi9nN2lPVTRDL2JGbVIzdjZSZmNoZHJSSXlydk82?= =?utf-8?B?MkJQeEtXOWZjM3UwSCt5TWJ5M2lsSUpGSTE4SVJQVWFaN0FkUTdBczlEcitZ?= =?utf-8?B?cDFKNTU2QWVOb2N4TWtlWkFVelJWd1lpZ00rYW41eloyc2Z3NHdNQ2dXTmpY?= =?utf-8?B?QVZaZEdzR2ZueTVPbWVLUjRQd2NKdlg2cXBiRk1NTk5lZFZmTmF4QWdEMmg5?= =?utf-8?B?R1NpVWhvT0dKdE1tUXVJY0l0bnRqaEJzODU2eEFmUDlRNDFzVGMzQjRySytW?= =?utf-8?B?UmpLejlUN0JUYjY5T1JiYmdXRU1hYy84aW1DWmFjcElob3pxLzlUOGhqK3RR?= =?utf-8?B?dDhWdUVMT3dNYzNwY3BVVmwwVCtvenRMUUpHTzk2SCtjeGtRSHhLWFVmZHE2?= =?utf-8?B?Qy9Sb2lWak5QdkUwL3J5SGI4dUVjVGdRWWNoTzRMQ1JKTHRHNWNVTlV1MXBi?= =?utf-8?B?c2xCZ1hROEFkWFE1eGJ5QU9OTEdVSkdMYXF5TkF2QnpUOC9YL2pUV0xKRjZI?= =?utf-8?B?RXZvWStSeXkybHRuNWJSUjgrWkd2bzJtQ1VibnhySHA2VExYUVo1VXdkOXlE?= =?utf-8?B?c1ZpUnBlNmNTMytJSHZYM2RrdVZkbktRU3FIa0l0Vy96bk52Ris3WnpJcEpa?= =?utf-8?B?M2VRcjJzNm1YdVRrM044UnFlWHRqOTRCV3d2Mk9zQzNXTVJKajBzZG5rejJo?= =?utf-8?B?dDZ0RzFYVUxOVVppWDUxMmJhN25IeHhpckI3NnVSeXNHbFJiejVUVU1QWStJ?= =?utf-8?B?blB4ZFRydzVneDBwaTFCRzg5dlFkN1ZqaHhHUENRRHNEbGdVcThEYUZuaDRk?= =?utf-8?B?RzZpRGdPQXNxYXQ5RDRuQUU5N20zMFZFa2lWVUM3M0VLYkVLbW5PdlYvL0pv?= =?utf-8?B?ekZMa0VSZEtIVkU1cUE2QnB2THRBck50eGxBRldqU2V6N2JNdGFyUnFCbkRW?= =?utf-8?B?M2VUbCtLMTk0T0pra3p0dVN5K2hXZ2pyYWsyZEVkTlJkV01ZMWJKV0l3MVJV?= =?utf-8?B?YzVKWlVJaERBNjlUcUFnTHZQb09jaVhhcWpkRUJybkRyTFhEQVFjTi8wUmRs?= =?utf-8?Q?kuqSUifEkkQ4XjgkAsN0bpxgh?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16b75caa-754c-4ff9-6585-08dd81ad7c4e X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5070.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2025 14:53:47.3607 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OQOVyzGa80iW5SM4g4sHPFY4+fkgiZvotqXf9XiMqXK3p30KV1IDuukraFBvPb5LdQFlkWtA411QlMEN0NJJXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB9056 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250422_075352_300082_A73FDB6E X-CRM114-Status: GOOD ( 18.27 ) X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org On 4/21/25 15:44, Ashish Kalra wrote: > From: Ashish Kalra > No need to add to what Boris already said on the commit message and comments, so just looking at the code. > + > + /* > + * Issue AP destroy on all APs (to ensure they are kicked out > + * of guest mode) to allow using RMPADJUST to remove the VMSA > + * tag on VMSA pages especially for guests that allow HLT to > + * not be intercepted. > + */ > + > + local_irq_save(flags); > + > + ghcb = __sev_get_ghcb(&state); > + > + vc_ghcb_invalidate(ghcb); > + ghcb_set_rax(ghcb, vmsa->sev_features); > + > + /* Issue VMGEXIT AP Destroy NAE event */ > + > + ghcb_set_sw_exit_code(ghcb, SVM_VMGEXIT_AP_CREATION); > + ghcb_set_sw_exit_info_1(ghcb, > + ((u64)apic_id << 32) | > + ((u64)snp_vmpl << 16) | > + SVM_VMGEXIT_AP_DESTROY); > + ghcb_set_sw_exit_info_2(ghcb, __pa(vmsa)); > + > + sev_es_wr_ghcb_msr(__pa(ghcb)); > + VMGEXIT(); > + > + if (!ghcb_sw_exit_info_1_is_valid(ghcb) || > + lower_32_bits(ghcb->save.sw_exit_info_1)) { > + pr_err("SNP AP Destroy error\n"); > + local_irq_restore(flags); > + return; > + } > + > + __sev_put_ghcb(&state); > + > + local_irq_restore(flags); It looks like this whole block above is very similar to the block in wakeup_cpu_via_vmgexit(). It makes sense to create a single function that takes either SVM_VMGEXIT_AP_CREATE or SVM_VMGEXIT_AP_DESTROY as an argument and processes appropriately. > + > + snp_cleanup_vmsa(vmsa, apic_id); > + } > +} > + > void snp_kexec_finish(void) > { > struct sev_es_runtime_data *data; > @@ -987,6 +1088,8 @@ void snp_kexec_finish(void) > if (!IS_ENABLED(CONFIG_KEXEC_CORE)) > return; > > + sev_snp_shutdown_all_aps(); > + > unshare_all_memory(); > > /* > @@ -1254,6 +1357,8 @@ static int wakeup_cpu_via_vmgexit(u32 apic_id, unsigned long start_ip) > /* Record the current VMSA page */ > per_cpu(sev_vmsa, cpu) = vmsa; > > + per_cpu(sev_vcpu_apic_id, cpu) = apic_id; Is this really needed? Can't you use the cpuid_to_apicid array or create a function in the topology.c file to return the APIC ID? Thanks, Tom > + > return ret; > } >