{"action":"opened","issue":{"url":"https://api.github.com/repos/golang/go/issues/11466","labels_url":"https://api.github.com/repos/golang/go/issues/11466/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/11466/comments","events_url":"https://api.github.com/repos/golang/go/issues/11466/events","html_url":"https://github.com/golang/go/issues/11466","id":91837682,"number":11466,"title":"runtime: recycle large stack spans","user":{"login":"aclements","id":2688315,"avatar_url":"https://avatars.githubusercontent.com/u/2688315?v=3","gravatar_id":"","url":"https://api.github.com/users/aclements","html_url":"https://github.com/aclements","followers_url":"https://api.github.com/users/aclements/followers","following_url":"https://api.github.com/users/aclements/following{/other_user}","gists_url":"https://api.github.com/users/aclements/gists{/gist_id}","starred_url":"https://api.github.com/users/aclements/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aclements/subscriptions","organizations_url":"https://api.github.com/users/aclements/orgs","repos_url":"https://api.github.com/users/aclements/repos","events_url":"https://api.github.com/users/aclements/events{/privacy}","received_events_url":"https://api.github.com/users/aclements/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/25","html_url":"https://github.com/golang/go/milestones/Go1.6Early","labels_url":"https://api.github.com/repos/golang/go/milestones/25/labels","id":1182837,"number":25,"title":"Go1.6Early","description":"Go 1.6 issues that need to be fixed before the code freeze.\r\n","creator":{"login":"rsc","id":104030,"avatar_url":"https://avatars.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"open_issues":27,"closed_issues":0,"state":"open","created_at":"2015-06-26T15:47:06Z","updated_at":"2015-06-29T15:31:28Z","due_on":"2015-10-31T04:00:00Z","closed_at":null},"comments":0,"created_at":"2015-06-29T15:31:28Z","updated_at":"2015-06-29T15:31:28Z","closed_at":null,"body":"https://golang.org/cl/11502 fixes a race in concurrent GC by delaying the freeing of large stack spans until the end of mark termination. However, it's fine to reuse this memory for other stacks, as long as the span itself remains a stack span. We do this for small stacks because there's already a cache free small stacks. For 1.6, consider adding a similar mechanism that lets us reuse large stack spans and free only those that remain unused at the end of mark termination.\r\n\r\n@randall77 @rsc @RLH "}}