From patchwork Fri Jun 28 07:51:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Kumar Patra X-Patchwork-Id: 13715674 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 06E41C3064D for ; Fri, 28 Jun 2024 07:52:35 +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:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=eu+2wcx6ARI0Khk7sEf+LxSnsWz3kwiEgnTb6o13mh0=; b=p1ph5t1EIMyeXlkk808bLzFLhk VzFFW2qz9yembJOLKy8otY/yvqdg4xiup9nZfTtwY8g+v+WbUSkysufK5yV1op6fv+xxxYQ666dpi npoIjYhMZuVJxMZYIb+yOdLzPzCK1DhCW7/ejL/POBv4/ye7QG2dVXg+i4iY4BSRhALrk6OnAe+Pm a9qusR8+wX7QaIZ4kuvqpQIY6juGMmahK4LSeK3yIjwzoISynhjO9xe8NBzau1pwyJhupXSMFhAWZ I1IHfGwtb33n/uO3cPkA3eE/MB3rXqDnNWmLMrE2nKawa2u2eEPNyoDFgAOgZWWOVgwwbYvTXbdEk BwSj0rnQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sN6P8-0000000CxWD-0NbP; Fri, 28 Jun 2024 07:52:22 +0000 Received: from mail-yb1-xb33.google.com ([2607:f8b0:4864:20::b33]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sN6Os-0000000CxN1-2k7w for linux-arm-kernel@lists.infradead.org; Fri, 28 Jun 2024 07:52:09 +0000 Received: by mail-yb1-xb33.google.com with SMTP id 3f1490d57ef6-e02bda4aba3so248555276.3 for ; Fri, 28 Jun 2024 00:52:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1719561125; x=1720165925; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=eu+2wcx6ARI0Khk7sEf+LxSnsWz3kwiEgnTb6o13mh0=; b=HexzIX4TmCJw5ffFg1RBIp/yhoVDls2a7Wfv8Cbp5gct2fZMPGhuMl4G/q3m/kSSAN 2aqJ+21N1IEyDStTAYsawGmZZ6+U9gS795JPsgI/HtQtE2Gs1S/Eo5Iuo05hhqRLEgWk 53q+kAtOy3xwI3O2O5K5dUMvFAk7Ef0Mw1hlUG8pWesz69F+qYmd1dnc+ODtYsjZm1wM H1C7wfKvc4YiCwyBqX+Djr32FwrVEMlh/NCHJ2k015VtfpKDtUL0e5sKwBtFu2S+Snhg uxEzSd/JockWTj2lXFH7q1NUIEigbbmVZnr/EfA/VHmOm4Bz/YoDsJaJK9W7uypPa8Mp Wqyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719561125; x=1720165925; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eu+2wcx6ARI0Khk7sEf+LxSnsWz3kwiEgnTb6o13mh0=; b=F1hUFeIlWnGEYtVLeCqUdMZqxKrlBvF85PNWu9VJn41982AIkVtdXa8gefzPBGU/pt FF1Tk75sAWq8j056T6L++qACygX3Fg5MdpIdYnsJwvwdUqYJ/k6oLChND8HPhLZ0baQ9 SHFyU8DJ4i7tfZWdYycozyTl6gR7wUfSQ13biPuvFta2Bw8q3uvZrYqF8WriMVMY3d5h D/UMsMQbxmIi8lzVU+X83rdDc7gkZzTxZcloWX9A8eUbIawLSnYcgSu/yVXQzsoKhxwP S2SrSpTINgdzR5dZ5EdSsF2TFCKS3cInEiZXTUCqJS4DxWKRXwlUcn5qQzVIxyjJPH/u 8lug== X-Forwarded-Encrypted: i=1; AJvYcCUFXgJexzS6ezYerKoGjKdJFqSEP6m2EtVNsPLm9oxNmmdKkpUT2UG0HAhQOmqGstXbMX1GBBbCKZTz1aI7lorN9mbIiYzi9iuOrkA/vVDdtMlMjGw= X-Gm-Message-State: AOJu0Yz+v77dlpL1Gi8vBYxF6IneOkWKzVav78aZ3LLUXfr6mB49/488 9Fy24IpISy7d+O24qA0qmfyWlEsiiLLXARsnGMcdt4h0zJiiQ66pjC01iv93k/I= X-Google-Smtp-Source: AGHT+IEZUhwullYVKgF25a+0boKvH0ownItzxOgMvrt6D0RnS9rjqr16EhSB3iPBE5ZjBx8I+fBacw== X-Received: by 2002:a05:6902:1701:b0:e03:48ed:d275 with SMTP id 3f1490d57ef6-e0348edd2d9mr4844561276.61.1719561125224; Fri, 28 Jun 2024 00:52:05 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-72c69b53bf2sm685068a12.2.2024.06.28.00.52.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Jun 2024 00:52:04 -0700 (PDT) From: Atish Patra Date: Fri, 28 Jun 2024 00:51:41 -0700 Subject: [PATCH v4 1/3] drivers/perf: riscv: Do not update the event data if uptodate MIME-Version: 1.0 Message-Id: <20240628-misc_perf_fixes-v4-1-e01cfddcf035@rivosinc.com> References: <20240628-misc_perf_fixes-v4-0-e01cfddcf035@rivosinc.com> In-Reply-To: <20240628-misc_perf_fixes-v4-0-e01cfddcf035@rivosinc.com> To: linux-riscv@lists.infradead.org, kvm-riscv@lists.infradead.org Cc: Atish Patra , Anup Patel , Will Deacon , Mark Rutland , Paul Walmsley , Palmer Dabbelt , Andrew Jones , Conor Dooley , Samuel Holland , Palmer Dabbelt , Alexandre Ghiti , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Atish Patra , garthlei@pku.edu.cn X-Mailer: b4 0.15-dev-13183 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_005206_736533_E927AF31 X-CRM114-Status: GOOD ( 17.07 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In case of an counter overflow, the event data may get corrupted if called from an external overflow handler. This happens because we can't update the counter without starting it when SBI PMU extension is in use. However, the prev_count has been already updated at the first pass while the counter value is still the old one. The solution is simple where we don't need to update it again if it is already updated which can be detected using hwc state. The event state in the overflow handler is updated in the following patch. Thus, this fix can't be backported to kernel version where overflow support was added. Fixes: a8625217a054 ("drivers/perf: riscv: Implement SBI PMU snapshot function") Reported-by: garthlei@pku.edu.cn Closes:https://lore.kernel.org/all/CC51D53B-846C-4D81-86FC-FBF969D0A0D6@pku.edu.cn/ Signed-off-by: Atish Patra --- drivers/perf/riscv_pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/perf/riscv_pmu.c b/drivers/perf/riscv_pmu.c index 78c490e0505a..0a02e85a8951 100644 --- a/drivers/perf/riscv_pmu.c +++ b/drivers/perf/riscv_pmu.c @@ -167,7 +167,7 @@ u64 riscv_pmu_event_update(struct perf_event *event) unsigned long cmask; u64 oldval, delta; - if (!rvpmu->ctr_read) + if (!rvpmu->ctr_read || (hwc->state & PERF_HES_UPTODATE)) return 0; cmask = riscv_pmu_ctr_get_width_mask(event);