Austin Clements
Austin Clements
For the number of runnable goroutines, that would be quite reasonable to add to `runtime/metrics`. I actually thought we had that, but it looks like we only have to total...
> For example, running a quick workload (95% reads and 5% writes against a CockroachDB SQL table) shows that throughput drops by at least 8% when profiling with a one...
Just checking if this is related to #35777. What kernel version are you running? Does the application itself receive a lot of signals?
Alternatively, we could have an annotation that says a C call does not call back into Go. That captures a user intent rather than a language implementation detail, and we...
`//go:cgo_no_go_callback`? We use the term "callback" in the runtime for this, but it could be interpreted as "this doesn't take a callback function pointer." `//go:cgo_no_go_calls`?
That's an interesting point. That's probably something we'd want to account for in the documentation of any such directive (and maybe in its name), but I'm not sure that having...
> That depends, it could be very significant - when it's heavily using cgo and escaping Go objects frequency - with large GC overhead. It would be valuable to quantify...
Now that #54880 has been accepted and the implementation has landed, it should be possible to make the global source lock-free.
I'm not sure we can do much from this traceback. goroutine 10 is in a long loop that does a no-op cgo call and is supposed to check the time...
This reproduces pretty quickly on my linux/amd64 laptop with: ```sh cd runtime go test -c GOFLAGS="-gcflags=runtime=-d=maymorestack=runtime.mayMoreStackPreempt -gcflags=runtime/testdata/...=" stress2 ./runtime.test -test.run=CrashDumpsAllThreads -test.timeout=30m ``` Of course, my usual first step would be...