On Tue, Mar 23, 2021 at 11:53:04AM -0500, Madhavan T. Venkataraman wrote: > On 3/23/21 11:48 AM, Mark Rutland wrote: > > On Tue, Mar 23, 2021 at 10:26:50AM -0500, Madhavan T. Venkataraman wrote: > >> So, my next question is - can we define a practical limit for the > >> nesting so that any nesting beyond that is fatal? The reason I ask is > >> - if there is a max, then we can allocate an array of stack frames out > >> of band for the special frames so they are not part of the stack and > >> will not likely get corrupted. > >> Also, we don't have to do any special detection. If the number of out > >> of band frames used is one or more then we have exceptions and the > >> stack trace is unreliable. > > > > What is expected to protect against? > > It is not a protection thing. I just wanted a reliable way to tell that there > is an exception without having to unwind the stack up to the exception frame. > That is all. I see. Given that's an optimization, we can consider doing something like that that after we have the functional bits in place, where we'll be in a position to see whether this is even a measureable concern in practice. I suspect that longer-term we'll end up trying to use metadata to unwind across exception boundaries, since it's possible to get blocked within those for long periods (e.g. for a uaccess fault), and the larger scale optimization for patching is to not block the patch. Thanks, Mark.