runtime: only trace mark assists that do work
runtime: only trace mark assists that do work

Currently we trace mark assists even if they're satisfied entirely by
stealing. This means even if background marking is keeping up with
allocation, we'll still emit a trace event every N bytes of
allocation. The event will be a few microseconds, if that, but they're
frequent enough that, when zoomed out in the trace view, it looks like
all of the time is spent in mark assists even if almost none is.

Change this so we only emit a trace event if the assist actually has
to do assisting. This makes the traces of these events far more
useful.

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

codestation/go,CAFxX/go,nawawi/go,Cofyc/go,cloudflare/go,polyverse-security/go,codestation/go,josharian/go,golang/go,cloudflare/go,polyverse-security/go,CAFxX/go,codestation/go,cloudflare/go,vsekhar/elastic-go,polyverse-security/go,josharian/go,codestation/go,nawawi/go,Cofyc/go,vsekhar/elastic-go,akutz/go,akutz/go,cloudflare/go,Cofyc/go,vsekhar/elastic-go,nawawi/go,codestation/go,josharian/go,akutz/go,CAFxX/go,nawawi/go,golang/go,Cofyc/go,josharian/go,Cofyc/go,nawawi/go,codestation/go,cloudflare/go,golang/go,Cofyc/go,CAFxX/go,akutz/go,vsekhar/elastic-go,golang/go,josharian/go,akutz/go,CAFxX/go,Cofyc/go,polyverse-security/go,CAFxX/go,josharian/go,cloudflare/go,akutz/go,josharian/go,polyverse-security/go,nawawi/go,polyverse-security/go,nawawi/go,vsekhar/elastic-go,vsekhar/elastic-go,christopher-henderson/Go,polyverse-security/go,josharian/go,vsekhar/elastic-go,Cofyc/go,CAFxX/go,golang/go,akutz/go,vsekhar/elastic-go,cloudflare/go,nawawi/go,akutz/go,codestation/go,golang/go,golang/go,cloudflare/go,polyverse-security/go,CAFxX/go,codestation/go,golang/go