Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp1499289pxv; Sat, 10 Jul 2021 06:12:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwE2zQ0m5QY5k9SMJm65mz1XEpdZhdJ2vq24dS4+WGgdPY6TN2AMWlrffRorOglV8uBgFfH X-Received: by 2002:a05:6638:c4a:: with SMTP id g10mr10301543jal.21.1625922728210; Sat, 10 Jul 2021 06:12:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625922728; cv=none; d=google.com; s=arc-20160816; b=Y31cDaRkGjK+9z17zNZDHmEke7UycpFLsVggVGi/Z7HCv0DNlocfHVnAzdb4wjrWHw iKZUvTgr9J5NMhwwODnRDxp3UMcSKbxQ+1bLLVxnWKGtS682dHKcNzj0OBn1wBiNSzDC B+R4B3sBv2gKDhosIkIKQJrS9C49DrYZoCdAz9efnSVqluOP0e8Uc6+cuyVNMG1tVg1m nCg5fq5XANbD218JwSnsa9igi/vdUw77Zfl3icfCgcVoxcCZD+ld6OmMZdglJeCiTZc8 5kpt54hC5wTxyAHyHHfR802zLLz3+U+amOFXJsuj0DQ7ernKqsXw3baCgB1Z1Bnl1wGz j0PA== 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=IB5ScRfFOhqFnWntee0WnkaOVO33WeerEchRqLOwcFA=; b=AGKRdhZUwjoQVvLrAj2zjEHFKR3WwV9GcpYOSRnwEgqfpIQ1Aa4CZFHZUunRqSjsUw vio47FvrJNXIiiloGOHhNE0bLwJUgP52yiepoWrXXF4TgPg4N3GpRdHeEGPfq1UZfMlf iaUjNtP2uBorsw8FlF51+wHavckg6YoTI6zOC4nRj9dvtUlqnJVccm+FsEoBoORUgOtE sAPY6L9wmScUaigRSjJHessvTRjaQc1xYheOBIZ2VjrHgEJzqZ6VHqidfzxi0aOAES7d /ru2BbUcNXLgwc8LQxX5VYF7ibseyr/dYqHwt+KBEvBm3sXLX0WHBcsB6jFXrqLXgk/0 QWqQ== 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 l12si9524946iln.39.2021.07.10.06.11.50; Sat, 10 Jul 2021 06:12:08 -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 S232781AbhGJNMZ (ORCPT + 99 others); Sat, 10 Jul 2021 09:12:25 -0400 Received: from mga03.intel.com ([134.134.136.65]:52358 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231446AbhGJNLz (ORCPT ); Sat, 10 Jul 2021 09:11:55 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10040"; a="209867328" X-IronPort-AV: E=Sophos;i="5.84,229,1620716400"; d="scan'208";a="209867328" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jul 2021 06:09:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,229,1620716400"; d="scan'208";a="488742409" Received: from chang-linux-3.sc.intel.com ([172.25.66.175]) by FMSMGA003.fm.intel.com with ESMTP; 10 Jul 2021 06:09:09 -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 v7 20/26] x86/fpu/amx: Initialize child's AMX state Date: Sat, 10 Jul 2021 06:03:07 -0700 Message-Id: <20210710130313.5072-21-chang.seok.bae@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210710130313.5072-1-chang.seok.bae@intel.com> References: <20210710130313.5072-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 dbf0db1df9bf..bd7df0e7fc2b 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 ed127c4d182b..e8912b5b9369 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