Live data from Hacker News

Viewing profile — felixge

felixge

HN member
Joined
Mon, Dec 07, 2009, 6:05 PM UTC
HN karma
1,709
Public activity
295 items

About felixge

felix.geisendoerfer@datadoghq.com

Blog: https://blog.felixge.de/ Old Blog: http://felixge.de/ Twitter: http://twitter.com/felixge GitHub: http://github.com/felixge

Recent public activity

  1. 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…

  2. 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…

  3. story
  4. 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…

  5. 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 …

  6. 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…

  7. 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).

  8. story
  9. story
  10. story
  11. comment
    Comment #41239107

    This is great, thank you.

  12. story
  13. 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…

  14. comment
    Comment #40525074

    That seems to be windows only? My main target OS is Linux.

  15. comment
    Comment #40523077

    Thank you so much, this is very helpful and interesting. I'll try to experiment with this at some point.

  16. 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…

  17. 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…

  18. 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.

  19. 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…

  20. 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 …

  21. comment
    Comment #40520823

    OP here, happy to answer any question.

  22. 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…

  23. story
  24. 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...

  25. 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…