linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
To: rafael@kernel.org
Cc: ak@linux.intel.com, bp@alien8.de, dan.j.williams@intel.com,
	dave.hansen@linux.intel.com, hpa@zytor.com,
	kirill.shutemov@linux.intel.com, knsathya@kernel.org,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	mingo@redhat.com, rjw@rjwysocki.net,
	sathyanarayanan.kuppuswamy@linux.intel.com, tglx@linutronix.de,
	tony.luck@intel.com, x86@kernel.org
Subject: [PATCH 1/4] ACPICA: Do not flush cache for on entering S4 and S5
Date: Mon,  6 Dec 2021 15:29:49 +0300	[thread overview]
Message-ID: <20211206122952.74139-2-kirill.shutemov@linux.intel.com> (raw)
In-Reply-To: <20211206122952.74139-1-kirill.shutemov@linux.intel.com>

According to the ACPI spec v6.4, section 16.2 the cache flushing is
required on entering to S1, S2, and S3. ACPICA code flushes cache
regardless of the sleep state.

Blind cache flush on entering S5 causes problems for TDX. Flushing
happens with WBINVD that is not supported in the TDX environment.

TDX only supports S5 and adjusting ACPICA code to conform to the spec
fixes the issue.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
---
 drivers/acpi/acpica/hwesleep.c  | 3 ++-
 drivers/acpi/acpica/hwsleep.c   | 3 ++-
 drivers/acpi/acpica/hwxfsleep.c | 2 --
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/acpi/acpica/hwesleep.c b/drivers/acpi/acpica/hwesleep.c
index 808fdf54aeeb..ceb5a4292efa 100644
--- a/drivers/acpi/acpica/hwesleep.c
+++ b/drivers/acpi/acpica/hwesleep.c
@@ -104,7 +104,8 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)
 
 	/* Flush caches, as per ACPI specification */
 
-	ACPI_FLUSH_CPU_CACHE();
+	if (sleep_state < ACPI_STATE_S4)
+		ACPI_FLUSH_CPU_CACHE();
 
 	status = acpi_os_enter_sleep(sleep_state, sleep_control, 0);
 	if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index 34a3825f25d3..ee094a3aaaab 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -110,7 +110,8 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)
 
 	/* Flush caches, as per ACPI specification */
 
-	ACPI_FLUSH_CPU_CACHE();
+	if (sleep_state < ACPI_STATE_S4)
+		ACPI_FLUSH_CPU_CACHE();
 
 	status = acpi_os_enter_sleep(sleep_state, pm1a_control, pm1b_control);
 	if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
index e4cde23a2906..ba77598ee43e 100644
--- a/drivers/acpi/acpica/hwxfsleep.c
+++ b/drivers/acpi/acpica/hwxfsleep.c
@@ -162,8 +162,6 @@ acpi_status acpi_enter_sleep_state_s4bios(void)
 		return_ACPI_STATUS(status);
 	}
 
-	ACPI_FLUSH_CPU_CACHE();
-
 	status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
 				    (u32)acpi_gbl_FADT.s4_bios_request, 8);
 	if (ACPI_FAILURE(status)) {
-- 
2.32.0


  reply	other threads:[~2021-12-06 12:30 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-16  0:50 [PATCH v1 1/1] x86: Skip WBINVD instruction for VM guest Kuppuswamy Sathyanarayanan
2021-11-16 16:24 ` Borislav Petkov
2021-11-16 16:36   ` Sathyanarayanan Kuppuswamy
2021-11-19  4:03   ` [PATCH v2] " Kuppuswamy Sathyanarayanan
2021-11-25  0:40     ` Thomas Gleixner
2021-12-02 22:21       ` Kirill A. Shutemov
2021-12-02 22:38         ` Dave Hansen
2021-12-02 23:48         ` Thomas Gleixner
2021-12-03 23:49           ` Kirill A. Shutemov
2021-12-04  0:20             ` Dave Hansen
2021-12-04  0:54               ` Kirill A. Shutemov
2021-12-06 15:35                 ` Dave Hansen
2021-12-06 16:39                   ` Dan Williams
2021-12-06 16:53                     ` Dave Hansen
2021-12-06 17:51                       ` Dan Williams
2021-12-04 20:27             ` Rafael J. Wysocki
2021-12-06 12:29               ` [PATCH 0/4] ACPI/ACPICA: Only flush caches on S1/S2/S3 and C3 Kirill A. Shutemov
2021-12-06 12:29                 ` Kirill A. Shutemov [this message]
2021-12-08 14:58                   ` [PATCH 1/4] ACPICA: Do not flush cache for on entering S4 and S5 Rafael J. Wysocki
2021-12-06 12:29                 ` [PATCH 2/4] ACPI: PM: Remove redundant cache flushing Kirill A. Shutemov
2021-12-07 16:35                   ` Rafael J. Wysocki
2021-12-09 13:32                     ` Kirill A. Shutemov
2021-12-17 18:04                       ` Rafael J. Wysocki
2021-12-06 12:29                 ` [PATCH 3/4] ACPI: processor idle: Only flush cache on entering C3 Kirill A. Shutemov
2021-12-06 15:03                   ` Peter Zijlstra
2021-12-08 16:26                     ` Rafael J. Wysocki
2021-12-09 13:33                       ` Kirill A. Shutemov
2021-12-17 17:58                         ` Rafael J. Wysocki
2021-12-06 12:29                 ` [PATCH 4/4] ACPI: PM: Avoid cache flush on entering S4 Kirill A. Shutemov
2021-12-08 15:10                   ` Rafael J. Wysocki
2021-12-08 16:04                     ` Kirill A. Shutemov
2021-12-08 16:16                       ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211206122952.74139-2-kirill.shutemov@linux.intel.com \
    --to=kirill.shutemov@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=knsathya@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).