3 ms·
Compilers generating stack probes for large stack allocations has been a thing for decades. It was required in Windows 95 for 32-bit applications, and you'd do
by barrkel 3y ago
Compilers generating stack probes for large stack allocations has been a thing for decades. It was required in Windows 95 for 32-bit applications, and you'd do that on a page (4k) granularity.
I am still in the dark as to what the bug was here. Did Firefox stop doing probes for JIT code? Not do them at all, because most JS stack frames are small?
- db48x 3y agoFirefox was probing ahead in increments of 2048 bytes in order to ensure that the stack was allocated, but it left the stack pointer at the end of the stack for that whole time. This usually worked ok, but certain versions of Linux will bail if the stack probe is greater than 64kb+256b away from the stack pointer. The new code moves the stack pointer incrementally so that the probe is never more than a single page from the stack pointer. https://phabricator.services.mozilla.com/rMOZILLACENTRAL304d01f5488b384023a1c647e8c5c2f5cee32a5b https://phabricator.services.mozilla.com/rMOZILLACENTRAL304d...