diff for duplicates of <cover.1691900000.git.irogers@google.com> diff --git a/a/1.txt b/N1/1.txt index 571630c..4bf3281 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -50,8 +50,10 @@ The driver has been rigorously validated on real hardware: refresh cycles, Cortex-A76 DSU L3 interconnect memory traffic, and PCIe RP1 Southbridge transfers independently configuring `bcm2712_` filters. -Changes in v9 (Addressing upstream integration feedback) +Changes in v10 (Addressing upstream integration feedback) ============================== +- Removed the unused `num_started` state tracking variable from `struct rpi_axi_hw_events` + and its associated start/stop increments, cleanly addressing a reviewer's note on dead code. - Replaced `flush_work()` with `cancel_work_sync()` in the `rpi_axi_pmu__exit` and initialization error paths, rigorously ensuring no asynchronous VPU worker threads continue executing after PMU subsystem termination. diff --git a/a/content_digest b/N1/content_digest index c8ffb1f..e23cf96 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,14 +1,12 @@ - "ref\020260813064228.2799872-1-irogers@google.com\0" "From\0Ian Rogers <irogers@google.com>\0" - "Subject\0[PATCH v9 0/2] perf: Add Raspberry Pi AXI PMU driver\0" - "Date\0Thu, 13 Aug 2026 00:30:43 -0700\0" + "Subject\0[PATCH v10 0/2] perf: Add Raspberry Pi AXI PMU driver\0" + "Date\0Thu, 13 Aug 2026 01:03:07 -0700\0" "To\0irogers@google.com" linux-perf-users@vger.kernel.org " linux-rpi-kernel@lists.infradead.org\0" "Cc\0linux-arm-kernel@lists.infradead.org" linux-kernel@vger.kernel.org mark.rutland@arm.com - u.kleine-koenig@baylibre.com " will@kernel.org\0" "\00:1\0" "b\0" @@ -64,8 +62,10 @@ " refresh cycles, Cortex-A76 DSU L3 interconnect memory traffic, and PCIe RP1\n" " Southbridge transfers independently configuring `bcm2712_` filters.\n" "\n" - "Changes in v9 (Addressing upstream integration feedback)\n" + "Changes in v10 (Addressing upstream integration feedback)\n" "==============================\n" + "- Removed the unused `num_started` state tracking variable from `struct rpi_axi_hw_events`\n" + " and its associated start/stop increments, cleanly addressing a reviewer's note on dead code.\n" "- Replaced `flush_work()` with `cancel_work_sync()` in the `rpi_axi_pmu__exit` \n" " and initialization error paths, rigorously ensuring no asynchronous VPU worker\n" " threads continue executing after PMU subsystem termination.\n" @@ -96,4 +96,4 @@ "-- \n" 2.41.0 -a9379c7664d5d12cb4bbee1905d7462dc6e6e533691e51541b478d360f76c4eb +aa752e07ea97db2b7120a4e7da369e8bfd6ce30918858a65144d4816640103b9
diff --git a/a/1.txt b/N2/1.txt index 571630c..49aea50 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -50,11 +50,18 @@ The driver has been rigorously validated on real hardware: refresh cycles, Cortex-A76 DSU L3 interconnect memory traffic, and PCIe RP1 Southbridge transfers independently configuring `bcm2712_` filters. -Changes in v9 (Addressing upstream integration feedback) +Changes in v11 (Addressing upstream integration feedback) ============================== -- Replaced `flush_work()` with `cancel_work_sync()` in the `rpi_axi_pmu__exit` - and initialization error paths, rigorously ensuring no asynchronous VPU worker - threads continue executing after PMU subsystem termination. +- Removed the unused `num_started` state tracking variable from `struct rpi_axi_hw_events` + and its associated start/stop increments, cleanly addressing a reviewer's note on dead code. +- Eliminated KCSAN data race warnings in `rpi_axi_pmu_read_counter()`. Annotated + the `enabled[idx]` flag with `READ_ONCE()` during lockless VPU thread polling, and matching + `WRITE_ONCE()` barriers during subsystem teardowns. +- Restored `flush_work()` in `rpi_axi_pmu__exit`. When the module is unloaded, + `perf_pmu_unregister()` asynchronously schedules `vpu_work` to gracefully + disable the physical VideoCore IPC hardware. Using `cancel_work_sync()` was + blindly dropping these critical queued disables, silently leaking running hardware monitors! + Included an explicit defensive comment mathematically documenting this dependency. - Inverted PMU and CPU hotplug initialization sequence in `probe()` to cleanly eliminate a theoretical `devm_kzalloc` memory UAF race. - Embedded a robust boolean initialization guard physically into the diff --git a/a/content_digest b/N2/content_digest index c8ffb1f..1502537 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,15 +1,12 @@ - "ref\020260813064228.2799872-1-irogers@google.com\0" "From\0Ian Rogers <irogers@google.com>\0" - "Subject\0[PATCH v9 0/2] perf: Add Raspberry Pi AXI PMU driver\0" - "Date\0Thu, 13 Aug 2026 00:30:43 -0700\0" + "Subject\0[PATCH v11 0/2] perf: Add Raspberry Pi AXI PMU driver\0" + "Date\0Thu, 13 Aug 2026 07:26:02 -0700\0" "To\0irogers@google.com" linux-perf-users@vger.kernel.org " linux-rpi-kernel@lists.infradead.org\0" "Cc\0linux-arm-kernel@lists.infradead.org" linux-kernel@vger.kernel.org - mark.rutland@arm.com - u.kleine-koenig@baylibre.com - " will@kernel.org\0" + " mark.rutland@arm.com\0" "\00:1\0" "b\0" "This patch series adds an uncore Performance Monitoring Unit (PMU) driver\n" @@ -64,11 +61,18 @@ " refresh cycles, Cortex-A76 DSU L3 interconnect memory traffic, and PCIe RP1\n" " Southbridge transfers independently configuring `bcm2712_` filters.\n" "\n" - "Changes in v9 (Addressing upstream integration feedback)\n" + "Changes in v11 (Addressing upstream integration feedback)\n" "==============================\n" - "- Replaced `flush_work()` with `cancel_work_sync()` in the `rpi_axi_pmu__exit` \n" - " and initialization error paths, rigorously ensuring no asynchronous VPU worker\n" - " threads continue executing after PMU subsystem termination.\n" + "- Removed the unused `num_started` state tracking variable from `struct rpi_axi_hw_events`\n" + " and its associated start/stop increments, cleanly addressing a reviewer's note on dead code.\n" + "- Eliminated KCSAN data race warnings in `rpi_axi_pmu_read_counter()`. Annotated\n" + " the `enabled[idx]` flag with `READ_ONCE()` during lockless VPU thread polling, and matching\n" + " `WRITE_ONCE()` barriers during subsystem teardowns.\n" + "- Restored `flush_work()` in `rpi_axi_pmu__exit`. When the module is unloaded, \n" + " `perf_pmu_unregister()` asynchronously schedules `vpu_work` to gracefully\n" + " disable the physical VideoCore IPC hardware. Using `cancel_work_sync()` was \n" + " blindly dropping these critical queued disables, silently leaking running hardware monitors!\n" + " Included an explicit defensive comment mathematically documenting this dependency.\n" "- Inverted PMU and CPU hotplug initialization sequence in `probe()` \n" " to cleanly eliminate a theoretical `devm_kzalloc` memory UAF race.\n" "- Embedded a robust boolean initialization guard physically into the \n" @@ -96,4 +100,4 @@ "-- \n" 2.41.0 -a9379c7664d5d12cb4bbee1905d7462dc6e6e533691e51541b478d360f76c4eb +c4c50820c88f8a513f17f9e5da6688b53f93824485a75a3b69874080a69e4dd1
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox