Skip to content

Push 2026 04 06#1010

Merged
opcm merged 29 commits intomasterfrom
push-2026-04-06
Apr 9, 2026
Merged

Push 2026 04 06#1010
opcm merged 29 commits intomasterfrom
push-2026-04-06

Conversation

@rdementi
Copy link
Copy Markdown
Contributor

@rdementi rdementi commented Apr 9, 2026

No description provided.

Copilot AI and others added 29 commits March 2, 2026 12:31
Changes:
- Add getDieId() accessor to PCM class in cpucounters.h
- Add --die option parsing in pcm.cpp
- Add die-level aggregation in print_output() (normal mode)
- Add die-level aggregation in print_csv_header() and print_csv() (CSV mode)
- Update print_help() with new option documentation
- Update fuzz test to exercise the new code path

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rdementi <25432609+rdementi@users.noreply.github.com>
* Add native PCIe metrics collection and export support

- Move IPlatform::getPlatform() from pcm-pcie.cpp to pcm-pcie.h as inline
  so both pcm-pcie (CLI) and pcm-sensor-server (HTTP exporter) can
  instantiate platform objects without duplicating the factory logic
- Add pcm-pcie-collector.h for Prometheus-style PCIe metrics collection
- Expose IPlatform data accessors (getReadBw, getWriteBw, event, etc.)
  as public so PCIeCollector can read metrics externally
- Extend pcm-sensor-server.cpp with PCIe metrics HTTP endpoints
- Replace exit() with throw std::runtime_error() for server safety
- Use override instead of virtual for compile-time correctness
- Fix build warning in pcm-pcicfg.cpp
…sr.sys drivers from System32 instead of current directory
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Clarify that the notice file must accompany any distribution or
release of the software, including binary installers and other
release artifacts.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Add CMake install rule so third-party-software.txt is packaged alongside perfmon data in DEB/RPM/TXZ release artifacts.
For Windows: updated AppVeyor file and ci-windows for verification.
Added 3rd parties software notice file
Change-Id: Ic264b1738bcb70025ce87462012661ea74c5e873
Change-Id: I7e1f84f8d694788dbdc0be036ef896a77e8bb863
Change-Id: I199f3bda367c2ac2591fc2c3a2ad19b6dee93721
Use thread-safe pcm_localtime() instead of localtime() in debug output to avoid potential race conditions and ensure cross-platform compatibility.

Change-Id: Ib63f09f708590a7e185d9053d000aa9b0ba2654a
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replace unsafe CRT functions with their secure alternatives on Windows:
- fopen -> fopen_s in pcm-msr.cpp
- gmtime -> gmtime_s in pcm-sensor-server.cpp
- localtime -> localtime_s in pcm-sensor-server.cpp
- strerror -> strerror_s in pcm-sensor-server.cpp

These changes are Windows-specific using #ifdef _MSC_VER, preserving standard functions on other platforms.

Change-Id: I18004fa5263332ae69ff7a6466b645c0724cf450
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Remove unused exception variable names in catch blocks in pcm-sensor-server.cpp. The exceptions are caught but not inspected, so use anonymous catch syntax.

Fixed 3 instances of "unreferenced local variable 'e'" warnings.

Change-Id: I094dc3a4f06afb888e7cf42f7c93575edb4da5b1
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Avoid redefining standard errno macros (EAGAIN, EWOULDBLOCK) by introducing PCM-specific versions:
- PCM_EAGAIN: maps to WSAEWOULDBLOCK on Windows, EAGAIN on Unix
- PCM_EWOULDBLOCK: maps to WSAEWOULDBLOCK on Windows, EWOULDBLOCK on Unix

This prevents macro redefinition warnings on modern Windows SDKs that include POSIX error codes in errno.h.

Change-Id: Ibb9cc407b541102b9e4b6c7db774e8e8a3280231
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Store the result of callbackList_[request.method()] in a variable to avoid:
1. Computing the lookup twice (more efficient)
2. C4550 warning: "expression evaluates to a function which is missing an argument list"

The warning occurred because the code was dereferencing the function pointer for the null check, which the compiler interpreted as trying to evaluate the function without calling it.

Change-Id: Ic63727b617b18d01fca3e69c93a8d8600537a6af
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Change-Id: I5876d70c6cce5251e0a9dd59a20eddf7b58b8177
Document the fix for MSVC compilation error caused by max macro conflict with std::numeric_limits<T>::max(). Explains the root cause, solution, and best practices for avoiding Windows macro conflicts.

Change-Id: I697e5a071bb57c1cd73527ec120cdf97461de800
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Change-Id: Ib218bcf66b5c60d3f3f2138b2389d19587d8a5cf
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@opcm opcm merged commit abb6bce into master Apr 9, 2026
46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants