Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp873522ybe; Wed, 4 Sep 2019 09:01:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqyHsXRKpZRApOAlsOcoP4/uUpzK/OxzfK2emx09NfCHRBvLi8ewzrc8y2xXmcKZUtrUAbiQ X-Received: by 2002:a17:902:b183:: with SMTP id s3mr966628plr.338.1567612877095; Wed, 04 Sep 2019 09:01:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567612877; cv=none; d=google.com; s=arc-20160816; b=PZFjYFYgnWmif3nGMxEknoBWUkmBtiQJJrm0j0ww3pMKAURfjfQRHtZm+xlJnqx9PS OOu8A8KWe8vdhTE/0deRSmQzlmO/3W1UKicYyOJB2xetSfQg3LLvRfgBeyvMejf5LrqF tIAK7cD7S8ibKspySrAAL4PbCjmTGqQqorxOE/fYk0/gRwZ+H0F1ObQ9pRxBT5MCellj zz6evTGgAdsAv9Y4DlxjbBwmT12S5tgKhRhGW6MDSXnrnRTWViBwuw0q8fgLmaRIhzNb 2mOwmgka+PuNU7HkILjUpVAaRhORC0g/Fy/4AaCgWCbLVkDgZ2ydf8HG+023WSq1DL8x rFVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=yZY5NkjDzEZHoaFONg+fZVGJUq7PgOhnUx8GFhXaUHU=; b=ffUFxFSq+pZI3clkoz4eRmX8Hv67zF0Sr9jlzZHqMwohlv7/IdDhkXH39C+L9lPdSN mofIsJKp4H42O0xKfi65k6H+FfCMbKxDThSwYdr/5GyEuRwYLzehut6w3SgelZAckaUT GuRI1EAl8MEIQQrf6cJRCJ3mQMKB3QFwsPDtRnTQhMoCqqeBkCg7Yi+Rom306Apzrz5t JqsN8an+pb7Cfzwjq/dRf9S8+aDdt5nm0bzLO6wCOknKz2lCkxuEsLOzb0LzgneMb1Rx g4Z8hwLRet/dhDyMS89h+JopjnzgnfhaCuc22krUI9jsIZ+iymgCP4fAKXAX1NE0ERTC HTrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dRd5cN97; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t3si2609060pjw.105.2019.09.04.09.01.01; Wed, 04 Sep 2019 09:01:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dRd5cN97; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732412AbfIDP7c (ORCPT + 99 others); Wed, 4 Sep 2019 11:59:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:34026 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732406AbfIDP7a (ORCPT ); Wed, 4 Sep 2019 11:59:30 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CD46720820; Wed, 4 Sep 2019 15:59:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567612770; bh=48NONwleXv7yulCxjWwTzPAFeGowSucCtbVQ7QAI4IA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dRd5cN972KSn9W3FKD3GhycCxySPKWPDRLqSZU+1qLWXzLIE3dVGEcbXO06nDkF0F hQ2qwQbAPQ0jKN4saGzRWIImgqWBqx1x2IPBcawJJyg6FECb8Y3tSx25h2TApyBibe wmN+TMwZw2ZRqdG+7VwfoyDHNc1PShDNh12G5vUU= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Josh Hunt , Peter Zijlstra , acme@kernel.org, bpuranda@akamai.com, mingo@redhat.com, jolsa@redhat.com, tglx@linutronix.de, namhyung@kernel.org, alexander.shishkin@linux.intel.com, Sasha Levin Subject: [PATCH AUTOSEL 5.2 71/94] perf/x86/intel: Restrict period on Nehalem Date: Wed, 4 Sep 2019 11:57:16 -0400 Message-Id: <20190904155739.2816-71-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190904155739.2816-1-sashal@kernel.org> References: <20190904155739.2816-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Josh Hunt [ Upstream commit 44d3bbb6f5e501b873218142fe08cdf62a4ac1f3 ] We see our Nehalem machines reporting 'perfevents: irq loop stuck!' in some cases when using perf: perfevents: irq loop stuck! WARNING: CPU: 0 PID: 3485 at arch/x86/events/intel/core.c:2282 intel_pmu_handle_irq+0x37b/0x530 ... RIP: 0010:intel_pmu_handle_irq+0x37b/0x530 ... Call Trace: ? perf_event_nmi_handler+0x2e/0x50 ? intel_pmu_save_and_restart+0x50/0x50 perf_event_nmi_handler+0x2e/0x50 nmi_handle+0x6e/0x120 default_do_nmi+0x3e/0x100 do_nmi+0x102/0x160 end_repeat_nmi+0x16/0x50 ... ? native_write_msr+0x6/0x20 ? native_write_msr+0x6/0x20 intel_pmu_enable_event+0x1ce/0x1f0 x86_pmu_start+0x78/0xa0 x86_pmu_enable+0x252/0x310 __perf_event_task_sched_in+0x181/0x190 ? __switch_to_asm+0x41/0x70 ? __switch_to_asm+0x35/0x70 ? __switch_to_asm+0x41/0x70 ? __switch_to_asm+0x35/0x70 finish_task_switch+0x158/0x260 __schedule+0x2f6/0x840 ? hrtimer_start_range_ns+0x153/0x210 schedule+0x32/0x80 schedule_hrtimeout_range_clock+0x8a/0x100 ? hrtimer_init+0x120/0x120 ep_poll+0x2f7/0x3a0 ? wake_up_q+0x60/0x60 do_epoll_wait+0xa9/0xc0 __x64_sys_epoll_wait+0x1a/0x20 do_syscall_64+0x4e/0x110 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7fdeb1e96c03 ... Signed-off-by: Peter Zijlstra (Intel) Cc: acme@kernel.org Cc: Josh Hunt Cc: bpuranda@akamai.com Cc: mingo@redhat.com Cc: jolsa@redhat.com Cc: tglx@linutronix.de Cc: namhyung@kernel.org Cc: alexander.shishkin@linux.intel.com Link: https://lkml.kernel.org/r/1566256411-18820-1-git-send-email-johunt@akamai.com Signed-off-by: Sasha Levin --- arch/x86/events/intel/core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c index 6179be624f357..2369ea1a1db79 100644 --- a/arch/x86/events/intel/core.c +++ b/arch/x86/events/intel/core.c @@ -3572,6 +3572,11 @@ static u64 bdw_limit_period(struct perf_event *event, u64 left) return left; } +static u64 nhm_limit_period(struct perf_event *event, u64 left) +{ + return max(left, 32ULL); +} + PMU_FORMAT_ATTR(event, "config:0-7" ); PMU_FORMAT_ATTR(umask, "config:8-15" ); PMU_FORMAT_ATTR(edge, "config:18" ); @@ -4550,6 +4555,7 @@ __init int intel_pmu_init(void) x86_pmu.pebs_constraints = intel_nehalem_pebs_event_constraints; x86_pmu.enable_all = intel_pmu_nhm_enable_all; x86_pmu.extra_regs = intel_nehalem_extra_regs; + x86_pmu.limit_period = nhm_limit_period; mem_attr = nhm_mem_events_attrs; -- 2.20.1