From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 11C68396B8C; Tue, 12 May 2026 15:00:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778598004; cv=none; b=cn7tYFEopnHMIKciRyLmV09K9Z7+/3uKNxn+r5RJW0//n6g4kgd+hRtRMYzAO36lbErwECTe7JqPzpE9ItbGHhtu0mmWat6Z8/HS8GKx+9rqUfyyDEKKVd2NyQJIUDHAa6MBc6VE3QafMOC8JroNJp9fEnlSlXSu0eTfLLu0BQg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778598004; c=relaxed/simple; bh=NWjULvnU8a6sPqFhYgaMooTgTXZAkxXdJyvFa0WZLl8=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=kaMmLB5pxsvs/tMUqUTGzDH2kmoX3pWpeGjsEyd8Nz2V6Ikyz/aluLmRf0wzrXCDiX3xp4ZIlVol1IBQNrtwXGoZbpT/47jIXevOcqhHTdbf3faLrVE4mDovmxA3b8B5gmb/BhzPn4xkI8j5wGyNuLE2o/r5JSKmliEBcygC/Xk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=HOomwG/b; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="HOomwG/b" Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B4DAC1691; Tue, 12 May 2026 07:59:56 -0700 (PDT) Received: from e132581.arm.com (e132581.arm.com [10.1.196.87]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 912C53F836; Tue, 12 May 2026 07:59:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1778598001; bh=NWjULvnU8a6sPqFhYgaMooTgTXZAkxXdJyvFa0WZLl8=; h=From:Subject:Date:To:Cc:From; b=HOomwG/bUKAYpgTw78IfkCu7zBjWwEAbV9Bcvp/HZugnd4vNfHZ5jmA/3WB/SzqYO BEFVbVOtvyqfhclkSij8jzCqoqxlegqIBTZRIM1zSQnIcxPLA7nrt5ed+Qbr988c5L HMH+LW7cU21EcZ5PoMsZf0YJYzqGVBe6b28UVs9I= From: Leo Yan Subject: [PATCH 0/2] perf: Revert direct PMU stop for refresh limit Date: Tue, 12 May 2026 15:59:51 +0100 Message-Id: <20260512-arm_cs_clean_perf_handle-v1-0-75ff373ecd22@arm.com> Precedence: bulk X-Mailing-List: linux-perf-users@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=H4sIAGdAA2oC/42NXQqDMBCEryL73BST+FN96j2KhLiudUETSYq0i Hdv6gn6+A0z3+wQKTBFaLMdAm0c2bsE8pIBTtY9SfCQGFSuqrxQjbBhMRgNzmSdWSmMJtWGmUR daUStG5RjCWm+Bhr5faofXeKJ48uHz/m0yV/6h3STQgrda9vURd7fSnVP1Sv6BbrjOL6Iw7nzv gAAAA== X-Change-ID: 20260429-arm_cs_clean_perf_handle-763cc339c1f5 To: Peter Zijlstra , Ingo Molnar , Shuah Khan , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Sumanth Korikkar Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-perf-users@vger.kernel.org, Leo Yan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778597999; l=1638; i=leo.yan@arm.com; s=20250604; h=from:subject:message-id; bh=NWjULvnU8a6sPqFhYgaMooTgTXZAkxXdJyvFa0WZLl8=; b=UYUkogu4jL1N1ROTPW+iYNkV3eI+mCN0hp5ZiSITmtzAqPghr3sEKw1Tyv/5+yx1ruri6kr2C JrA7oXHjKOgDPDLXnwsYfhfOisSaVqoUsY0W9vYHPjtC6rUEPZU8i8B X-Developer-Key: i=leo.yan@arm.com; a=ed25519; pk=k4BaDbvkCXzBFA7Nw184KHGP5thju8lKqJYIrOWxDhI= Commit 18dbcbfabfff ("perf: Fix the POLL_HUP delivery breakage") added a direct pmu->stop() call when the refresh limit reaches zero. The change was based on a test program [1] that reported missing POLL_HUP notifications. However, the test program used SIGIO, which is a standard signal and can be coalesced. As a result, userspace may miss signal delivery even though the signal was generated by the kernel. This is expected behaviour for standard signals. This series adds a selftest for the PERF_EVENT_IOC_REFRESH limit using a real-time signal, which guarantees queued signal delivery and confirms that POLL_HUP notifications are delivered reliably on arm64. With that verified, the direct pmu->stop() call introduced by commit 18dbcbfabfff can be reverted, since event disabling is already handled through perf_event_disable_inatomic(). [1] https://lore.kernel.org/lkml/aICYAqM5EQUlTqtX@li-2b55cdcc-350b-11b2-a85c-a78bff51fc11.ibm.com/ Signed-off-by: Leo Yan --- Leo Yan (2): selftests/perf_events: Add test for refresh limit signals Revert "perf: Fix the POLL_HUP delivery breakage" kernel/events/core.c | 1 - tools/testing/selftests/perf_events/.gitignore | 1 + tools/testing/selftests/perf_events/Makefile | 3 +- .../testing/selftests/perf_events/refresh_signal.c | 120 +++++++++++++++++++++ 4 files changed, 123 insertions(+), 2 deletions(-) --- base-commit: 50897c955902c93ae71c38698abb910525ebdc89 change-id: 20260429-arm_cs_clean_perf_handle-763cc339c1f5 Best regards, -- Leo Yan