Skip to content

[IO] parallelize IO startup

Florian Fischer requested to merge aj46ezos/emper:parallelize_io_startup into master

One huge machines (for example big04) serializing the IoContexts creation takes a considerable amount of time.

Now each worker creates its own IoContext in parallel speeding up the Runtime constructor with the cost of an additional mutex per GlobalIoContext and an additional Semaphore per Runtime.

GlobalIoContext::registerWorkerIo() now protects the GlobalIoContext's SQ with a mutex and the globalCompleter waits till all worker's registered their IoContext with the new Sempahore Runtime.ioReadySem.

Merge request reports