Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp2236764ybd; Mon, 24 Jun 2019 03:05:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqxno4o2bhY/htlPfDPhpxDSen5y5ENIcBrivAkNpvzb3vExWWzoXuWJ0JNNGCNt+yrsfW2k X-Received: by 2002:a63:5207:: with SMTP id g7mr6888364pgb.284.1561370701974; Mon, 24 Jun 2019 03:05:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561370701; cv=none; d=google.com; s=arc-20160816; b=AsYWtL2z6BwX3oFlTvQb/iclXI4DE3HmFnrB2IIrljSigGYFUU8o91wsZhS/7F4YDg EqZg5UaDpVHe00AtkWZWYrB/qJOLDScgBvmjwbzOkoXpnLjjaODpiD7E3VDkdIDGj4nQ qOc8O/B0BF2pdL4E2PzQR82ez4NgJFIsjbgR4ngylRbEYO2KG3QK4EePAv5uPVJSjNNO zZTvh+XgiWkkzB1DqltrA8kigLLad808khktmCUjm94pskVe8Y70lsRgBi6RfgT/m3uG WLesxqDit+W+B7Eg6SSFOSlgVVHr0cCYB1lyvV4tgxJGB3WqRIRbVVsKnr6HXkaT6Kc/ uyEQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jomOC477lV6GPF+so09jrHuSWoM3Dk7T6F9UbEsvVWw=; b=TP/02h6whKOrEJNedNzwQj4VoUyAIWVYlzJur8pm6qjJIWaQ5lto1cKtxAmKg2UamG WICuWS+S19hrI4qXeQVoGdG/3G8KdR1yz2v7/PtQ44YLaz7ITGK+tGqwgQ8vU3hSJyoW KkF9BCi3wOVUM+JuxSsBhES+15qQbzbmJjMkheh5P+hwEMGJmQMTYAdjavcz9Wi7WeGf yn/tugk8kNEIL4hCTJi9XgKUD4F1PIq/XtDhd5hD6MiQ+xE1VC2gB7RazOH2in9M3WxP xbqFZVl/+eIwLTgzbKxJu9SbdbeQGqrHDcCoK1EEpGMWgRap1aD1IptYJCMyxrwXlgif XIhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="C8UkD/nt"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p12si9547247plq.331.2019.06.24.03.04.46; Mon, 24 Jun 2019 03:05:01 -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="C8UkD/nt"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729025AbfFXJ6f (ORCPT + 99 others); Mon, 24 Jun 2019 05:58:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:57170 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729000AbfFXJ6d (ORCPT ); Mon, 24 Jun 2019 05:58:33 -0400 Received: from localhost (f4.8f.5177.ip4.static.sl-reverse.com [119.81.143.244]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CCD23205ED; Mon, 24 Jun 2019 09:58:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1561370312; bh=tZbksyN3QSkE1MgSqdFzUQ8G6opgQR4WnYp4JaIxeBw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C8UkD/ntcRKftD3VICkpQvBVIn98oHlFNp/B5a5VTndnw5LX1lBzWL+XA1Lb0JekH 04QSLcEN5Vgxc5YTj1FkTW3VYQPA5H6JDBUouA5js7fzqbnf7OnGpAx0H/HWRmsaTV XOMpsbH/+skkXPW/LsnwJDuyOKK8ODbdxUfjEjfo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Young Xiao <92siuyang@gmail.com>, "David S. Miller" , Sasha Levin Subject: [PATCH 4.14 26/51] sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD Date: Mon, 24 Jun 2019 17:56:44 +0800 Message-Id: <20190624092309.485457817@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190624092305.919204959@linuxfoundation.org> References: <20190624092305.919204959@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 56cd0aefa475079e9613085b14a0f05037518fed ] The PERF_EVENT_IOC_PERIOD ioctl command can be used to change the sample period of a running perf_event. Consequently, when calculating the next event period, the new period will only be considered after the previous one has overflowed. This patch changes the calculation of the remaining event ticks so that they are offset if the period has changed. See commit 3581fe0ef37c ("ARM: 7556/1: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD") for details. Signed-off-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- arch/sparc/kernel/perf_event.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index eceb0215bdee..58ea64a29d5f 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c @@ -891,6 +891,10 @@ static int sparc_perf_event_set_period(struct perf_event *event, s64 period = hwc->sample_period; int ret = 0; + /* The period may have been changed by PERF_EVENT_IOC_PERIOD */ + if (unlikely(period != hwc->last_period)) + left = period - (hwc->last_period - left); + if (unlikely(left <= -period)) { left = period; local64_set(&hwc->period_left, left); -- 2.20.1