From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: [PATCH 05/22] x86/fpu: Remove fpu->initialized usage in copy_fpstate_to_sigframe() Date: Tue, 26 Feb 2019 17:38:22 +0100 Message-ID: <20190226163821.GC21443@redhat.com> References: <20190109114744.10936-1-bigeasy@linutronix.de> <20190109114744.10936-6-bigeasy@linutronix.de> <20190116193603.GK15409@zn.tnic> <20190116224037.xkfnevzkwrck5dtt@linutronix.de> <20190117122253.GC5023@zn.tnic> <20190118211401.4komqsnvuof7563p@linutronix.de> <33f0e144-1eec-b1a1-8858-58f20d5e477d@intel.com> <20190121112117.GA32538@redhat.com> <20190205111757.oieqgdcdnctoegav@linutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: Dave Hansen , Borislav Petkov , Ingo Molnar , linux-kernel@vger.kernel.org, x86@kernel.org, Andy Lutomirski , Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= , kvm@vger.kernel.org, "Jason A. Donenfeld" , Rik van Riel , Dave Hansen To: Sebastian Andrzej Siewior Return-path: Content-Disposition: inline In-Reply-To: <20190205111757.oieqgdcdnctoegav@linutronix.de> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org Hi Sebastian, Sorry, I just noticed your email... On 02/05, Sebastian Andrzej Siewior wrote: > > On 2019-01-21 12:21:17 [+0100], Oleg Nesterov wrote: > > > This is part of our ABI for *sure*. Inspecting that state is how > > > userspace makes sense of MPX or protection keys faults. We even use > > > this in selftests/. > > > > Yes. > > > > And in any case I do not understand the idea to use the second in-kernel struct fpu. > > A signal handler can be interrupted by another signal, this will need to save/restore > > the FPU state again. > > So I assumed that while SIGUSR1 is handled SIGUSR2 will wait until the > current signal is handled. So no interruption. But then SIGSEGV is > probably the exception which will interrupt SIGUSR1. So we would need a > third one… I guess you do not need my answer, but just in case. SIGSEGV is not an exception. A SIGUSR1 handler can be interrupted by any other signal which is not included in sigaction->sa_mask. Even SIGUSR1 can interrupt the handler if SA_NODEFER was used. > The idea was to save the FPU state in-kernel so we don't have to > revalidate everything because userspace had access to it and could do > things. I understand, but this simply can't work, see above. Oleg.