Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dwc eqos perf counters #21

Merged
merged 2 commits into from
Dec 29, 2023
Merged

Dwc eqos perf counters #21

merged 2 commits into from
Dec 29, 2023

Conversation

idigdoug
Copy link
Collaborator

To help with tuning and diagnostics, expose some performance counters so
developers can see some of the adapter state without debugging. You can
use Windows in-box tools like perfmon or typeperf to see the values.

  • dwc_eqos-debug: debug event counts like ISR-handled, ISR-unhandled,
    DPC-by-type.
  • dwc_eqos-mac: values of various GMAC registers, mainly the MMC counters.

Overview:

  • Keep a collection of active devices so we can enumerate them if
    anybody asks to collect performance counters.
  • Define an ID for each device. Use the device's physical address for
    this, shifted right by 4 to provide support for 36 bits of physical
    address.
  • Change the AXI bus parameters to match the docs. I didn't actually perform
    any tuning here - I just changed the parameters to match up with what
    the docs describe and verified that this didn't break anything.
  • Enable the MMC counters and mask their rollover interrupts.
  • Implement PCW counter collection.
  • Run ctrpp on the performance counter manifest during build.
  • Include the generated resources into the driver during build.

To help with tuning and diagnostics, expose some performance counters so
developers can see some of the adapter state without debugging. You can
use Windows in-box tools like perfmon or typeperf to see the values.

- dwc_eqos-debug: debug event counts like ISR-handled, ISR-unhandled,
  DPC-by-type.
- dwc_eqos-mac: values of various GMAC registers, mainly the MMC counters.

Overview:

- Keep a collection of active devices so we can enumerate them if
  anybody asks to collect performance counters.
- Define an ID for each device. Use the device's physical address for
  this, shifted right by 4 to provide support for 36 bits of physical
  address.
- Change the AXI bus parameters to match the docs. I didn't actually perform
  any tuning here - I just changed the parameters to match up with what
  the docs describe and verified that this didn't break anything.
- Enable the MMC counters and mask their rollover interrupts.
- Implement PCW counter collection.
- Run ctrpp on the performance counter manifest during build.
- Include the generated resources into the driver during build.
@idigdoug idigdoug merged commit 42f2292 into master Dec 29, 2023
2 checks passed
@idigdoug idigdoug deleted the dwc_eqos_perf_counters branch December 29, 2023 18:25
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.

4 participants