From: Michael Ellerman <mpe@ellerman.id.au>
To: linuxppc-dev@ozlabs.org
Cc: linux-kernel@vger.kernel.org, tglx@linutronix.de,
peterz@infradead.org, npiggin@gmail.com, anton@samba.org,
mikey@neuling.org, oohall@gmail.com, paulus@samba.org
Subject: [PATCH 09/11] powerpc/64s: Allow control of RFI flush via sysfs
Date: Tue, 9 Jan 2018 03:54:51 +1100 [thread overview]
Message-ID: <20180108165453.26066-9-mpe@ellerman.id.au> (raw)
In-Reply-To: <20180108165453.26066-1-mpe@ellerman.id.au>
From: Nicholas Piggin <npiggin@gmail.com>
Expose the state of the RFI flush (enabled/disabled) via sysfs, and
allow it to be enabled/dissabled at runtime.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
arch/powerpc/kernel/setup.h | 2 ++
arch/powerpc/kernel/sysfs.c | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+)
diff --git a/arch/powerpc/kernel/setup.h b/arch/powerpc/kernel/setup.h
index 21c18071d9d5..493b03b0a966 100644
--- a/arch/powerpc/kernel/setup.h
+++ b/arch/powerpc/kernel/setup.h
@@ -61,4 +61,6 @@ void kvm_cma_reserve(void);
static inline void kvm_cma_reserve(void) { };
#endif
+extern bool rfi_flush;
+
#endif /* __ARCH_POWERPC_KERNEL_SETUP_H */
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
index b8d4a1dac39f..8c19d014cffc 100644
--- a/arch/powerpc/kernel/sysfs.c
+++ b/arch/powerpc/kernel/sysfs.c
@@ -20,6 +20,7 @@
#include <asm/firmware.h>
#include "cacheinfo.h"
+#include "setup.h"
#ifdef CONFIG_PPC64
#include <asm/paca.h>
@@ -496,6 +497,43 @@ static DEVICE_ATTR(spurr, 0400, show_spurr, NULL);
static DEVICE_ATTR(purr, 0400, show_purr, store_purr);
static DEVICE_ATTR(pir, 0400, show_pir, NULL);
+#ifdef CONFIG_PPC_BOOK3S_64
+static ssize_t show_rfi_flush(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ return sprintf(buf, "%d\n", rfi_flush ? 1 : 0);
+}
+
+static ssize_t __used store_rfi_flush(struct device *dev,
+ struct device_attribute *attr, const char *buf,
+ size_t count)
+{
+ int val;
+ int ret = 0;
+
+ ret = sscanf(buf, "%d", &val);
+ if (ret != 1)
+ return -EINVAL;
+
+ if (val == 1)
+ rfi_flush_enable(true);
+ else if (val == 0)
+ rfi_flush_enable(false);
+ else
+ return -EINVAL;
+
+ return count;
+}
+
+static DEVICE_ATTR(rfi_flush, 0600,
+ show_rfi_flush, store_rfi_flush);
+
+static void sysfs_create_rfi_flush(void)
+{
+ device_create_file(cpu_subsys.dev_root, &dev_attr_rfi_flush);
+}
+#endif /* CONFIG_PPC_BOOK3S_64 */
+
/*
* This is the system wide DSCR register default value. Any
* change to this default value through the sysfs interface
@@ -1047,6 +1085,9 @@ static int __init topology_init(void)
WARN_ON(r < 0);
#ifdef CONFIG_PPC64
sysfs_create_dscr_default();
+#ifdef CONFIG_PPC_BOOK3S
+ sysfs_create_rfi_flush();
+#endif
#endif /* CONFIG_PPC64 */
return 0;
--
2.14.3
next prev parent reply other threads:[~2018-01-08 16:55 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-08 16:54 [PATCH 01/11] powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Michael Ellerman
2018-01-08 16:54 ` [PATCH 02/11] powerpc/64: Add macros for annotating the destination of rfid/hrfid Michael Ellerman
2018-01-08 16:54 ` [PATCH 03/11] powerpc/64s: Simple RFI macro conversions Michael Ellerman
2018-01-08 17:09 ` Peter Zijlstra
2018-01-08 21:01 ` Paul Mackerras
2018-01-08 22:04 ` Michael Ellerman
2018-01-08 16:54 ` [PATCH 04/11] powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL Michael Ellerman
2018-01-08 16:54 ` [PATCH 05/11] powerpc/64: Convert fast_exception_return " Michael Ellerman
2018-01-08 16:54 ` [PATCH 06/11] powerpc/64s: Convert slb_miss_common " Michael Ellerman
2018-01-08 16:54 ` [PATCH 07/11] powerpc/64s: Add support for RFI flush of L1-D cache Michael Ellerman
2018-01-09 7:02 ` Joel Stanley
2018-01-09 16:05 ` Michael Ellerman
2018-01-25 9:10 ` Christian Zigotzky
2018-01-30 2:11 ` Michael Ellerman
2018-01-08 16:54 ` [PATCH 08/11] powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti Michael Ellerman
2018-01-08 16:54 ` Michael Ellerman [this message]
2018-01-08 17:20 ` [PATCH 09/11] powerpc/64s: Allow control of RFI flush via sysfs Thomas Gleixner
2018-01-08 22:09 ` Michael Ellerman
2018-01-09 6:06 ` Jon Masters
2018-01-09 8:05 ` Greg KH
2018-01-09 8:11 ` Jon Masters
2018-01-09 8:03 ` Greg KH
2018-01-08 16:54 ` [PATCH 10/11] powerpc/pseries: Query hypervisor for RFI flush settings Michael Ellerman
2018-01-08 16:54 ` [PATCH 11/11] powerpc/powernv: Check device-tree " Michael Ellerman
2018-01-08 21:57 ` Tyrel Datwyler
2018-01-11 2:25 ` [01/11] powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper Michael Ellerman
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=20180108165453.26066-9-mpe@ellerman.id.au \
--to=mpe@ellerman.id.au \
--cc=anton@samba.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mikey@neuling.org \
--cc=npiggin@gmail.com \
--cc=oohall@gmail.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/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
all inboxes | Powered by JetHome®