Hacker News new | ask | show | jobs
by timClicks 2806 days ago
But wouldn't the consequence of spawning millions of native threads be to spill those virtual addresses into many, many pages and incur many more TLB misses and page faults generally?
1 comments

Only the portions of the stack that are actually touched trigger a TLB miss and page fault. If you've got a million threads but each only touches the first 4K of stack space, you end up only touching 4G of RAM even though you've mapped 1T of it.
When you have terabytes of RAM you want large pages anyways.
As each stack will need to use [1] at least one page of physical memory, large pages are not great for stacks as they will normally waste memory.

[1] for classic contiguous stacks of course. That doesn't apply for separately allocated frames or segmented stacks.