• Dmitriy Vyukov's avatar
    runtime: cache one GC workbuf in thread-local storage · f6f2f771
    Dmitriy Vyukov authored
    We call scanblock for lots of small root pieces
    e.g. for every stack frame args and locals area.
    Every scanblock invocation calls getempty/putempty,
    which accesses lock-free stack shared among all worker threads.
    One-element local cache allows most scanblock calls
    to proceed without accessing the shared stack.
    
    LGTM=rsc
    R=golang-codereviews, rlh
    CC=golang-codereviews, khr, rsc
    https://golang.org/cl/121250043
    f6f2f771
mcache.c 2.51 KB