[dev.garbage] runtime: revive sweep fast path
[dev.garbage] runtime: revive sweep fast path

sweep used to skip mcental.freeSpan (and its locking) if it didn't
find any new free objects. We lost that optimization when the
freed-object counting changed in dad83f7 to count total free objects
instead of newly freed objects.

The previous commit brings back counting of newly freed objects, so we
can easily revive this optimization by checking that count (like we
used to) instead of the total free objects count.

Change-Id: I43658707a1c61674d0366124d5976b00d98741a9
Reviewed-on: https://go-review.googlesource.com/22596
Run-TryBot: Austin Clements <7ea35d812706d9213868749011af1ed4fa2f6aa0@google.com>
Reviewed-by: Rick Hudson <838bd060584c511f21c75c69ea04b7b120d86af0@golang.org>

Cofyc/go,vsekhar/elastic-go,momchil-velikov/go,linux-on-ibm-z/go,derekmarcotte/go,goodlang/good,4ad/go,nawawi/go,suncycheng/go,josharian/go,golang/go,josharian/go,momchil-velikov/go,ImJasonH/go,vsekhar/elastic-go,cloudflare/go,goodlang/good,goodlang/good,polyverse-security/go,linux-on-ibm-z/go,CAFxX/go,momchil-velikov/go,polyverse-security/go,4ad/go,nawawi/go,goodlang/good,CAFxX/go,ganboing/go-esx,derekmarcotte/go,nawawi/go,4ad/go,4ad/go,CAFxX/go,ImJasonH/go,vsekhar/elastic-go,linux-on-ibm-z/go,vsekhar/elastic-go,cloudflare/go,Cofyc/go,akutz/go,golang/go,momchil-velikov/go,theif519/go,nawawi/go,4ad/go,akutz/go,vsekhar/elastic-go,4ad/go,momchil-velikov/go,cloudflare/go,derekmarcotte/go,cloudflare/go,theif519/go,polyverse-security/go,goodlang/good,momchil-velikov/go,ImJasonH/go,josharian/go,golang/go,theif519/go,josharian/go,theif519/go,theif519/go,suncycheng/go,nawawi/go,Cofyc/go,akutz/go,akutz/go,linux-on-ibm-z/go,ImJasonH/go,ganboing/go-esx,golang/go,derekmarcotte/go,nawawi/go,ganboing/go-esx,josharian/go,theif519/go,Cofyc/go,linux-on-ibm-z/go,ganboing/go-esx,nawawi/go,ganboing/go-esx,josharian/go,codestation/go,codestation/go,linux-on-ibm-z/go,christopher-henderson/Go,theif519/go,vsekhar/elastic-go,nawawi/go,codestation/go,ganboing/go-esx,goodlang/good,ganboing/go-esx,akutz/go,CAFxX/go,ImJasonH/go,suncycheng/go,polyverse-security/go,codestation/go,suncycheng/go,Cofyc/go,polyverse-security/go,CAFxX/go,josharian/go,cloudflare/go,suncycheng/go,golang/go,vsekhar/elastic-go,CAFxX/go,Cofyc/go,cloudflare/go,polyverse-security/go,akutz/go,Cofyc/go,Cofyc/go,codestation/go,4ad/go,golang/go,codestation/go,polyverse-security/go,4ad/go,CAFxX/go,ImJasonH/go,derekmarcotte/go,momchil-velikov/go,ganboing/go-esx,goodlang/good,josharian/go,suncycheng/go,cloudflare/go,golang/go,derekmarcotte/go,golang/go,codestation/go,akutz/go,ImJasonH/go,ImJasonH/go,polyverse-security/go,linux-on-ibm-z/go,vsekhar/elastic-go,CAFxX/go,suncycheng/go,goodlang/good,linux-on-ibm-z/go,theif519/go,derekmarcotte/go,akutz/go,cloudflare/go,derekmarcotte/go,momchil-velikov/go,codestation/go,suncycheng/go