Received: by 2002:ab2:60d1:0:b0:1f7:5705:b850 with SMTP id i17csp1407518lqm; Thu, 2 May 2024 13:59:42 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV69seknP4KpRYJrAvwXFD9jzq0ghkGjVayR1Ikh7RB7qiZDg5G+Sgu5FARsKxJJ5ki+BN3KEoQ3jQKxgjKi4xBEDa+ia5BKLxyi1dKRg== X-Google-Smtp-Source: AGHT+IGoMU29XAtmqb3hUjr0hRHnCLyc4soamNDnEYCYIP+sqMxer9kO63gByxRZU4RUxvTal21+ X-Received: by 2002:a9d:6a9a:0:b0:6ee:1a04:ab5d with SMTP id l26-20020a9d6a9a000000b006ee1a04ab5dmr1088031otq.34.1714683581880; Thu, 02 May 2024 13:59:41 -0700 (PDT) Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id k6-20020ae9f106000000b00790f9c0ebd5si1738063qkg.96.2024.05.02.13.59.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 May 2024 13:59:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-166907-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b="e7/WU0C1"; arc=fail (body hash mismatch); spf=pass (google.com: domain of linux-kernel+bounces-166907-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-166907-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 899861C21B27 for ; Thu, 2 May 2024 20:59:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B4056180A8E; Thu, 2 May 2024 20:59:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=intel.com header.i=@intel.com header.b="e7/WU0C1" Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 270112208E; Thu, 2 May 2024 20:59:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714683573; cv=none; b=OC6dNHYHNNg7k6a+WRpTJ4KmeOd8SoKg46hduXw42ie6SigxazrxP/ySPxg9T5pqVgv9ajDzs3ffKjrXVLC2w+AT06eH1i3E1ox9zcAcqzEsyKCZDPf8PM3GDxQ6z2oUtIFOw8OlvAigRGJS5Z6TZt7iRI9cF5GFFeB2XSNV+Bo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714683573; c=relaxed/simple; bh=imWJGduNQZ/GmKlx25kP+MMoyuUMWCHWurULK3dgfQU=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=eNXNDysNFXyzAj6Hj2YO0a3DDjHymR076MsMZUXmghrwPPpFyD6P/H8OdGCzYlCTIoWu7t5zFk7Vf0VBfd8d+41Wy+131BNvXZ6ZikEoSdWaCJTASH0siCWPbUTFoyVQYDsAqYzlktMZPEw4YFDIBWg3y9b+DRGbTNLo4UofK5Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=e7/WU0C1; arc=none smtp.client-ip=198.175.65.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1714683572; x=1746219572; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=imWJGduNQZ/GmKlx25kP+MMoyuUMWCHWurULK3dgfQU=; b=e7/WU0C18BwxYhnkrkDgWoMEMspfd8HFKCyEUe/rE4AzXOaA8RSfCvOf qVdhcfzipkInpvsUlIQa8jSJq78v4ltJgh8+kCQoC2u79lH5TwVZLQBzf I301iusrPKon8mm14nwxmfrS42DSRHRcwp5/aNN2gjmcpkV7Bx1baAtJh ATgd4+COt9ZoL4Rkci8hDEnemdJIodXOj1CniDmtumLOxKSNmx+WabSle jlgeC5zzUyhDnqywYm40T8/DcEP67C79DyE0T7UqqWf2+DDWUIz+olYy/ g2rmz1CBqzM+p4bkoHoHhraBn4xx4FAcux3Pfb6Jz5lKdg+9xKSqytch7 Q==; X-CSE-ConnectionGUID: yvRzLB3KS/u2/6NaE3P/wQ== X-CSE-MsgGUID: IDCEU36MQFyCREEEFxxKXg== X-IronPort-AV: E=McAfee;i="6600,9927,11062"; a="10639459" X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="10639459" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 13:59:32 -0700 X-CSE-ConnectionGUID: 8Y1Mtm/KQqySIqIC6HisOA== X-CSE-MsgGUID: jaUYGSOCT7+msXdtzV59dg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="27658980" Received: from ramanisw-mobl.amr.corp.intel.com (HELO [10.251.17.226]) ([10.251.17.226]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2024 13:59:31 -0700 Message-ID: Date: Thu, 2 May 2024 13:59:30 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 0/2] x86/fpu: Extend kernel_fpu_begin_mask() for the In-Field Scan driver To: "Chang S. Bae" , linux-kernel@vger.kernel.org Cc: x86@kernel.org, platform-driver-x86@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, tony.luck@intel.com, ashok.raj@intel.com, jithu.joseph@intel.com References: <20240430212508.105117-1-chang.seok.bae@intel.com> From: Dave Hansen Content-Language: en-US Autocrypt: addr=dave.hansen@intel.com; keydata= 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 In-Reply-To: <20240430212508.105117-1-chang.seok.bae@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 4/30/24 14:25, Chang S. Bae wrote: > The recent update [1] in the SDM highlights the requirement of > initializing the AMX state for executing the scan test: > "... maintaining AMX state in a non-initialized state ... will > prevent the execution of In-Field Scan tests." > which is one of CPU state conditions required for the test's execution. This ended up just being phrased weirdly. It's a lot more compact to just say: AMX must be in its init state for In-Field Scan tests to run. > In situations where AMX workloads are running, the switched-away active > user AMX state remains due to the optimization to reduce the state > switching cost. A user state reload is fully completed right before > returning to userspace. Consequently, if the switched-in kernel task is > executing the scan test, this non-initialized AMX state causes the test > to be unable to start. FPU state in general (and AMX state in particular) is large and expensive to context switch so the kernel tries to leave FPU state alone even while running kernel tasks. But, this behavior obviously conflicts with the (new) IFS need for AMX must be in its init state. Right? .. > [1] Intel Software Development Manual as of March 2024, Section 18.2 > RECOMMENDATIONS FOR SYSTEM SOFTWARE of Vol. 1. > https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html Rather than, "we're just following the spec", I think there can be a better explanation here. These in-field scan tests (IFS) poke the hardware in unique ways. It ends up that IFS and AMX could attempt to use the same hardware resources at the same time and step on each other. While it would be possible to add additional resources to the CPU to allow simultaneous AMX and IFS, the hardware to do this would be relatively expensive. It seems pretty reasonable for software to help out here. The other argument that could be made is that an admin could isolate the CPUs on which they wanted to run an IFS test. They could use cpusets, or even the task binding API to try and evict AMX workloads from these CPUs. But, the promise of IFS is that it can be run without disturbing workloads _too_ much. Basically anything an admin would do is probably too onerous and high-impact. So this mechanism provides two things: One, it makes the hardware simpler and two, it takes the admin out of the picture. Thing just work.