You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We should get rid of the buffer copy in number 2 above, and just plumb an API down that takes the set of pointers to blobs and writes them directly into the circular buffer.
The text was updated successfully, but these errors were encountered:
Searching the source code I find this to be the only place where EventPipeInternal::WriteEvent is called. Similarly EventPipe::WriteEvent (the cpp side) appears to only be called from EventPipeInternal::WriteEvent
Does that mean I can safely change the expected format of pData for these two functions as a way to eliminate the need for this buffer copy (to flatten the data), or should I create a new API in the cpp code which can take the unflattened data?
EventPipeInternal::WriteEvent is only called from the one place that you reference above. That's the managed --> native call from EventSource into the EventPipe. That's where we want to reduce buffer copies.
EventPipeInternal::WriteEvent is not the only caller of WriteEvent, but might be the only "searchable" caller if you search in GitHub. It is also called from code that is generated during the build. You can see the call in the script that generates the code here: https://github.com/dotnet/coreclr/blob/master/src/scripts/genEventPipe.py#L111. This is the script that generates the "FireEtw*" functions that call into the EventPipe.
There is currently an extra buffer copy in the EventSource log path that we should remove.
This is the set of copies that occur:
We should get rid of the buffer copy in number 2 above, and just plumb an API down that takes the set of pointers to blobs and writes them directly into the circular buffer.
The text was updated successfully, but these errors were encountered: