From: "Dennis.Wu" <dennis.wu@intel.com>
To: nvdimm@lists.linux.dev
Cc: dan.j.williams@intel.com, vishal.l.verma@intel.com,
dave.jiang@intel.com, ira.weiny@intel.com,
"Dennis.Wu" <dennis.wu@intel.com>
Subject: [PATCH] ACPI/NFIT: Add no_deepflush param to dynamic control flush operation
Date: Wed, 29 Jun 2022 16:31:18 +0800 [thread overview]
Message-ID: <20220629083118.8737-1-dennis.wu@intel.com> (raw)
reason: in the current BTT implimentation deepflush is always
used and deepflush is very expensive. Since customer already
know the ADR can protect the WPQ data in memory controller and
no need to call deepflush to get better performance. BTT w/o
deepflush, performance can improve 300%~600% with diff FIO jobs.
How: Add one param "no_deepflush" in the nfit module parameter.
if "modprob nfit no_deepflush=1", customer can get the higher
performance but not strict data security. Before modprob nfit,
you may need to "ndctl disable-region".
Next: In the BTT, use flag to control the data w/o deepflush
in the case "no_deepflush=0".
Signed-off-by: Dennis.Wu <dennis.wu@intel.com>
---
drivers/acpi/nfit/core.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index e5d7f2bda13f..ec0ad48b0283 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -52,6 +52,10 @@ static bool force_labels;
module_param(force_labels, bool, 0444);
MODULE_PARM_DESC(force_labels, "Opt-in to labels despite missing methods");
+static bool no_deepflush;
+module_param(no_deepflush, bool, 0644);
+MODULE_PARM_DESC(no_deepflush, "skip deep flush if ADR or no strict security");
+
LIST_HEAD(acpi_descs);
DEFINE_MUTEX(acpi_desc_lock);
@@ -981,8 +985,10 @@ static void *add_table(struct acpi_nfit_desc *acpi_desc,
return err;
break;
case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
- if (!add_flush(acpi_desc, prev, table))
- return err;
+ if (!no_deepflush) {
+ if (!add_flush(acpi_desc, prev, table))
+ return err;
+ }
break;
case ACPI_NFIT_TYPE_SMBIOS:
dev_dbg(dev, "smbios\n");
--
2.27.0
next reply other threads:[~2022-06-29 8:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-29 8:31 Dennis.Wu [this message]
2022-06-29 15:27 ` [PATCH] ACPI/NFIT: Add no_deepflush param to dynamic control flush operation Christoph Hellwig
2022-07-13 1:25 ` Dan Williams
2022-07-20 6:24 ` Christoph Hellwig
2022-09-20 3:08 ` Wu, Dennis
2022-09-20 11:46 ` Christoph Hellwig
2022-09-20 19:30 ` Dan Williams
2022-10-20 6:23 ` Wu, Dennis
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=20220629083118.8737-1-dennis.wu@intel.com \
--to=dennis.wu@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=ira.weiny@intel.com \
--cc=nvdimm@lists.linux.dev \
--cc=vishal.l.verma@intel.com \
/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