From nobody Tue Apr 7 19:49:28 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55A45C00140 for ; Wed, 24 Aug 2022 19:22:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239215AbiHXTWM (ORCPT ); Wed, 24 Aug 2022 15:22:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238576AbiHXTWK (ORCPT ); Wed, 24 Aug 2022 15:22:10 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46F946C744 for ; Wed, 24 Aug 2022 12:22:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661368929; x=1692904929; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=bho/C6DX2b9DAeFXNTrqJlip/PRcn0dLalM6W++Y9TE=; b=XC7lrHKCwdi7G8eqIFli403JGAyqRrOr5A+5+ocbFctj5ZvNmGe8Jns6 9l8usEoOlO7rZW58e/7liqpr06XA724y0W+fc6rAsz9VV+2ZgcToJg9Oi /mHsWvcJlsIG+OoF8PuKkcvtY9SWGo5wDDNAKm9ptMMDiOumMwUJ7OvuX hgHqq2ieiWPM8+3bCZMvD+zOTUIL339tsrWHekDP0bS+WM9TOea+9Vzcn c6Hchq9+PLs7bjPnRdeCFMnee6P3EMqcGvUzdy/akJCOPRHX4Dkl1xBmi 1Ir+EoVUvGNNH6Sm1OPq5Ag4x+4DDhTya45qczJkKMaXqfKQfiCEn7whT w==; X-IronPort-AV: E=McAfee;i="6500,9779,10449"; a="292801036" X-IronPort-AV: E=Sophos;i="5.93,261,1654585200"; d="scan'208";a="292801036" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2022 12:22:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,261,1654585200"; d="scan'208";a="606140555" Received: from chang-linux-3.sc.intel.com ([172.25.66.173]) by orsmga007.jf.intel.com with ESMTP; 24 Aug 2022 12:22:07 -0700 From: "Chang S. Bae" To: linux-kernel@vger.kernel.org Cc: x86@kernel.org, chang.seok.bae@intel.com Subject: [PATCH 1/3] x86/fpu: Configure init_fpstate attributes orderly Date: Wed, 24 Aug 2022 12:12:21 -0700 Message-Id: <20220824191223.1248-2-chang.seok.bae@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220824191223.1248-1-chang.seok.bae@intel.com> References: <20220824191223.1248-1-chang.seok.bae@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The init_fpstate setup code is spread out and out of order. The init image is recorded before its scoped features and the buffer size are determined. Determine the scope of init_fpstate components and its size before recording the init state. Also move the relevant code together. Signed-off-by: Chang S. Bae Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: neelnatu@google.com --- arch/x86/kernel/fpu/init.c | 8 -------- arch/x86/kernel/fpu/xstate.c | 6 +++++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c index 621f4b6cac4a..8946f89761cc 100644 --- a/arch/x86/kernel/fpu/init.c +++ b/arch/x86/kernel/fpu/init.c @@ -210,13 +210,6 @@ static void __init fpu__init_system_xstate_size_legacy= (void) fpstate_reset(¤t->thread.fpu); } =20 -static void __init fpu__init_init_fpstate(void) -{ - /* Bring init_fpstate size and features up to date */ - init_fpstate.size =3D fpu_kernel_cfg.max_size; - init_fpstate.xfeatures =3D fpu_kernel_cfg.max_features; -} - /* * Called on the boot CPU once per system bootup, to set up the initial * FPU state that is later cloned into all processes: @@ -236,5 +229,4 @@ void __init fpu__init_system(struct cpuinfo_x86 *c) fpu__init_system_xstate_size_legacy(); fpu__init_system_xstate(fpu_kernel_cfg.max_size); fpu__init_task_struct_size(); - fpu__init_init_fpstate(); } diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c index c8340156bfd2..f0ce10620ab0 100644 --- a/arch/x86/kernel/fpu/xstate.c +++ b/arch/x86/kernel/fpu/xstate.c @@ -360,7 +360,7 @@ static void __init setup_init_fpu_buf(void) =20 print_xstate_features(); =20 - xstate_init_xcomp_bv(&init_fpstate.regs.xsave, fpu_kernel_cfg.max_feature= s); + xstate_init_xcomp_bv(&init_fpstate.regs.xsave, init_fpstate.xfeatures); =20 /* * Init all the features state with header.xfeatures being 0x0 @@ -875,6 +875,10 @@ void __init fpu__init_system_xstate(unsigned int legac= y_size) update_regset_xstate_info(fpu_user_cfg.max_size, fpu_user_cfg.max_features); =20 + /* Bring init_fpstate size and features up to date */ + init_fpstate.size =3D fpu_kernel_cfg.max_size; + init_fpstate.xfeatures =3D fpu_kernel_cfg.max_features; + setup_init_fpu_buf(); =20 /* --=20 2.17.1 From nobody Tue Apr 7 19:49:28 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C84B2C00140 for ; Wed, 24 Aug 2022 19:22:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239495AbiHXTWR (ORCPT ); Wed, 24 Aug 2022 15:22:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238932AbiHXTWL (ORCPT ); Wed, 24 Aug 2022 15:22:11 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF9666C741 for ; Wed, 24 Aug 2022 12:22:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661368930; x=1692904930; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=vvIFYPS4jNvbYVxVC+0i4epasyNJreygrRXEzBULvno=; b=ftJ17Qp19v/J0S/4p+wixuLXVS3aToZmX14TcbozBmn3mGFI6ayMnfhi 1b/3OIr6xheQN7ZkUk1w1JOmkkagyehQe8TTQDuMR+iN3qJbq84syb6HC 4ONMe4ZzshjTWnPmcFY21xDozdgadajHmxRuz+0HjLXB9unrysif2Escu KqXXzlz77qWvGIIfSowNLyYPw+opwKHn3o4ao6O0qbah+BW3eZumC93/i FvkJRS5UlNvpypvjy9UxlYsI/Dw0jEf2Kq19tDcPC0bRKSoob9BVJidct O+AkXN5ivLhUVign+/qTXRv4ldSs+ghpUhFQuWz20FoxWON/Y0EH6N8w1 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10449"; a="292801038" X-IronPort-AV: E=Sophos;i="5.93,261,1654585200"; d="scan'208";a="292801038" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2022 12:22:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,261,1654585200"; d="scan'208";a="606140559" Received: from chang-linux-3.sc.intel.com ([172.25.66.173]) by orsmga007.jf.intel.com with ESMTP; 24 Aug 2022 12:22:07 -0700 From: "Chang S. Bae" To: linux-kernel@vger.kernel.org Cc: x86@kernel.org, chang.seok.bae@intel.com Subject: [PATCH 2/3] x86/fpu: Fix the init_fpstate size check with the actual size Date: Wed, 24 Aug 2022 12:12:22 -0700 Message-Id: <20220824191223.1248-3-chang.seok.bae@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220824191223.1248-1-chang.seok.bae@intel.com> References: <20220824191223.1248-1-chang.seok.bae@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The init_fpstate buffer is statically allocated. Thus, the sanity test was established to check whether the pre-allocated buffer is enough for the calculated size or not. The currently measured size is not strictly relevant. Fix to validate the calculated init_fpstate size with the pre-allocated area. Also, replace the sanity check function with open code for clarity. The abstraction itself and the function naming do not tend to represent simply what it does. Fixes: 2ae996e0c1a3 ("x86/fpu: Calculate the default sizes independently") Signed-off-by: Chang S. Bae Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org --- arch/x86/kernel/fpu/xstate.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c index f0ce10620ab0..f5ef78633b4c 100644 --- a/arch/x86/kernel/fpu/xstate.c +++ b/arch/x86/kernel/fpu/xstate.c @@ -678,20 +678,6 @@ static unsigned int __init get_xsave_size_user(void) return ebx; } =20 -/* - * Will the runtime-enumerated 'xstate_size' fit in the init - * task's statically-allocated buffer? - */ -static bool __init is_supported_xstate_size(unsigned int test_xstate_size) -{ - if (test_xstate_size <=3D sizeof(init_fpstate.regs)) - return true; - - pr_warn("x86/fpu: xstate buffer too small (%zu < %d), disabling xsave\n", - sizeof(init_fpstate.regs), test_xstate_size); - return false; -} - static int __init init_xstate_size(void) { /* Recompute the context size for enabled features: */ @@ -717,10 +703,6 @@ static int __init init_xstate_size(void) kernel_default_size =3D xstate_calculate_size(fpu_kernel_cfg.default_features, compacted); =20 - /* Ensure we have the space to store all default enabled features. */ - if (!is_supported_xstate_size(kernel_default_size)) - return -EINVAL; - if (!paranoid_xstate_size_valid(kernel_size)) return -EINVAL; =20 @@ -879,6 +861,12 @@ void __init fpu__init_system_xstate(unsigned int legac= y_size) init_fpstate.size =3D fpu_kernel_cfg.max_size; init_fpstate.xfeatures =3D fpu_kernel_cfg.max_features; =20 + if (init_fpstate.size > sizeof(init_fpstate.regs)) { + pr_warn("x86/fpu: init_fpstate buffer too small (%zu < %d), disabling XS= AVE\n", + sizeof(init_fpstate.regs), init_fpstate.size); + goto out_disable; + } + setup_init_fpu_buf(); =20 /* --=20 2.17.1 From nobody Tue Apr 7 19:49:28 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A8F5C00140 for ; Wed, 24 Aug 2022 19:22:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239728AbiHXTWY (ORCPT ); Wed, 24 Aug 2022 15:22:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238935AbiHXTWL (ORCPT ); Wed, 24 Aug 2022 15:22:11 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C432E6C744 for ; Wed, 24 Aug 2022 12:22:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661368930; x=1692904930; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=XncP+nrvyhgTRiyny7cU6Vc8pykwMAuPxozXvq+GSDw=; b=O2/i/7ba7+/J34eTlogH3naME42ok0dVbBxrH/962n/LXqxKxFa8LpjM QxBdMhb4aB5SXukh4tnRUjGANKnZ7avaNATu1htWZmn6qkoXPmXLfia2J Bw6IM/fSmZdoNvxEinUL6v9fiW2u8/LH2XGDAWCJkx/Nz9wZr3CoH7c5O xaaMpGJys2XE744aXMRzHkxaND6AXwqQ3uBnPTF9tOQzWTqLsALpsFqJp z9mN5Vtq8j8rCP45WrnD4vv0OY0hHWJOsbsXoStg/3PZyn4RkygbXBs9o nWfIrWvUDUOrZHLC5uYRvff2smghYS95tgwL7uk48v6pCBEE6FTaYnNrN Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10449"; a="292801040" X-IronPort-AV: E=Sophos;i="5.93,261,1654585200"; d="scan'208";a="292801040" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2022 12:22:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,261,1654585200"; d="scan'208";a="606140562" Received: from chang-linux-3.sc.intel.com ([172.25.66.173]) by orsmga007.jf.intel.com with ESMTP; 24 Aug 2022 12:22:08 -0700 From: "Chang S. Bae" To: linux-kernel@vger.kernel.org Cc: x86@kernel.org, chang.seok.bae@intel.com Subject: [PATCH 3/3] x86/fpu: Exclude dynamic states from init_fpstate Date: Wed, 24 Aug 2022 12:12:23 -0700 Message-Id: <20220824191223.1248-4-chang.seok.bae@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220824191223.1248-1-chang.seok.bae@intel.com> References: <20220824191223.1248-1-chang.seok.bae@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" =3D=3D Background =3D=3D The XSTATE init code initializes all enabled and supported components. Then, the init states are saved in the init_fpstate buffer that is statically allocated in about one page. The AMX TILE_DATA state is large (8KB) but its init state is zero. And the feature comes only with the compacted format with these established dependencies: AMX->XFD->XSAVES. So this state is excludable from init_fpstate. =3D=3D Problem =3D=3D But the buffer is formatted to include that large state. Then, this can be the cause of a noisy splat like the below. This came from XRSTORS for the task with init_fpstate in its XSAVE buffer. It is reproducible on AMX systems when the running kernel is built with CONFIG_DEBUG_PAGEALLOC=3Dy and CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT=3Dy: [ 30.583122] ------------[ cut here ]------------ [ 30.586625] Bad FPU state detected at restore_fpregs_from_fpstate+0x57/0= xd0, reinitializing FPU registers. [ 30.586676] WARNING: CPU: 130 PID: 1689 at arch/x86/mm/extable.c:74 fixu= p_exception+0x2c1/0x2f0 [ 30.602091] CPU: 130 PID: 1689 Comm: probe-bcache Not tainted 5.19.0-var= ious+ #1077 [ 30.610381] Hardware name: Intel Corporation D50DNP/D50DNP, BIOS SE5C630= 1.86B.7314.D09.2202231344 02/23/2022 [ 30.618850] RIP: 0010:fixup_exception+0x2c1/0x2f0 [ 30.618859] Code: bd fe ff ff e9 1c ff ff ff 0f 0b 48 c7 c2 90 05 8c 92 = e9 32 ff ff ff 48 c7 c7 20 a7 fe 91 c6 05 4a dc 99 01 01 e8 4f de 01 00 <0f= > 0b eb ab 0f 0b 48 c7 c2 90 05 8c 92 e9 16 fe ff ff 31 f6 4c 89 [ 30.636326] RSP: 0018:ff36ae41e4af7ca8 EFLAGS: 00010082 [ 30.636331] RAX: 0000000000000000 RBX: ffffffff921c6138 RCX: 00000000000= 00001 [ 30.636334] RDX: 0000000080000001 RSI: 00000000ffff7fff RDI: 00000000fff= fffff [ 30.636337] RBP: ff36ae41e4af7cc8 R08: 0000000000000000 R09: c0000000fff= f7fff [ 30.636339] R10: 0000000000000000 R11: ff36ae41e4af7af8 R12: ff36ae41e4a= f7dc8 [ 30.636342] R13: 000000000000000e R14: 0000000000000000 R15: 00000000000= 00001 [ 30.636344] FS: 0000000000000000(0000) GS:ff19681e5fd80000(0000) knlGS:= 0000000000000000 [ 30.636348] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 30.645197] CR2: ff196816897300bf CR3: 0000001083388006 CR4: 00000000007= 71ee0 [ 30.645201] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 00000000000= 00000 [ 30.689689] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 00000000000= 00400 [ 30.694040] PKRU: 55555554 [ 30.698347] Call Trace: [ 30.702615] [ 30.706829] kernelmode_fixup_or_oops+0x49/0x120 [ 30.711098] __bad_area_nosemaphore+0x15a/0x200 [ 30.715346] bad_area_nosemaphore+0x16/0x20 [ 30.719610] do_kern_addr_fault+0x43/0xa0 [ 30.723810] exc_page_fault+0xdd/0x180 [ 30.727968] asm_exc_page_fault+0x27/0x30 [ 30.732088] RIP: 0010:restore_fpregs_from_fpstate+0x57/0xd0 [ 30.736240] Code: 4c 48 23 1d 43 7d 61 01 4c 89 e7 ba 01 00 00 00 48 89 = de e8 0b 34 00 00 48 89 da 49 8d 7c 24 40 89 d8 48 c1 ea 20 48 0f c7 1f <48= > 83 c4 08 5b 41 5c 5d c3 cc cc cc cc 48 8b 45 e8 48 0f ae 48 40 [ 30.744890] RSP: 0018:ff36ae41e4af7e78 EFLAGS: 00010046 [ 30.749209] RAX: 00000000000604e7 RBX: 00000000000604e7 RCX: 00000000000= 40000 [ 30.753572] RDX: 0000000000000000 RSI: ffffffff920d70ad RDI: ff196816897= 2d6c0 [ 30.757937] RBP: ff36ae41e4af7e90 R08: ff196816861bdd80 R09: 00000000000= 20009 [ 30.762350] R10: 8080808080808080 R11: fefefefefefefeff R12: ff196816897= 2d680 [ 30.766717] R13: 0000000000000082 R14: 0000000000000000 R15: 00000000000= 00000 [ 30.771026] ? restore_fpregs_from_fpstate+0x45/0xd0 [ 30.775318] switch_fpu_return+0x4e/0xe0 [ 30.779599] exit_to_user_mode_prepare+0x17b/0x1b0 [ 30.783892] syscall_exit_to_user_mode+0x29/0x40 [ 30.788170] do_syscall_64+0x67/0x80 [ 30.792354] ? do_syscall_64+0x67/0x80 [ 30.796451] ? exc_page_fault+0x86/0x180 [ 30.800428] entry_SYSCALL_64_after_hwframe+0x63/0xcd [ 30.804317] RIP: 0033:0x7fdce1d9a2b0 [ 30.808108] Code: Unable to access opcode bytes at RIP 0x7fdce1d9a286. [ 30.811926] RSP: 002b:00007ffe7368b950 EFLAGS: 00000200 ORIG_RAX: 000000= 000000003b [ 30.811931] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000000= 00000 [ 30.811932] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000000= 00000 [ 30.811934] RBP: 0000000000000000 R08: 0000000000000000 R09: 00000000000= 00000 [ 30.811936] R10: 0000000000000000 R11: 0000000000000000 R12: 00000000000= 00000 [ 30.819620] R13: 0000000000000000 R14: 0000000000000000 R15: 00000000000= 00000 [ 30.819625] [ 30.819627] ---[ end trace 0000000000000000 ]--- =3D=3D Solution =3D=3D Adjust init_fpstate to exclude dynamic states. XRSTORS from init_fpstate can still initialize those states when their bits are set in the requested-feature bitmap. Reported-by: Lin X Wang Fixes: 2308ee57d93d ("x86/fpu/amx: Enable the AMX feature in 64-bit mode") Tested-by: Lin X Wang Signed-off-by: Chang S. Bae Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org --- arch/x86/kernel/fpu/xstate.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c index f5ef78633b4c..e77cabfa802f 100644 --- a/arch/x86/kernel/fpu/xstate.c +++ b/arch/x86/kernel/fpu/xstate.c @@ -857,9 +857,12 @@ void __init fpu__init_system_xstate(unsigned int legac= y_size) update_regset_xstate_info(fpu_user_cfg.max_size, fpu_user_cfg.max_features); =20 - /* Bring init_fpstate size and features up to date */ - init_fpstate.size =3D fpu_kernel_cfg.max_size; - init_fpstate.xfeatures =3D fpu_kernel_cfg.max_features; + /* + * init_fpstate excludes dynamic states as they are large but init + * state is zero. + */ + init_fpstate.size =3D fpu_kernel_cfg.default_size; + init_fpstate.xfeatures =3D fpu_kernel_cfg.default_features; =20 if (init_fpstate.size > sizeof(init_fpstate.regs)) { pr_warn("x86/fpu: init_fpstate buffer too small (%zu < %d), disabling XS= AVE\n", --=20 2.17.1