From nobody Fri Oct 3 18:03:47 2025 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6BBDA28312E for ; Wed, 27 Aug 2025 10:10:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756289438; cv=none; b=IUv8NQ3IDNQBRFN32WGnRovoYZZyeWnqSY4e7PiubrtMoBGkSu/2PRWFN3jpj+C1QY9HNXmN9Gr4yJuUAiFTD2k0OJsam72RsaSUVnnqEcha7tox015HQbtitdITACLAu05gwGWJQtPyTTe7ALbrbtNi72pKD9FVJYfpletCA1c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756289438; c=relaxed/simple; bh=yeNan5k0cgSuNlvIrb3yh43RXINtEjul/GDw0ykoYZ4=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mdL4CQMaBRP2ClvlxGGp0wsU986cOmBV108uT5bVHXK+Pg2srLSwGirfGgZ7YoNAlD09WICdSCtTUzj7fR9hZ8UEutdIkLDtYi9uRX5uSqeFgsAssS/6boBrhLi2tpSYNuxcELzvr3l7xGHV6JH/4gHq8aS6MUvClm0eB+lfaE4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=PZU0Pg0S; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="PZU0Pg0S" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-771f69fd6feso2408056b3a.1 for ; Wed, 27 Aug 2025 03:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756289436; x=1756894236; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ogvjFdajJu5uEleDwj80v3hZV9fH5TDAuXMS6jOc2pE=; b=PZU0Pg0SiNeql1j9loQYsNasHG9jCfC4ukwLG4oceAtFMTGMjnVxaM9WaiNOe358Ya j2MCkBWA9qxFLLAl2FkvpBK0wPFmSvj8/2PCDBuTWoal+bd+AYRR9WeGkLmlS0a0lJ/q +dJmaACtlslillsCfXfEAn+5u3ZHAwX6Y7HCUwMMd/YKnir5Ix6EWpcLHxAjLd+gRw2S P57nFjMHm5djIH0jXsBrsFrrHF0cDcERfhe4I4Q1oLg/oTc7sOD4K2HJQ5tWY6Za8rMC I6U0rUAQ+zcpwM18boD6ni70g+D15uE1WY7lDyoyYP4g0MFl/dRBvcE698btdRUVKO32 NHGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756289436; x=1756894236; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ogvjFdajJu5uEleDwj80v3hZV9fH5TDAuXMS6jOc2pE=; b=RanPm+wMQp5ha+yCEHrVQW2gNpCa/mZ3scsSDYjx2fSZcI9aAcXIrF38juviDUG6bP vsg9u+5qGeP4TIdW5KJuIwXeyXxxW09vRK9G03YZR7mBvAzWn9vCTBkgE60e+Za9+TH+ 9qxKn+0/PMDyKEed/5jV6FmsIeGWViYjM1fE5pHoBMq0L6nEYZU7UgzyLc4NBf1n/N+k 2hKnaZpf8IK7EAJZR5/55mcq/yYnBrQGWxGVOsFgMTFYYDpRys0Ngf8HlByuI0eJtRsL dh7MQvKMNQIkYax35LTyqPuioRuhk6A0WUciQoJQFup8y6qrjrP0z+hTJ82HR8oC+SPp 1sXA== X-Forwarded-Encrypted: i=1; AJvYcCXI82xCK7mVBnDuGRbN6TSvPVAuo3BWPpby+M7VliBrQz52mwa+oIPODqs3HogyfEh9sinTtYwAREs373w=@vger.kernel.org X-Gm-Message-State: AOJu0YzMRo2GZtEs7QvunoaIfL2wLdCtQ5KcBhTPJVgijl5q4Xc4QDb/ P5MeoScQivZB26L90QdYB2uDCz/JvRwfobVT6/tFuIIuZa7X8NfQMFjbxmkg3jd11BU= X-Gm-Gg: ASbGnct//siafwzlTVLuKXiGTKglNldKCWvsgo8J7QsuN7JZVrwfTut3o2yAvhk0gHx S2h0QQWT26Z/RKQDzAluyz7/UEFzmzQGL4DY6lbsqDQQ5xIS89vqiMiRALo2/4LATOvyWN9WL2i av0esPwIrOklxMr+AvxF4NHYPkJpNdjNM7SZMXoU+ctBIz8AnyAdeiJHf+l43fw0nFA4Ua37b90 0IbKNBnlA4RwnH6d9kcevK3hP2vOjuXQhUO3OZCK0P80hQzwhoBURTn58MnlDLEL/Ylgk2r5d0W OHfsjYQsRNshO8PQ1O4QDl2eRjCCgP05V8J0+qVRoKGa0Pm0maAobzfxjYXHjC0hiRIcGIdfPT1 9TB62qe3/JeBUdUVOITqbZdMyIPTuhPAgQ5EgQplbu8A/4i0j93xs7kzR/pUn4XL8sh0UcvTHiw == X-Google-Smtp-Source: AGHT+IGKq+xCbT38FLHdMDvm1hcp5EAcutLkJLn66CFHjFRgZpXlNTya/iJ1ORo8WxdEG7UC3P6/tQ== X-Received: by 2002:a05:6a00:929d:b0:771:fbb0:b1cf with SMTP id d2e1a72fcca58-771fbb0b2b0mr7265480b3a.17.1756289429909; Wed, 27 Aug 2025 03:10:29 -0700 (PDT) Received: from L6YN4KR4K9.bytedance.net ([139.177.225.229]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401eb20dsm12813462b3a.79.2025.08.27.03.10.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 27 Aug 2025 03:10:29 -0700 (PDT) From: Yunhui Cui To: paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, atish.patra@linux.dev, anup@brainfault.org, will@kernel.org, mark.rutland@arm.com, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, catalin.marinas@arm.com, masahiroy@kernel.org, suzuki.poulose@arm.com, cuiyunhui@bytedance.com, maz@kernel.org, zhanjie9@hisilicon.com, yangyicong@hisilicon.com, dianders@chromium.org, mingo@kernel.org, lihuafei1@huawei.com, akpm@linux-foundation.org, jpoimboe@kernel.org, rppt@kernel.org, kees@kernel.org, thomas.weissschuh@linutronix.de Subject: [PATCH 1/2] watchdog: refactor watchdog_hld functionality Date: Wed, 27 Aug 2025 18:09:58 +0800 Message-Id: <20250827100959.83023-2-cuiyunhui@bytedance.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20250827100959.83023-1-cuiyunhui@bytedance.com> References: <20250827100959.83023-1-cuiyunhui@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move watchdog_hld.c to kernel/, and rename arm_pmu_irq_is_nmi() to arch_pmu_irq_is_nmi() for cross-arch reusability. Signed-off-by: Yunhui Cui --- arch/arm64/kernel/Makefile | 1 - drivers/perf/arm_pmu.c | 2 +- include/linux/nmi.h | 1 + include/linux/perf/arm_pmu.h | 2 -- kernel/Makefile | 2 +- {arch/arm64/kernel =3D> kernel}/watchdog_hld.c | 8 ++++++-- 6 files changed, 9 insertions(+), 7 deletions(-) rename {arch/arm64/kernel =3D> kernel}/watchdog_hld.c (97%) diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 76f32e424065e..12d77f373fea4 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -44,7 +44,6 @@ obj-$(CONFIG_KUSER_HELPERS) +=3D kuser32.o obj-$(CONFIG_FUNCTION_TRACER) +=3D ftrace.o entry-ftrace.o obj-$(CONFIG_MODULES) +=3D module.o module-plts.o obj-$(CONFIG_PERF_EVENTS) +=3D perf_regs.o perf_callchain.o -obj-$(CONFIG_HARDLOCKUP_DETECTOR_PERF) +=3D watchdog_hld.o obj-$(CONFIG_HAVE_HW_BREAKPOINT) +=3D hw_breakpoint.o obj-$(CONFIG_CPU_PM) +=3D sleep.o suspend.o obj-$(CONFIG_KGDB) +=3D kgdb.o diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 5c310e803dd78..4fd7f88d44543 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -696,7 +696,7 @@ static int armpmu_get_cpu_irq(struct arm_pmu *pmu, int = cpu) return per_cpu(hw_events->irq, cpu); } =20 -bool arm_pmu_irq_is_nmi(void) +bool arch_pmu_irq_is_nmi(void) { return has_nmi; } diff --git a/include/linux/nmi.h b/include/linux/nmi.h index cf3c6ab408aac..c34bdc4f43f6d 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h @@ -207,6 +207,7 @@ static inline bool trigger_single_cpu_backtrace(int cpu) #ifdef CONFIG_HARDLOCKUP_DETECTOR_PERF u64 hw_nmi_get_sample_period(int watchdog_thresh); bool arch_perf_nmi_is_available(void); +bool arch_pmu_irq_is_nmi(void); #endif =20 #if defined(CONFIG_HARDLOCKUP_CHECK_TIMESTAMP) && \ diff --git a/include/linux/perf/arm_pmu.h b/include/linux/perf/arm_pmu.h index 93c9a26492fcf..6b53fb453fd63 100644 --- a/include/linux/perf/arm_pmu.h +++ b/include/linux/perf/arm_pmu.h @@ -184,8 +184,6 @@ void kvm_host_pmu_init(struct arm_pmu *pmu); #define kvm_host_pmu_init(x) do { } while(0) #endif =20 -bool arm_pmu_irq_is_nmi(void); - /* Internal functions only for core arm_pmu code */ struct arm_pmu *armpmu_alloc(void); void armpmu_free(struct arm_pmu *pmu); diff --git a/kernel/Makefile b/kernel/Makefile index c60623448235f..4ec7702b00aa1 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -101,7 +101,7 @@ obj-$(CONFIG_KGDB) +=3D debug/ obj-$(CONFIG_DETECT_HUNG_TASK) +=3D hung_task.o obj-$(CONFIG_LOCKUP_DETECTOR) +=3D watchdog.o obj-$(CONFIG_HARDLOCKUP_DETECTOR_BUDDY) +=3D watchdog_buddy.o -obj-$(CONFIG_HARDLOCKUP_DETECTOR_PERF) +=3D watchdog_perf.o +obj-$(CONFIG_HARDLOCKUP_DETECTOR_PERF) +=3D watchdog_perf.o watchdog_hld.o obj-$(CONFIG_SECCOMP) +=3D seccomp.o obj-$(CONFIG_RELAY) +=3D relay.o obj-$(CONFIG_SYSCTL) +=3D utsname_sysctl.o diff --git a/arch/arm64/kernel/watchdog_hld.c b/kernel/watchdog_hld.c similarity index 97% rename from arch/arm64/kernel/watchdog_hld.c rename to kernel/watchdog_hld.c index 3093037dcb7be..f3864e604a6b5 100644 --- a/arch/arm64/kernel/watchdog_hld.c +++ b/kernel/watchdog_hld.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include #include -#include =20 /* * Safe maximum CPU frequency in case a particular platform doesn't implem= ent @@ -25,6 +24,11 @@ u64 hw_nmi_get_sample_period(int watchdog_thresh) return (u64)max_cpu_freq * watchdog_thresh; } =20 +__weak bool arch_pmu_irq_is_nmi(void) +{ + return false; +} + bool __init arch_perf_nmi_is_available(void) { /* @@ -32,7 +36,7 @@ bool __init arch_perf_nmi_is_available(void) * however, the pmu interrupts will act like a normal interrupt instead of * NMI and the hardlockup detector would be broken. */ - return arm_pmu_irq_is_nmi(); + return arch_pmu_irq_is_nmi(); } =20 static int watchdog_perf_update_period(void *data) --=20 2.39.5 From nobody Fri Oct 3 18:03:47 2025 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03EE9346A10 for ; Wed, 27 Aug 2025 10:10:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756289441; cv=none; b=CQkm/vBjdtXfjJ5H/bCCOngbfdzMU9lk+99TepxoR3WzdgGaI2FBdtnegoEhNjY3j+SVixyeL5B6UAiSQOo77ni/1yBSfsrPgab2pyIAec1tQAWHyT+aYFstrTkrqNRf5v5iNhUNpUZTJFEFbW0vOKR8YPw9dF3Wb7o9xAw9V6Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756289441; c=relaxed/simple; bh=ob1mm/QZIvYurNgvoNKtvTajPGjDoJT+DigHtqvCg5Q=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Iy5uT5StYNV/7+30vBOvU/FtPPil7/+ZWz02AeyH8s0K45+YBy5GsNx8vnJVE9dykQhB7Hjg0Qi3iBFDAMLg4ZxJMelmRFvyZkKYETevyYln32yURntB6P82d7TxvZQBkEp6E8sFzpb5uBXwGNGEbu96CHza3CvD3lY77wKxqv4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=EnSH9XQv; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="EnSH9XQv" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-771f3f89952so652017b3a.0 for ; Wed, 27 Aug 2025 03:10:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1756289439; x=1756894239; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=JM7gSlpkCi+0kyKyklIFOqWTnKhlvxmA1qdlwzNde30=; b=EnSH9XQv1YMXQhBFHrLfMGiqI4mEKdKdB2aK7vuZKSXuXARtQT7rpozk7vMehNT3dw XH+6zuUNxpUWFVe/K7OA4TnJpKwjqgSXuyhHXyLs/0geC3Ten9Y+BKQTq3Oh56kMODS4 vp0lU37WyqKWdV+0uNhKhpU0voBOS6ex1188NKesv3U1Z18fmyE07TdZd4NK89T/Odic ZYKEqP2NaEzc4axYmwifp9bEAMo9K9E1CvojpXBvEo8apgqBveW284aD2CtCnuzSOdhK G3TSnReuYAQv9g1Oq0BxIY8JfbZbTWDwcYoGrVv6gSXZPfr8yvQZgXVCoXKuc5EzUXdd QETg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756289439; x=1756894239; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JM7gSlpkCi+0kyKyklIFOqWTnKhlvxmA1qdlwzNde30=; b=Z/c+AzjkZjEF8zDrFX+agKtsIN+M5JTZ3VwH6Vyq6puggHVP2Z8ctUp5DQW/38Q3PV h5HVqFJq4wIajrFfYBTU1bLlsi64Js3xgs7cPZD77+qaj+7mCuUAER63jxHTs3gLSkyY 8jb8Q+WfXfaCqnkkbV3YQ7/JJYNGKkVouWBu17R1owFjpRQloXuSefZOPXbwoH7mNEcx O4Eg/36OBBuMblTMPLndiws6nj/bR6qUNv4MAH68BEMPt1541NZ0IEgZ9CE+nvBPqFO3 3q/8T2Tx3lf4/db57ji9//5r895K8TTi3FZGW+dFCgoPF/Lptktd9uff2gcBKctT0PTR Yv/A== X-Forwarded-Encrypted: i=1; AJvYcCWfHN7uDaTH8LfD9Wt1YB3DHLXLuAI5pUr6zDaOKK1YebmBaDHeInoXRsoU4C3A6W4tiUqsrVhw3TX1fZ8=@vger.kernel.org X-Gm-Message-State: AOJu0YwYVgKttdBzA82a1Mj/ik0vqmBnBnt3mEqq/MhOUCD74QrIAJJ5 rFQA8zOppaK4kTWtWEKMdlTmkJ995iP4WrpKrwmUOkW5mMJmhQp3gjQOH1E4MtwBj7I= X-Gm-Gg: ASbGnctTm/hZpfmYJKO/oL3qajlKk0A/OfLzwNlYt+sJ1rdJsQyooU6xB66PKGaJ79d ZEXTHEpy7CVYXVTc+QwzriCL+LcNaYaRwKOuqOPTdwswhnX7ML2EmwKBoM+Ko+UyeEKN0vtimNs hnoahmnzKae9EQy0Kr3wT+4ChKAurU2jZAnAyXoxecu+6uaKMdeBZv/89EWo1FxKUsXCDdIuJWy MDe2/XHImuBDdkk9aMXdiCy7klmddSGSoO58mnjsA55M64XL/QZ1sqNvoixoHSIEs3zrBe18urH 4SuSWzwif/8Y/0IflWXbYHVegcuDAHn+bmdRnDfiUTBYTdIWlw6hQoLL2IIeuT3uYfBzu1nnFsZ W0lzYZ6ic6jJUS2OJOKYA2WPA/n/HvHGn839XQB7+6NNrj1dE8p25WCjHXAjVxkc= X-Google-Smtp-Source: AGHT+IGdtKUBscgA9xYMmV3962XLu6gCj63wXPK/4bKpP1nVTjXzqxHi4UVk2L8ckDMtXKsc3B7ldA== X-Received: by 2002:aa7:88c2:0:b0:771:e341:ce68 with SMTP id d2e1a72fcca58-771fc292e89mr6337778b3a.5.1756289439091; Wed, 27 Aug 2025 03:10:39 -0700 (PDT) Received: from L6YN4KR4K9.bytedance.net ([139.177.225.229]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-770401eb20dsm12813462b3a.79.2025.08.27.03.10.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 27 Aug 2025 03:10:38 -0700 (PDT) From: Yunhui Cui To: paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, atish.patra@linux.dev, anup@brainfault.org, will@kernel.org, mark.rutland@arm.com, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, catalin.marinas@arm.com, masahiroy@kernel.org, suzuki.poulose@arm.com, cuiyunhui@bytedance.com, maz@kernel.org, zhanjie9@hisilicon.com, yangyicong@hisilicon.com, dianders@chromium.org, mingo@kernel.org, lihuafei1@huawei.com, akpm@linux-foundation.org, jpoimboe@kernel.org, rppt@kernel.org, kees@kernel.org, thomas.weissschuh@linutronix.de Subject: [PATCH 2/2] riscv: add HARDLOCKUP_DETECTOR_PERF support Date: Wed, 27 Aug 2025 18:09:59 +0800 Message-Id: <20250827100959.83023-3-cuiyunhui@bytedance.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20250827100959.83023-1-cuiyunhui@bytedance.com> References: <20250827100959.83023-1-cuiyunhui@bytedance.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reuse watchdog_hld.c to enable HARDLOCKUP_DETECTOR_PERF and add Kconfig selections for RISC-V. Signed-off-by: Yunhui Cui --- arch/riscv/Kconfig | 3 +++ drivers/perf/riscv_pmu_sbi.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 451eb23d86c96..214b1ead5781a 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -184,6 +184,9 @@ config RISCV select HAVE_PAGE_SIZE_4KB select HAVE_PCI select HAVE_PERF_EVENTS + select PERF_EVENTS + select HAVE_PERF_EVENTS_NMI if RISCV_SSE && RISCV_PMU_SSE + select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_N= MI select HAVE_PERF_REGS select HAVE_PERF_USER_STACK_DUMP select HAVE_POSIX_CPU_TIMERS_TASK_WORK diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c index 8c1ac7985df6c..c5423a046d016 100644 --- a/drivers/perf/riscv_pmu_sbi.c +++ b/drivers/perf/riscv_pmu_sbi.c @@ -22,6 +22,7 @@ #include #include #include +#include =20 #include #include @@ -1102,6 +1103,11 @@ static int pmu_sbi_setup_sse(struct riscv_pmu *pmu) } #endif =20 +bool arch_pmu_irq_is_nmi(void) +{ + return IS_ENABLED(CONFIG_RISCV_PMU_SSE); +} + static int pmu_sbi_starting_cpu(unsigned int cpu, struct hlist_node *node) { struct riscv_pmu *pmu =3D hlist_entry_safe(node, struct riscv_pmu, node); @@ -1525,6 +1531,8 @@ static int __init pmu_sbi_devinit(void) /* Notify legacy implementation that SBI pmu is available*/ riscv_pmu_legacy_skip_init(); =20 + lockup_detector_retry_init(); + return ret; } device_initcall(pmu_sbi_devinit) --=20 2.39.5