Viewing profile — felixge
felixge
HN member- Joined
- Mon, Dec 07, 2009, 6:05 PM UTC
- HN karma
- 1,709
- Public activity
- 295 items
- HN profile
- View on Hacker News ↗
About felixge
Blog: https://blog.felixge.de/ Old Blog: http://felixge.de/ Twitter: http://twitter.com/felixge GitHub: http://github.com/felixge
Recent public activity
-
comment
Comment #47547408
We had reached out to y'all last year to explore taking ideas from your format. It definitely looks interesting! But IIRC nobody from your team ended up making it to one of our SIG…
-
comment
Comment #47533056
OTel Profiling SIG maintainer here: I understand your concern, but we’ve tried our best to make things efficient across the protocol and all involved components. Please let us know…
- story
-
comment
Comment #45347449
Do you think the GC roots alone (goroutine stacks with goroutine id, package globals) would be enough? I think in many cases you'd want the reference chains. The GC could certainly…
-
comment
Comment #45345569
I'd love to hear more! What kind of profiling issues are you running into? I'm assuming the inuse memory profiles are sometimes not good enough to track down leaks since they only …
-
comment
Comment #44651227
Hacking into the Go runtime with eBPF is definitely fun. But for a more long term solution in terms of reliability and overhead, it might be worth raising this as a feature request…
-
comment
Comment #43547083
+1. In particular []byte slice allocations are often a significant driver of GC pace while also being relatively easy to optimize (e.g. via sync.Pool reuse).
- story
- story
- story
-
comment
Comment #41239107
This is great, thank you.
- story
-
comment
Comment #40528716
I'm skeptical that it's worth it myself, this was just a fun research project for me. But once hardware shadow stacks are available, I think this could be great. To answer your fir…
-
comment
Comment #40525074
That seems to be windows only? My main target OS is Linux.
-
comment
Comment #40523077
Thank you so much, this is very helpful and interesting. I'll try to experiment with this at some point.
-
comment
Comment #40522586
Thanks for the reply! What does the API for accessing the shadow stack from user space look like? I didn't see anything for it in the kernel docs [1]. I agree about the need for sw…
-
comment
Comment #40521737
I don't think any obvious 10%+ opportunities have been overlooked. Go is optimizing for fast and simple builds, which is a bit at odds with optimal code gen. So I think the biggest…
-
comment
Comment #40521192
That's what hardware shadow stacks in modern intel/arm CPUs can do! It just needs to be exposed to user space and become widely available.
-
comment
Comment #40521074
I know that at least two engineers from the runtime team have seen the post in the #darkarts channel of gopher slack. One of them left a fire emoji :). I'll probably bring it up in…
-
comment
Comment #40520999
Thanks! And to answer you question: No, it won't speed up Go programs for now. This was mostly a fun research project for me. The low hanging fruits to speed up stack unwinding in …
-
comment
Comment #40520823
OP here, happy to answer any question.
-
comment
Comment #40499313
Thanks for the reply. I ended up implementing this idea in Go and wrote a blog post about the results: https://blog.felixge.de/blazingly-fast-shadow-stacks-for-go/ I'm curious if y…
- story
-
comment
Comment #40459715
Looking at the code [1] it seems like the library is actively trying to handle this problem. [1] https://github.com/koute/not-perf/blob/master/nwind/src/loca...
-
comment
Comment #40458215
Dynamic patching of return addresses is a very cool trick. I don't think I've seen this before. Have you run into any situations where this crashes programs or otherwise interferes…