Re:Libaco: A fast and lightweight C asymmetric coroutine lib...
by akvadrako on Saturday July 14, 2018 @10:22AM
(#17530447)
That's not a good reason. That is virtual address space, not physical memory, and processes have plenty of it, usually about 280TB.
Re:Libaco: A fast and lightweight C asymmetric coroutine lib...
by jnwatson on Saturday July 14, 2018 @11:39PM
(#17533674)
You have a very small number of values that can stay in L2 cache on a 2 MiB boundary, 12 on Skylake. The data TLB is only 4 way. Modern high performance software is about cache management, and spreading your data across swaths of page-aligned memory without strong control of when you get scheduled out underutilizes that most precious resource on the CPU.
Mainly because stackless coroutines do not require separate stacks for each thread of execution. The default stack size in Linux is iirc 2 MB but grows as required, of course.