From nobody Sun Feb 8 20:23:04 2026 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=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1710859704; cv=none; d=zohomail.com; s=zohoarc; b=Qpvk+hnrmdHIRyq3rC4scxrncOBjI8Ze6s1QYxSucfecxUJak8nDV48/Av6zfUkKxfLOUm0DByisJiDEktol9SHlfIaGRNjATFkPpSdBbNb3m8eUJKDxqItSHxZ31v7F7czhp0DiWlRbrbTL7Nb2csjkc77MdvL593+9sh+w/aU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710859704; 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=ICFn6HYHLdztYm+7ek+tVrqiDg89lcf+qeTaqhK3dQQ=; b=YTMmD25sJ+SmJOMONpBIdCakGp6qiwSh+IcQ96ydfqbnBcNYRY8+oYQ/0A1yFloiFoB02AvwCUf21nFujTQiGBz/1dzVJoq7UQdPAYAXL7KOSW2veOL/EziqsKxwwcdNEmyfks1fkuXWuvppW5U9StenaLWuF0/ENEsiShJZF3g= 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=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1710859704958488.0980073372914; Tue, 19 Mar 2024 07:48:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.695422.1085148 (Exim 4.92) (envelope-from ) id 1rmalA-0006gf-TS; Tue, 19 Mar 2024 14:48:12 +0000 Received: by outflank-mailman (output) from mailman id 695422.1085148; Tue, 19 Mar 2024 14:48:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rmalA-0006gW-Ql; Tue, 19 Mar 2024 14:48:12 +0000 Received: by outflank-mailman (input) for mailman id 695422; Tue, 19 Mar 2024 14:48:11 +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 1rmal9-0006Nt-61 for xen-devel@lists.xenproject.org; Tue, 19 Mar 2024 14:48:11 +0000 Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [2a00:1450:4864:20::229]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id b2d6c161-e5ff-11ee-a1ee-f123f15fe8a2; Tue, 19 Mar 2024 15:48:07 +0100 (CET) Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2d28051376eso93189501fa.0 for ; Tue, 19 Mar 2024 07:48:07 -0700 (PDT) Received: from andrewcoop.citrite.net (default-46-102-197-194.interdsl.co.uk. [46.102.197.194]) by smtp.gmail.com with ESMTPSA id xi8-20020a170906dac800b00a46af0fbe83sm3335059ejb.76.2024.03.19.07.48.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Mar 2024 07:48:05 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b2d6c161-e5ff-11ee-a1ee-f123f15fe8a2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1710859686; x=1711464486; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ICFn6HYHLdztYm+7ek+tVrqiDg89lcf+qeTaqhK3dQQ=; b=vA+H0DpVgIXq7cG0ogY8kgL4iQIwDwK35jDccpAj5GYxqVk0eoUmkvoiKGMTH3OmzD 7rkELJtae+DQoPRE5JUz0JJ6mYEkl0sEkbQEMpXBGBfytZgktUxD0xnK1Zk3ouiYPOc7 fVACjSze1tQ2jy4MnqnGC2FM28n3FPQPQoUDQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710859686; x=1711464486; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ICFn6HYHLdztYm+7ek+tVrqiDg89lcf+qeTaqhK3dQQ=; b=WugJ7tZYF4yWnt9eHzP7xs3I6w70lTwRukW77h2d1c4TLHzSXo73R3EN19qGoyhsVR Abxgba2OubjF44iYBUFk7uRpbD5+EM4nem7Tby3ukFX6lMfop+x2Gzmf7MGG0QWoybWV PGxrdSKV4+etkaUUAGm0U8SpWFrnkc0Ii+KjtiQPyMoF6pyb015JRiVwhZIcR26Ly084 Y/taDLEPyie0+DIzD1ZZnlZPiIQzvdC8ycfNbA5TfUaSBBo2d4MwZ2/6iy2UF7tS+j4p idxT+aQVrVbAgBlee3sePGMBjhNjm2ibzUjAtJUeY5Geupe9dB7X2vaJoE9GaJoWIbpq EySQ== X-Gm-Message-State: AOJu0Yyi/Sat+RaQA2S8dTabHz6Ur7Z6hY55DK/F3Cyi3zI8ctOEbZ8Z LKTkMYn5khvbQ8yKEVD3VxfUIAwokysRCUKJS0CuEgZzHiN5WguSe+HINGPBbC+Iwt9gY++nHOX D X-Google-Smtp-Source: AGHT+IF5i5JE7N6DFA/B6ja5buYfxvVRqAa9umaE58q7GRlamTXFyPIexgPfCbnLDlBLo5TAMLMR0w== X-Received: by 2002:a05:651c:50f:b0:2d4:6d56:4aa9 with SMTP id o15-20020a05651c050f00b002d46d564aa9mr10785801ljp.33.1710859685932; Tue, 19 Mar 2024 07:48:05 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH 1/2] x86/boot: Fix setup_apic_nmi_watchdog() to fail more cleanly Date: Tue, 19 Mar 2024 14:48:01 +0000 Message-Id: <20240319144802.3894710-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20240319144802.3894710-1-andrew.cooper3@citrix.com> References: <20240319144802.3894710-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1710859707126100001 Right now, if the user requests the watchdog on the command line, setup_apic_nmi_watchdog() will blindly assume that setting up the watchdog worked. Reuse nmi_perfctr_msr to identify when the watchdog has been set u= p. Rearrange setup_p6_watchdog() to not set nmi_perfctr_msr until the sanity checks are performed. Turn setup_p4_watchdog() into a void function, match= ing the others. If the watchdog isn't set up, inform the user and override to NMI_NONE, whi= ch will prevent check_nmi_watchdog() from claiming that all CPUs are stuck. e.g.: (XEN) alt table ffff82d040697c38 -> ffff82d0406a97f0 (XEN) Failed to configure NMI watchdog (XEN) Brought up 512 CPUs (XEN) Scheduling granularity: cpu, 1 CPU per sched-resource Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 This is all horrible code. --- xen/arch/x86/nmi.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c index 8994c50cb5e4..33f77a92047f 100644 --- a/xen/arch/x86/nmi.c +++ b/xen/arch/x86/nmi.c @@ -319,8 +319,6 @@ static void setup_p6_watchdog(unsigned counter) { unsigned int evntsel; =20 - nmi_perfctr_msr =3D MSR_P6_PERFCTR(0); - if ( !nmi_p6_event_width && current_cpu_data.cpuid_level >=3D 0xa ) nmi_p6_event_width =3D MASK_EXTR(cpuid_eax(0xa), P6_EVENT_WIDTH_MA= SK); if ( !nmi_p6_event_width ) @@ -330,6 +328,8 @@ static void setup_p6_watchdog(unsigned counter) nmi_p6_event_width > BITS_PER_LONG ) return; =20 + nmi_perfctr_msr =3D MSR_P6_PERFCTR(0); + clear_msr_range(MSR_P6_EVNTSEL(0), 2); clear_msr_range(MSR_P6_PERFCTR(0), 2); =20 @@ -345,13 +345,13 @@ static void setup_p6_watchdog(unsigned counter) wrmsr(MSR_P6_EVNTSEL(0), evntsel, 0); } =20 -static int setup_p4_watchdog(void) +static void setup_p4_watchdog(void) { uint64_t misc_enable; =20 rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable); if (!(misc_enable & MSR_IA32_MISC_ENABLE_PERF_AVAIL)) - return 0; + return; =20 nmi_perfctr_msr =3D MSR_P4_IQ_PERFCTR0; nmi_p4_cccr_val =3D P4_NMI_IQ_CCCR0; @@ -374,13 +374,12 @@ static int setup_p4_watchdog(void) clear_msr_range(0x3E0, 2); clear_msr_range(MSR_P4_BPU_CCCR0, 18); clear_msr_range(MSR_P4_BPU_PERFCTR0, 18); - =20 + wrmsrl(MSR_P4_CRU_ESCR0, P4_NMI_CRU_ESCR0); wrmsrl(MSR_P4_IQ_CCCR0, P4_NMI_IQ_CCCR0 & ~P4_CCCR_ENABLE); write_watchdog_counter("P4_IQ_COUNTER0"); apic_write(APIC_LVTPC, APIC_DM_NMI); wrmsrl(MSR_P4_IQ_CCCR0, nmi_p4_cccr_val); - return 1; } =20 void setup_apic_nmi_watchdog(void) @@ -395,8 +394,6 @@ void setup_apic_nmi_watchdog(void) case 0xf ... 0x19: setup_k7_watchdog(); break; - default: - return; } break; case X86_VENDOR_INTEL: @@ -407,14 +404,16 @@ void setup_apic_nmi_watchdog(void) : CORE_EVENT_CPU_CLOCKS_NOT_HALTED); break; case 15: - if (!setup_p4_watchdog()) - return; + setup_p4_watchdog(); break; - default: - return; } break; - default: + } + + if ( nmi_perfctr_msr =3D=3D 0 ) + { + printk(XENLOG_WARNING "Failed to configure NMI watchdog\n"); + nmi_watchdog =3D NMI_NONE; return; } =20 --=20 2.30.2 From nobody Sun Feb 8 20:23:04 2026 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=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1710859703; cv=none; d=zohomail.com; s=zohoarc; b=DfuaE8UissjOwYpi1H6bbvYEGpCB7tjBnq0V7kXOULO1bNMk7r5Uk8oRoJht6vKy270f+sYweYzN+KVOnzFi9IOD4ICp38qOF1dEKtYqV07JYCcY4M3jezrYKEoqwUxRu4timXzpUAGPOF8ate7MWhdv4lsNP2QZFXIJctQu2wk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710859703; 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=Eaw7etip514ivjOH3GhsXOD2/5lNzqfhjxpPNlIaVtY=; b=bJ0rS629zUPW3E1esY+1FVHuF8GFgP3pbcJ0wCYYLOBhSQAMbVJG9nPkjdP0X5o9IRb081qeUCrRAjlTKDKC78XATIzwJeXyIp2/RjsygMY8O5/tkdYZ//0Ug9ST8e5nj4wfpshXOVNHmbPuJhDZpNJfPJ0ehkWZC6azt3MOIAA= 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=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 171085970376716.326589201256297; Tue, 19 Mar 2024 07:48:23 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.695421.1085138 (Exim 4.92) (envelope-from ) id 1rmal7-0006O9-MH; Tue, 19 Mar 2024 14:48:09 +0000 Received: by outflank-mailman (output) from mailman id 695421.1085138; Tue, 19 Mar 2024 14:48: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 1rmal7-0006Nw-IR; Tue, 19 Mar 2024 14:48:09 +0000 Received: by outflank-mailman (input) for mailman id 695421; Tue, 19 Mar 2024 14:48: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 1rmal6-0005fD-Sb for xen-devel@lists.xenproject.org; Tue, 19 Mar 2024 14:48:08 +0000 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [2a00:1450:4864:20::131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b3598bfe-e5ff-11ee-afdd-a90da7624cb6; Tue, 19 Mar 2024 15:48:08 +0100 (CET) Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-51381021af1so8201708e87.0 for ; Tue, 19 Mar 2024 07:48:08 -0700 (PDT) Received: from andrewcoop.citrite.net (default-46-102-197-194.interdsl.co.uk. [46.102.197.194]) by smtp.gmail.com with ESMTPSA id xi8-20020a170906dac800b00a46af0fbe83sm3335059ejb.76.2024.03.19.07.48.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Mar 2024 07:48:06 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b3598bfe-e5ff-11ee-afdd-a90da7624cb6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=google; t=1710859686; x=1711464486; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Eaw7etip514ivjOH3GhsXOD2/5lNzqfhjxpPNlIaVtY=; b=Z30m6RQoRuYn1d6NjJl23Xvx++bBlWtCpSfy2XgcdJsaCSBENWKU6wkeyVNLkWCPED X+gaF9a/e5ZncozNy4QOMt51dpQDC7rqmvVTKORmJO/TFEoICmr+/qALTQa9bzf8kWeJ grtcfWQGlIwPFB/pjFoemHiOuCDU2MY8QUuC4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710859686; x=1711464486; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Eaw7etip514ivjOH3GhsXOD2/5lNzqfhjxpPNlIaVtY=; b=d+Cy6g6suiU5ikSSdx9nyxnUVqfE5sUc3bzHyR7xxqFz/iEgn8lEpNyORFUQ+K8aJG GmTqevwa1rLlBthlC2xo2c4E/CWDUBgIx51qbXDfPTswju3pLU1czAbVZWBDsUo0+Wi3 1F/AJjvQB09IMHl+gc4rGuF23BaeVj2oLlgEnvltc/WiQESqaDhExYTU0nuqwmakrVZ6 7psPP3Uulh75lqEilg0B4QXGl+uGglBtBg1iqYqGWTMANSMRQB6/0MghZ+Zt6XCJA6OT /U11uBY/MDMMuq/TzuMAJs4VD8LRhPegWhG0uFUa8DNtPST0wXqO5Q0NR+K52nhs5Ajf csag== X-Gm-Message-State: AOJu0Yy2APYuwgKw9jH6itsWXXM8DPy0j4oqEHrjYVJM3vyXHBiwpOz8 jf9cHJb7jF9LYjKPiXb5kSVf2+o9sUYDJI5pFGw1GCO2XrhJGTfIYbmi9HSAE6t66zaPYsTtlnc t X-Google-Smtp-Source: AGHT+IFSwPYDc0ZA0xloOcC4DmRiqr+2k2oSPeyuavUrZ8xRya4nQ0h+DcfqTzDeEeb5R85aZ6DvEw== X-Received: by 2002:ac2:5e9d:0:b0:513:cb89:82c1 with SMTP id b29-20020ac25e9d000000b00513cb8982c1mr7959551lfq.43.1710859686557; Tue, 19 Mar 2024 07:48:06 -0700 (PDT) From: Andrew Cooper To: Xen-devel Cc: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH 2/2] x86/boot: Support the watchdog on newer AMD systems Date: Tue, 19 Mar 2024 14:48:02 +0000 Message-Id: <20240319144802.3894710-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20240319144802.3894710-1-andrew.cooper3@citrix.com> References: <20240319144802.3894710-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1710859704727100001 The MSRs used by setup_k7_watchdog() are architectural in 64bit. The Unit Select (0x76, cycles not in halt state) isn't, but it hasn't changed in 23 years, making this a trend likely to continue. Drop the family check. If the Unit Select does happen to change meaning in the future, check_nmi_watchdog() will still notice the watchdog not operati= ng as expected. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 --- xen/arch/x86/nmi.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c index 33f77a92047f..f6329cb0270e 100644 --- a/xen/arch/x86/nmi.c +++ b/xen/arch/x86/nmi.c @@ -387,15 +387,12 @@ void setup_apic_nmi_watchdog(void) if ( nmi_watchdog =3D=3D NMI_NONE ) return; =20 - switch (boot_cpu_data.x86_vendor) { + switch ( boot_cpu_data.x86_vendor ) + { case X86_VENDOR_AMD: - switch (boot_cpu_data.x86) { - case 6: - case 0xf ... 0x19: - setup_k7_watchdog(); - break; - } + setup_k7_watchdog(); break; + case X86_VENDOR_INTEL: switch (boot_cpu_data.x86) { case 6: --=20 2.30.2