Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp2672913imd; Fri, 2 Nov 2018 15:55:54 -0700 (PDT) X-Google-Smtp-Source: AJdET5dZzFgKAAYjjqkpWNyINxMl+v2dBU/5qAMCxJYMHlmhBoPG5ymVEvNLsqP5v3TGUKkOr5D6 X-Received: by 2002:a65:520a:: with SMTP id o10mr12873585pgp.276.1541199354737; Fri, 02 Nov 2018 15:55:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541199354; cv=none; d=google.com; s=arc-20160816; b=a/ei3k4CGucRYmlHiFYogrGwiEjtqaCki2HkINr3enWRFacJXTmkCrYeNudhasYlO5 l0qCgyJjZTVc8i9wuVYvGAQ0lIAnbPSV3WghLFqvL2G124wzaO3ksNtwMkCCnQvjdPmU nhmV0aw1M/pi/8pddBOWAXUc6DBhHNS7qKc47zC8TYzK7bk69JaPNpQdb3xSG8G76S7U wzmCbYrEFGhdzp/5I5P6TpThtXpjGpBgVvKkYSm97jaqp99+DUKAdmmUzG8Jmo8Lya+7 Lq52PaPmigANMROpkxVPRcESwdS8rMhEa81b/FN+4psGnBhYjKaJYFu13zurGJNcF+co 0ncg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=UNqf8YtrwvWw7zKkQT8t74GJhA5hdr2G1XXJWLQW5fE=; b=JxXKawjw8R5sAaOBWiJ6woILT6j0REdkub7m0+A3azvnHe0MWErBxQ/EtaFPrKzE/Y j9TcFKAGkMrE3qAJO3mlwr0k3uy9PzYW44NnNoA90SZUW7ofKp/c1KAFSl3esK24zqWn ArhTe88HW6QC+PoPZnCiWbmo9GqSSpV86P28HoAPt57TisPJYJcFD++9UkeoOXSYFGvf bTOkebdMkApUIX2W2Va/e8Nn6N4glOq9hui7ry8qHRP79qt4Uc4OKpn/8+9w6TtycNtI B9dUlRmLUUmu37heS6II67l4Tk2ArboEQeaYJZgm/g7j5TJIl8SuBqPwwN/JuP+MHQ3A DooA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s26-v6si35113562pgl.584.2018.11.02.15.55.39; Fri, 02 Nov 2018 15:55:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728424AbeKCIEU (ORCPT + 99 others); Sat, 3 Nov 2018 04:04:20 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:59791 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726141AbeKCIEU (ORCPT ); Sat, 3 Nov 2018 04:04:20 -0400 Received: from bigeasy by Galois.linutronix.de with local (Exim 4.80) (envelope-from ) id 1gIiLM-0007v4-KR; Fri, 02 Nov 2018 23:55:08 +0100 Date: Fri, 2 Nov 2018 23:55:08 +0100 From: Sebastian Andrzej Siewior To: Dave Hansen Cc: 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 Subject: Re: [PATCH 10/11] x86/fpu: prepare copy_fpstate_to_sigframe for TIF_LOAD_FPU Message-ID: <20181102225508.nv552gj356aykahf@linutronix.de> References: <20181004140547.13014-1-bigeasy@linutronix.de> <20181004140547.13014-11-bigeasy@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018-10-12 12:40:19 [-0700], Dave Hansen wrote: > On 10/04/2018 07:05 AM, Sebastian Andrzej Siewior wrote: > > From: Rik van Riel > > > > If TIF_LOAD_FPU is set, then the registers are saved (not loaded). In that case > > we skip the saving part. > > This sentence hurts my brain. > > "If TIF_LOAD_FPU is set the registers are ... not loaded" > > I think that means that something could use some better naming. > > Should TIF_LOAD_FPU be TIF_NEED_FPU_LOAD, perhaps? ARM has TIF_FOREIGN_FPSTATE which basically means that the current FP stat does not belong to current(). Let me try to use TIF_NEED_FPU_LOAD and see how that works out. > > Signed-off-by: Rik van Riel > > Signed-off-by: Sebastian Andrzej Siewior > > --- > > arch/x86/kernel/fpu/signal.c | 16 ++++++++++------ > > 1 file changed, 10 insertions(+), 6 deletions(-) > > > > diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c > > index c8f5ff58578ed..979dcd1ed82e0 100644 > > --- a/arch/x86/kernel/fpu/signal.c > > +++ b/arch/x86/kernel/fpu/signal.c > > @@ -155,13 +155,17 @@ int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size) > > sizeof(struct user_i387_ia32_struct), NULL, > > (struct _fpstate_32 __user *) buf) ? -1 : 1; > > > > - /* Update the thread's fxstate to save the fsave header. */ > > - if (ia32_fxstate) { > > - copy_fxregs_to_kernel(fpu); > > - } else { > > - copy_fpregs_to_fpstate(fpu); > > - fpregs_deactivate(fpu); > > + __fpregs_changes_begin(); > > + if (!test_thread_flag(TIF_LOAD_FPU)) { > > This needs commenting, please. > > If we do not need to load the FPU at return to userspace, it means the > state is in the the registers, not the buffer. So, update the buffer to > match the registers. okay. Let me add this then. Sebastian