From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754570AbbHNAuX (ORCPT ); Thu, 13 Aug 2015 20:50:23 -0400 Received: from smtp35.i.mail.ru ([94.100.177.95]:46485 "EHLO smtp35.i.mail.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752135AbbHNAuW (ORCPT ); Thu, 13 Aug 2015 20:50:22 -0400 Subject: Re: [regression] x86/signal/64: Fix SS handling for signals delivered to 64-bit programs breaks dosemu To: Linus Torvalds References: <55CA90B4.2010205@list.ru> <55CCD921.4040301@list.ru> <20150813200823.GS2059@uranus> <55CD0F29.4070604@gmail.com> <55CD13F3.1070904@list.ru> <55CD1968.7070002@list.ru> <55CD1F79.2010508@list.ru> <55CD2F9A.9040300@list.ru> <55CD3382.5070506@list.ru> Cc: Andy Lutomirski , Raymond Jennings , Cyrill Gorcunov , Pavel Emelyanov , Linux kernel From: Stas Sergeev Message-ID: <55CD3B3F.9040203@list.ru> Date: Fri, 14 Aug 2015 03:50:07 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Mras: Ok Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 14.08.2015 03:27, Linus Torvalds пишет: > On Thu, Aug 13, 2015 at 5:17 PM, Stas Sergeev 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.