From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 B8B7613D638 for ; Tue, 7 Jan 2025 04:07:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736222872; cv=none; b=Z1JbVBCc2K7dhl7KNlclItBob4jhRf3Fz2Pe0CMe9UnCMLFZmZWwC7sHxHuNTe9p2hZZg+sz2VeZLpTSgztuBO8uxkhyFcXwVxRq7eI80WaGLYp9zzqSMchVPx1ZTTsBdLLNL8VsTM4u/q5mLBAuAEqWxG7UtH7o1wkfsZFzjjU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736222872; c=relaxed/simple; bh=4A/rV7NFZfXh7jg8xjVV3W+JnT5JNauMb5DtLEiU/Nw=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=RDb4eYZ9yCPycnRCB43UqFJiRYUDjcTO5hB7G4aLao8OgYTERmoDf8STkb5oxzuYkBRR8meVajG0gpLC9QOB3v5YF9NBJgthvaIrpKw/j3QShQXBGXkrf7gPj/JXKRJK/jwUOfD7i/qZzdKxOMjMopMR6v8pCBDIPTdwdFeZ1k4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=QKkbO6Mv; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="QKkbO6Mv" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2161eb95317so225464435ad.1 for ; Mon, 06 Jan 2025 20:07:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736222868; x=1736827668; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=uSdgFtH3xCheJ7nv0LKAtGz6EHGRLMsLcDoLAG3eInE=; b=QKkbO6Mvdst/GE975o4qN1ePEERYBsgI48dKgYxRXRZiPquoUMtaVXQxI9MQww5hwU 3t3qLbQvJOSDzarw5XslD+6IljMcEO4sjriyUdijxuPVm3OIpA6rnvF7+HDmOz53VsEM 0QuH7CHDCnvOi5sXmpSjHoeh4yshncWq30cPFJHtkAsvctvKJwEQCGwai1VPkGkgkp1T RZnICOviTyeJ35igz4J5AnLx18wuXoUUrX3F3xrVAiiWE38K+o5+6xYkPJxpTkPUusjz pJoAmG0Lsk30mZLWyr5do+/OHgcF0CRtk7YddO/u+om1NBHZ57lWQWWD+xKp9oOwefJR Aw9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736222868; x=1736827668; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uSdgFtH3xCheJ7nv0LKAtGz6EHGRLMsLcDoLAG3eInE=; b=QiEJAdU+d/2/e6JGusHJe1MLA9NVYhbCrLbh0/mhz2fFEW7Ha5GYyqVKNBcXZQHbQr 1A1Tkq+N+vpE5roKUjsSmiBTdtcKYg+fp5Kw+O+e051d7Y8s2+Zn30MUJZYJ0OtHH+Zq 7zKjoNCK8Q0ftb3h3snNvchXEMWXBcoXKl03VQYZSyeuqQmLWR7GUP58RA3kWgHmf6If Dmgc8+IT+ce9hQL1Ne87qvQ+uWoEky9hzlXYfop9n2AWffIM7612NcH6hHO4tzONSXhX TxnElYAZA5W9v1l92PUHVAWVUFugqrBo3iA3oeFtmLTTyc7xRL45AsMRZZ7MQ5Wh/HYP fnMw== X-Forwarded-Encrypted: i=1; AJvYcCWqbePj8U2TxFQGILWJtmzQa4eipUTnod3D4PoQ6lMLTyoCr9tqNedHQcCnAQpXkigVFRdOpx8kNpHt330=@vger.kernel.org X-Gm-Message-State: AOJu0YwamIoJ7kXlv/cvLf7nlXdE6nWCXXQehPyZ/2RusYNowU8Pfe5W iH1zkHHseqVYySb2ZRR1lkxye8wOBOBJ+AHEKT4/QR5yTZHrHsSQRbEtV/LRN7Y= X-Gm-Gg: ASbGnctxor6zzspEYlphuOTp2+bb2G7oL4YqD8+/Vxfor34rnITnsLhzXClp6mD/i+P OIAG5rQZnnvqnWVTIDLdKY17rqrUNLrrmT1JiV/Fp9CAyDhgJujlafUnNGL5LgJBaKVWjZHPzjM SJlXOMmmv2La8r+hL6QiLPcmZ+jTSWmxStZDaZbwqgsbjSl8s3+dWlhSFjXweyVQ14B9oYbI71U 2EkxoPNXnTGCD6vQX31Q8CQ/uNJRDrMMyia5SJEqagS0OZXvfby6KK/EmTT3JN2fzILrj86 X-Google-Smtp-Source: AGHT+IHYQ5OVQucXRlEba4LZLlmlH9KL5GZAo1enNd9u+7XRPLAdBuPNCyx2tldOfTzBzrLTWT4EOQ== X-Received: by 2002:a05:6a21:6d98:b0:1e1:aa24:2e58 with SMTP id adf61e73a8af0-1e5e044b0c6mr99067195637.7.1736222867996; Mon, 06 Jan 2025 20:07:47 -0800 (PST) Received: from charlie.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-92587c62eacsm11698726a12.21.2025.01.06.20.07.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jan 2025 20:07:47 -0800 (PST) From: Charlie Jenkins Subject: [PATCH v3 0/3] perf: Add PERF_EVENT_IOC_INC_EVENT_LIMIT Date: Mon, 06 Jan 2025 20:07:31 -0800 Message-Id: <20250106-perf_set_event_limit-v3-0-dbde0e90ddde@rivosinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAIOofGcC/4XN0QqDIBTG8VcZXs9hWmq72nuMEWWndWBpqMhG9 O6zbgaDscv/B+d3FhLAIwRyPizEQ8KAzuYQxwMxY2vvQLHPTTjjJVO8pDP4oQkQG0hgY/PACSN lqh6Krq6lUJLk09nDgM+dvd5yjxii86/9Syq29Q+YCsooSM1MLcC0VXXxmFxAa07GTWQzE/84m qkfDs+O5qJTumelUfLLWdf1DU/i4aoDAQAA X-Change-ID: 20240724-perf_set_event_limit-079f1b996376 To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Atish Patra Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Charlie Jenkins , Shunsuke Nakamura X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3329; i=charlie@rivosinc.com; h=from:subject:message-id; bh=4A/rV7NFZfXh7jg8xjVV3W+JnT5JNauMb5DtLEiU/Nw=; b=owGbwMvMwCHWx5hUnlvL8Y3xtFoSQ3rNiu53667cnjXjjeqitb0KzJnFLl3NdzcGnGBbVLlt9 dUzhpdqOkpZGMQ4GGTFFFl4rjUwt97RLzsqWjYBZg4rE8gQBi5OAZhIYDAjQ/9fxifav9XDp5kc 6ni4LUAwTkT855+YCfei2zI+O0Ycmszw31uL01aJifPRsbkm940152uFzzfcbrgjZcVEozkuhln fuQA= X-Developer-Key: i=charlie@rivosinc.com; a=openpgp; fpr=7D834FF11B1D8387E61C776FFB10D1F27D6B1354 Introduce a new perf ioctl key PERF_EVENT_IOC_INC_EVENT_LIMIT that functions the same as PERF_EVENT_IOC_REFRESH, except it does not immediately enable counters. Also create a libperf API perf_evsel__refresh() to allow libperf users access to this ioctl key. Signed-off-by: Charlie Jenkins --- This series is going to cause an issue conflict with another series I sent [1]. The final patch of this series changes perf_evsel__ioctl() to accept a unsigned long instead of void *. My preference would be for the following patch to be squashed onto "libperf: Add perf_evsel__refresh() function" when applied: >From 66ab7b57c8b5a94c02c8d82204338b0ebca48bc5 Mon Sep 17 00:00:00 2001 From: Charlie Jenkins Date: Mon, 6 Jan 2025 20:00:28 -0800 Subject: [PATCH] libperf: Fixup perf_evsel__get_id This patch should be squashed onto "libperf: Add perf_evsel__refresh() function" or "libperf: Add perf_evsel__id() function" when merging. Signed-off-by: Charlie Jenkins --- tools/lib/perf/evsel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lib/perf/evsel.c b/tools/lib/perf/evsel.c index 1cd1680d28d7..8690588c0ba1 100644 --- a/tools/lib/perf/evsel.c +++ b/tools/lib/perf/evsel.c @@ -521,7 +521,7 @@ int perf_evsel__period(struct perf_evsel *evsel, u64 period) static int perf_evsel__get_id(struct perf_evsel *evsel, int cpu_map_idx, int thread, u64 *id) { - return perf_evsel__ioctl(evsel, PERF_EVENT_IOC_ID, id, cpu_map_idx, thread); + return perf_evsel__ioctl(evsel, PERF_EVENT_IOC_ID, (unsigned long)id, cpu_map_idx, thread); } int perf_evsel__id(struct perf_evsel *evsel, u64 *ids[]) -- 2.34.1 [1] https://lore.kernel.org/lkml/20250106-perf_evsel_get_id-v3-1-44eca9194f1e@rivosinc.com/T/#u Changes in v3: - Use uint64_t instead of __u64 for consistency - Link to v2: https://lore.kernel.org/r/20240807-perf_set_event_limit-v2-0-823b78d04c76@rivosinc.com Changes in v2: - Drop discussion about signal race condition - Add new patch "libperf: Add perf_evsel__refresh() function" - This newly added patch was pulled from a different series with modifications to fit the new ioctl key - https://lore.kernel.org/lkml/20240726-overflow_check_libperf-v2-0-7d154dcf6bea@rivosinc.com/ will be updated - Link to v1: https://lore.kernel.org/r/20240724-perf_set_event_limit-v1-0-e680c93eca55@rivosinc.com --- Charlie Jenkins (3): perf: Add PERF_EVENT_IOC_INC_EVENT_LIMIT perf: Document PERF_EVENT_IOC_INC_EVENT_LIMIT libperf: Add perf_evsel__refresh() function include/linux/perf_event.h | 4 +-- include/uapi/linux/perf_event.h | 1 + kernel/events/core.c | 17 +++++++---- tools/include/uapi/linux/perf_event.h | 1 + tools/lib/perf/Documentation/libperf.txt | 2 ++ tools/lib/perf/evsel.c | 49 ++++++++++++++++++++++++++------ tools/lib/perf/include/perf/evsel.h | 2 ++ tools/lib/perf/libperf.map | 2 ++ tools/perf/design.txt | 5 ++++ 9 files changed, 67 insertions(+), 16 deletions(-) --- base-commit: ed60738a9b7ede4a4ae797d90be7fde3e10a36c7 change-id: 20240724-perf_set_event_limit-079f1b996376 -- - Charlie