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

Add support for Classic ETW providers in NetPerf #1259

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mjsabby
Copy link
Contributor

@mjsabby mjsabby commented Sep 7, 2020

This adds more complete ETW parity within the NetPerf file format. These changes are lessons learnt from BPerf's file format which can round trip between BTL files and ETL files and visual inspection in PerfView for many different scenarios that gave us the confidence that they are "visually indistinguishable".

If you look at the changes, they are not very invasive and allow users of NetPerf to enjoy some of the ETL benefits much as we have with our BTL format. Furthermore, this allows complete deprecation of the BTL file format. Note: Compression is an additional required feature for deprecation which is covered in a different PR.

  • _processNameForID is a dictionary that tracks process names, this piece of code is needed so that pretty process names show up when the data is in the trace. This is copied straight from ETWTraceEventSource.cs
  • traceEvent.FixupData() needs to be called because many out-of-box TraceEvent parsers do fix ups for various reasons.
  • Introduce WindowsClassicEventProviderGuid tag kind which informs two properties: classic event, provider guid

@mjsabby
Copy link
Contributor Author

mjsabby commented Sep 7, 2020

cc @noahfalk .. I can't request a review from you (weird).

@brianrob
Copy link
Member

brianrob commented Sep 8, 2020

@mjsabby, are there corresponding runtime changes for this? I would assume the answer is yes, since this requires emitting kernel events into the trace, which won't ever be there in the case of the nettrace files.

@mjsabby
Copy link
Contributor Author

mjsabby commented Sep 8, 2020

@brianrob no, I don't think the runtime will ever emit it unless the runtime is changed to do so. This is a file format change, to allow a writer to specify this so that we can get parity with what BPerf does so we can deprecate it.

Base automatically changed from master to main February 2, 2021 23:16
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.

2 participants