Description
Under some conditions (e.g. promotions) a thread will synchronously wait for concurrent marking to finish. This could block a thread for prolonged periods of time.
We should investigate possibilities to split this time up into smaller chunks, possibly by making fast-allocating-threads "take a small break" if they know the concurrent marker will have hard time catching up. Possibly by making such threads even help with marking.
Furthermore we see sometimes back-to-back new-space collection with finalization of concurrent mark (as well as parallel mark). We should think about possible ways to avoid this, because doing two such already long synchronous operations back-to-back can create even longer synchronous pauses.
I'll attach an example timeline trace that was created using a slightly modified version of https://gist.github.com/mit-mit/ffa606e17569cecbd2c47c234ac1be21#file-isolate2-perf-md
/cc @rmacnak-google has some ideas here.