divan/gotrace

Upstreaming channel send/recv events

Opened this issue · 2 comments

This is a very useful feature. Was there any effort to upstream the runtime changes to upstream? It would greatly help to see the channel send/receive events in traces. Currently, channel events under the select statement do not appear in traces and using channels in select cases is very common.

divan commented

Hey, nope. I did a couple of attempts to update the code to the latest Go version, but it needed more time than I was able to devote to this.
The project was mainly for the educational purposes and for the article, so there is not much reason to keep it updated – not like people using this is on daily basis.

I'll try to find some spare time to see if I can update with tip, but if anyone willing to join me and send/discuss PR, I'd be more than happy.

@divan, this seems like one of the critically missing pieces in Go tracing. Although your project was educational in nature, the runtime changes solve an important problem in tracing. While I can try to migrate your runtime changes to the tip, probably you know the code best to make it happen, along with the necessary tweaks to the tools that depend on trace events. The issue with not upstreaming is that the adoption will be negligible. Hardly any code in production would be willing to use a patched go runtime, whereas including it in the upstream will immediately avail its benefits to all users.