On Thu, Aug 13, 2015 at 5:50 PM, Stas Sergeev <s...@list.ru> wrote: > 14.08.2015 03:27, Linus Torvalds пишет: >> >> On Thu, Aug 13, 2015 at 5:17 PM, Stas Sergeev <s...@list.ru> wrote: >>> >>> For example because you can as well do: >>> prctl(ARCH_SET_SIGNAL_SS, 0) >>> which will mean "restore ss in sighandler to its current value", >> >> I really think a prctl() is the wrong thing to do. >> >> If you want a signal handler to save/restore segments, I think it >> should be a SA_xyz flag to sigaction() (the way we have SA_RESTART > > Yes, I was proposing the new sigaction() flag in this thread > already too. But at the end, prctl() looks better to me because > it allows to pass the TLS value to use when restoring FS. > The thing is that I am trying to find the similar treatment for > both the SS and FS problems. If you don't think they need a > similar treatment, then perhaps the Andy's patch is enough. > >> etc). And off by default because of the obvious compatibility issues. > > Of course. > > So, what we have right now (in the latest Andy's patch) is: > 1. lar heuristics > 2. new uc_flags flag > > What it solves: dosemu's regression. > > What prctl() can give: > - fix to dosemu's regression > - fix to the TLS problem in the future > - no hack and heuristics > > With SA_xyz you can only solve the SS problem, so it is > probably not any better than the uc_flags things coded > up by Andy.
I'm leaning slightly toward LAR heuristic + SA_SAVE_SS. Using a sigaction flag is a bit less weird than using uc_flags. It's also kind of nice that it's more composable -- you can install a SIGUSR1 handler that's just normal code and set SA_SAVE_SS and it'll work, whereas with uc_flags you need to explicitly twiddle uc_flags in the handler. Unfortunately, I don't think we were clever enough to allow this to be probed easily -- we silently ignore unrecognized sa_flags bits. --Andy -- Andy Lutomirski AMA Capital Management, LLC -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/