Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp7019849pxv; Fri, 30 Jul 2021 08:09:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyFs1QGVH5/5S/PDWlNVPaC5xKEmUwIjKek01tBqYUJZ1XEZ3gMpYYs5yPAlIjf/xcdVCIk X-Received: by 2002:a17:906:368e:: with SMTP id a14mr3102536ejc.60.1627657792442; Fri, 30 Jul 2021 08:09:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627657792; cv=none; d=google.com; s=arc-20160816; b=dx95jj6bXYpGOpkV26/mQYwCoW4bOnLUbHcejkETTTDxvBa+X7vy8gmvjpL23OPewx bcQHhqloRYwJW9hfwQG7z1oJIdGLpTHq9xGLQFEQbdZe7W6WOGF7xCoQs7jN+LPDytzK W1nfusYvc3rC1RBZHL31uc+vNjpwSBErpKIy6XbF6GdTmadHFPcsvKqx9g7hssBTWqNx yd/BdgIar/eBFHYaf9jTw09Xgi7US+pL00Ra7jBAKyOgktV7spScWGd6TZiFFHThj6Tu uMTNdvKRPPtA9K9VPTvWOf71R0RavglR66LL2mow1b8hDlRayPehOQ1hsZ5EV49syx4d DoJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=zLIplVxD8k53Um9goNMBZQl5JMWBQ2d3rICigzD3frs=; b=mnrz9qYd7ka0wMjc+pKO/KgyA5b1bSaRc+wOhUP3W6v7E+kA85W7GA1ry5IU7kevTp WU3DAdrZSKz+rSL4Ej24scrqNkkbfiXODafzEVbWxs1LJGhZhUbBSGQL4os5orpnFgIz 4fxG+0hlVvXb/xaiyIrRI5jaPG9918h8kO4ULz7iUUAiJSCf9XEV3Ys+OIPduGPvNzvG H8lTEMXlMi5M1E/V0Vz8zAJ1jql6AqG4HeJ7ELXqH7KuGdph4F5Y/6Pd77dMptRKR4Qd cwEN+SHNL0RUcZGceTFrPOgshdjC+yybsy+oKVmR7lcEoafr6u9kLhjFLm+bm/9MyAVS 1+rw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bf17si1789805edb.120.2021.07.30.08.09.28; Fri, 30 Jul 2021 08:09:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239876AbhG3PHQ (ORCPT + 99 others); Fri, 30 Jul 2021 11:07:16 -0400 Received: from mga05.intel.com ([192.55.52.43]:52626 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239685AbhG3PGb (ORCPT ); Fri, 30 Jul 2021 11:06:31 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10061"; a="298699139" X-IronPort-AV: E=Sophos;i="5.84,282,1620716400"; d="scan'208";a="298699139" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jul 2021 08:06:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,282,1620716400"; d="scan'208";a="508154965" Received: from chang-linux-3.sc.intel.com ([172.25.66.175]) by FMSMGA003.fm.intel.com with ESMTP; 30 Jul 2021 08:06:07 -0700 From: "Chang S. Bae" To: bp@suse.de, luto@kernel.org, tglx@linutronix.de, mingo@kernel.org, x86@kernel.org Cc: len.brown@intel.com, dave.hansen@intel.com, thiago.macieira@intel.com, jing2.liu@intel.com, ravi.v.shankar@intel.com, linux-kernel@vger.kernel.org, chang.seok.bae@intel.com Subject: [PATCH v9 20/26] x86/fpu/amx: Initialize child's AMX state Date: Fri, 30 Jul 2021 07:59:51 -0700 Message-Id: <20210730145957.7927-21-chang.seok.bae@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210730145957.7927-1-chang.seok.bae@intel.com> References: <20210730145957.7927-1-chang.seok.bae@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Assure that a forked child starts AMX registers in the INIT-state. Signed-off-by: Chang S. Bae Reviewed-by: Len Brown Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org --- Changes from v5: * Introduced a new define. (Andy Lutomirski) Changes from v4: * Added as a new patch. This was missing on previous versions. --- arch/x86/include/asm/fpu/xstate.h | 3 +++ arch/x86/kernel/fpu/core.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/arch/x86/include/asm/fpu/xstate.h b/arch/x86/include/asm/fpu/xstate.h index e7c6396261ca..912b420cb148 100644 --- a/arch/x86/include/asm/fpu/xstate.h +++ b/arch/x86/include/asm/fpu/xstate.h @@ -80,6 +80,9 @@ XFEATURE_MASK_INDEPENDENT | \ XFEATURE_MASK_SUPERVISOR_UNSUPPORTED) +/* Volatile states that a child does not inherit. */ +#define XFEATURE_MASK_CLEARED_ON_CLONE XFEATURE_MASK_XTILE + #ifdef CONFIG_X86_64 #define REX_PREFIX "0x48, " #else diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c index 541628bfc8c0..387118127f93 100644 --- a/arch/x86/kernel/fpu/core.c +++ b/arch/x86/kernel/fpu/core.c @@ -299,6 +299,9 @@ int fpu_clone(struct task_struct *dst) save_fpregs_to_fpstate(dst_fpu); fpregs_unlock(); + if (xfeatures_mask_all & XFEATURE_MASK_CLEARED_ON_CLONE) + dst_fpu->state->xsave.header.xfeatures &= ~XFEATURE_MASK_CLEARED_ON_CLONE; + set_tsk_thread_flag(dst, TIF_NEED_FPU_LOAD); trace_x86_fpu_copy_src(src_fpu); -- 2.17.1