Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1442000 > unrolled thread
| Started by | alastair@au1.ibm.com |
|---|---|
| First post | 2016-07-13 07:50 +0200 |
| Last post | 2016-07-19 12:00 +0200 |
| Articles | 8 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH 0/2] Automatically load the vmx_crypto module if supported alastair@au1.ibm.com - 2016-07-13 07:50 +0200
[PATCH 1/2] powerpc: Add module autoloading based on CPU features alastair@au1.ibm.com - 2016-07-13 07:50 +0200
[PATCH 1/2] Allow drivers to be autoloaded. alastair@au1.ibm.com - 2016-07-13 08:00 +0200
Re: [PATCH 0/2] Automatically load the vmx_crypto module if supported "Alastair D'Silva" <alastair@au1.ibm.com> - 2016-07-13 08:00 +0200
Re: [PATCH 0/2] Automatically load the vmx_crypto module if supported Balbir Singh <bsingharora@gmail.com> - 2016-07-14 05:40 +0200
Re: [PATCH 0/2] Automatically load the vmx_crypto module if supported Herbert Xu <herbert@gondor.apana.org.au> - 2016-07-18 12:30 +0200
Re: [PATCH 0/2] Automatically load the vmx_crypto module if supported Herbert Xu <herbert@gondor.apana.org.au> - 2016-07-19 06:10 +0200
Re: [PATCH 0/2] Automatically load the vmx_crypto module if supported Herbert Xu <herbert@gondor.apana.org.au> - 2016-07-19 12:00 +0200
| From | alastair@au1.ibm.com |
|---|---|
| Date | 2016-07-13 07:50 +0200 |
| Subject | [PATCH 0/2] Automatically load the vmx_crypto module if supported |
| Message-ID | <rUldv-7d1-3@gated-at.bofh.it> |
From: Alastair D'Silva <alastair@d-silva.org> This series allows the vmx_crypto module to be detected and automatically loaded via UDEV if the CPU supports the vector crypto feature. Alastair D'Silva (2): powerpc: Add module autoloading based on CPU features crypto: vmx - Convert to CPU feature based module autoloading arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/cpufeature.h | 70 +++++++++++++++++++++++++++++++++++ drivers/crypto/vmx/Kconfig | 2 +- drivers/crypto/vmx/vmx.c | 6 +-- 4 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 arch/powerpc/include/asm/cpufeature.h -- 2.7.4
[toc] | [next] | [standalone]
| From | alastair@au1.ibm.com |
|---|---|
| Date | 2016-07-13 07:50 +0200 |
| Subject | [PATCH 1/2] powerpc: Add module autoloading based on CPU features |
| Message-ID | <rUldv-7d1-15@gated-at.bofh.it> |
| In reply to | #1442000 |
From: Alastair D'Silva <alastair@d-silva.org>
This patch provides the necessary infrastructure to allow drivers
to be automatically loaded via UDEV. It implements the minimum
required to be able to use module_cpu_feature_match to trigger
the GENERIC_CPU_AUTOPROBE mechanisms.
The features exposed are a mirror of the cpu_user_features
(converted to an offset from a mask). This decision was made to
ensure that the behavior between features for module loading and
userspace are consistent.
Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
---
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/cpufeature.h | 70 +++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
create mode 100644 arch/powerpc/include/asm/cpufeature.h
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 0a9d439..a6e49db 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -164,6 +164,7 @@ config PPC
select ARCH_HAS_UBSAN_SANITIZE_ALL
select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
+ select GENERIC_CPU_AUTOPROBE
config GENERIC_CSUM
def_bool CPU_LITTLE_ENDIAN
diff --git a/arch/powerpc/include/asm/cpufeature.h b/arch/powerpc/include/asm/cpufeature.h
new file mode 100644
index 0000000..df31627
--- /dev/null
+++ b/arch/powerpc/include/asm/cpufeature.h
@@ -0,0 +1,70 @@
+/* CPU feature definitions for module loading, used by
+ * module_cpu_feature_match(), see asm/cputable.h for powerpc CPU features
+ *
+ * Copyright 2016 Alastair D'Silva, IBM Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#ifndef __ASM_CPUFEATURE_H
+#define __ASM_POWERPC_CPUFEATURE_H
+
+#include <asm/cputable.h>
+
+/* Keep these in step with powerpc/include/asm/cputable.h */
+#define MAX_CPU_FEATURES (2 * 32)
+
+#define PPC_MODULE_FEATURE_32 (ilog2(PPC_FEATURE_32))
+#define PPC_MODULE_FEATURE_64 (ilog2(PPC_FEATURE_64))
+#define PPC_MODULE_FEATURE_601_INSTR (ilog2(PPC_FEATURE_601_INSTR))
+#define PPC_MODULE_FEATURE_HAS_ALTIVEC (ilog2(PPC_FEATURE_HAS_ALTIVEC))
+#define PPC_MODULE_FEATURE_HAS_FPU (ilog2(PPC_FEATURE_HAS_FPU))
+#define PPC_MODULE_FEATURE_HAS_MMU (ilog2(PPC_FEATURE_HAS_MMU))
+#define PPC_MODULE_FEATURE_HAS_4xxMAC (ilog2(PPC_FEATURE_HAS_4xxMAC))
+#define PPC_MODULE_FEATURE_UNIFIED_CACHE ilog2(PPC_FEATURE_UNIFIED_CACHE))
+#define PPC_MODULE_FEATURE_HAS_SPE (ilog2(PPC_FEATURE_HAS_SPE))
+#define PPC_MODULE_FEATURE_HAS_EFP_SINGLE (ilog2(PPC_FEATURE_HAS_EFP_SINGLE))
+#define PPC_MODULE_FEATURE_HAS_EFP_DOUBLE (ilog2(PPC_FEATURE_HAS_EFP_DOUBLE))
+#define PPC_MODULE_FEATURE_NO_TB (ilog2(PPC_FEATURE_NO_TB))
+#define PPC_MODULE_FEATURE_POWER4 (ilog2(PPC_FEATURE_POWER4))
+#define PPC_MODULE_FEATURE_POWER5 (ilog2(PPC_FEATURE_POWER5))
+#define PPC_MODULE_FEATURE_POWER5_PLUS (ilog2(PPC_FEATURE_POWER5_PLUS))
+#define PPC_MODULE_FEATURE_CELL (ilog2(PPC_FEATURE_CELL))
+#define PPC_MODULE_FEATURE_BOOKE (ilog2(PPC_FEATURE_BOOKE))
+#define PPC_MODULE_FEATURE_SMT (ilog2(PPC_FEATURE_SMT))
+#define PPC_MODULE_FEATURE_ICACHE_SNOOP (ilog2(PPC_FEATURE_ICACHE_SNOOP))
+#define PPC_MODULE_FEATURE_ARCH_2_05 (ilog2(PPC_FEATURE_ARCH_2_05))
+#define PPC_MODULE_FEATURE_PA6T (ilog2(PPC_FEATURE_PA6T))
+#define PPC_MODULE_FEATURE_HAS_DFP (ilog2(PPC_FEATURE_HAS_DFP))
+#define PPC_MODULE_FEATURE_POWER6_EXT (ilog2(PPC_FEATURE_POWER6_EXT))
+#define PPC_MODULE_FEATURE_ARCH_2_06 (ilog2(PPC_FEATURE_ARCH_2_06))
+#define PPC_MODULE_FEATURE_HAS_VSX (ilog2(PPC_FEATURE_HAS_VSX))
+#define PPC_MODULE_FEATURE_PSERIES_PERFMON_COMPAT (ilog2(PPC_FEATURE_PSERIES_PERFMON_COMPAT))
+#define PPC_MODULE_FEATURE_TRUE_LE (ilog2(PPC_FEATURE_TRUE_LE))
+#define PPC_MODULE_FEATURE_PPC_LE (ilog2(PPC_FEATURE_PPC_LE))
+
+#define PPC_MODULE_FEATURE_ARCH_2_07 (32 + ilog2(PPC_FEATURE2_ARCH_2_07))
+#define PPC_MODULE_FEATURE_HTM (32 + ilog2(PPC_FEATURE2_HTM))
+#define PPC_MODULE_FEATURE_DSCR (32 + ilog2(PPC_FEATURE2_DSCR))
+#define PPC_MODULE_FEATURE_EBB (32 + ilog2(PPC_FEATURE2_EBB))
+#define PPC_MODULE_FEATURE_ISEL (32 + ilog2(PPC_FEATURE2_ISEL))
+#define PPC_MODULE_FEATURE_TAR (32 + ilog2(PPC_FEATURE2_TAR))
+#define PPC_MODULE_FEATURE_VEC_CRYPTO (32 + ilog2(PPC_FEATURE2_VEC_CRYPTO))
+#define PPC_MODULE_FEATURE_HTM_NOSC (32 + ilog2(PPC_FEATURE2_HTM_NOSC))
+#define PPC_MODULE_FEATURE_ARCH_3_00 (32 + ilog2(PPC_FEATURE2_ARCH_3_00))
+#define PPC_MODULE_FEATURE_HAS_IEEE128 (32 + ilog2(PPC_FEATURE2_HAS_IEEE128))
+
+#define cpu_feature(x) (x)
+
+static inline bool cpu_have_feature(unsigned int num)
+{
+ if (num < 32)
+ return !!(cur_cpu_spec->cpu_user_features & 1UL << num);
+ else
+ return !!(cur_cpu_spec->cpu_user_features2 & 1UL << (num - 32));
+}
+
+#endif /* __ASM_POWERPC_CPUFEATURE_H */
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | alastair@au1.ibm.com |
|---|---|
| Date | 2016-07-13 08:00 +0200 |
| Subject | [PATCH 1/2] Allow drivers to be autoloaded. |
| Message-ID | <rUlnc-7gz-15@gated-at.bofh.it> |
| In reply to | #1442000 |
From: Alastair D'Silva <alastair@d-silva.org>
This patch provides the necessary infrastructure to allow drivers
to be automatically loaded via UDEV. It implements the minimum
required to be able to use module_cpu_feature_match to trigger
the GENERIC_CPU_AUTOPROBE mechanisms.
The features exposed are a mirror of the cpu_user_features
(converted to an offset from a mask). This decision was made to
ensure that the behavior between features for module loading and
userspace are consistent.
Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
---
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/cpufeature.h | 68 +++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+)
create mode 100644 arch/powerpc/include/asm/cpufeature.h
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 0a9d439..a6e49db 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -164,6 +164,7 @@ config PPC
select ARCH_HAS_UBSAN_SANITIZE_ALL
select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
+ select GENERIC_CPU_AUTOPROBE
config GENERIC_CSUM
def_bool CPU_LITTLE_ENDIAN
diff --git a/arch/powerpc/include/asm/cpufeature.h b/arch/powerpc/include/asm/cpufeature.h
new file mode 100644
index 0000000..6d52527
--- /dev/null
+++ b/arch/powerpc/include/asm/cpufeature.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2016 Alastair D'Silva, IBM Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#ifndef __ASM_CPUFEATURE_H
+#define __ASM_CPUFEATURE_H
+
+#include <asm/cputable.h>
+
+/* Keep these in step with powerpc/include/asm/cputable.h */
+#define MAX_CPU_FEATURES (2 * 32)
+
+#define PPC_MODULE_FEATURE_32 (ilog2(PPC_FEATURE_32))
+#define PPC_MODULE_FEATURE_64 (ilog2(PPC_FEATURE_64))
+#define PPC_MODULE_FEATURE_601_INSTR (ilog2(PPC_FEATURE_601_INSTR))
+#define PPC_MODULE_FEATURE_HAS_ALTIVEC (ilog2(PPC_FEATURE_HAS_ALTIVEC))
+#define PPC_MODULE_FEATURE_HAS_FPU (ilog2(PPC_FEATURE_HAS_FPU))
+#define PPC_MODULE_FEATURE_HAS_MMU (ilog2(PPC_FEATURE_HAS_MMU))
+#define PPC_MODULE_FEATURE_HAS_4xxMAC (ilog2(PPC_FEATURE_HAS_4xxMAC))
+#define PPC_MODULE_FEATURE_UNIFIED_CACHE ilog2(PPC_FEATURE_UNIFIED_CACHE))
+#define PPC_MODULE_FEATURE_HAS_SPE (ilog2(PPC_FEATURE_HAS_SPE))
+#define PPC_MODULE_FEATURE_HAS_EFP_SINGLE (ilog2(PPC_FEATURE_HAS_EFP_SINGLE))
+#define PPC_MODULE_FEATURE_HAS_EFP_DOUBLE (ilog2(PPC_FEATURE_HAS_EFP_DOUBLE))
+#define PPC_MODULE_FEATURE_NO_TB (ilog2(PPC_FEATURE_NO_TB))
+#define PPC_MODULE_FEATURE_POWER4 (ilog2(PPC_FEATURE_POWER4))
+#define PPC_MODULE_FEATURE_POWER5 (ilog2(PPC_FEATURE_POWER5))
+#define PPC_MODULE_FEATURE_POWER5_PLUS (ilog2(PPC_FEATURE_POWER5_PLUS))
+#define PPC_MODULE_FEATURE_CELL (ilog2(PPC_FEATURE_CELL))
+#define PPC_MODULE_FEATURE_BOOKE (ilog2(PPC_FEATURE_BOOKE))
+#define PPC_MODULE_FEATURE_SMT (ilog2(PPC_FEATURE_SMT))
+#define PPC_MODULE_FEATURE_ICACHE_SNOOP (ilog2(PPC_FEATURE_ICACHE_SNOOP))
+#define PPC_MODULE_FEATURE_ARCH_2_05 (ilog2(PPC_FEATURE_ARCH_2_05))
+#define PPC_MODULE_FEATURE_PA6T (ilog2(PPC_FEATURE_PA6T))
+#define PPC_MODULE_FEATURE_HAS_DFP (ilog2(PPC_FEATURE_HAS_DFP))
+#define PPC_MODULE_FEATURE_POWER6_EXT (ilog2(PPC_FEATURE_POWER6_EXT))
+#define PPC_MODULE_FEATURE_ARCH_2_06 (ilog2(PPC_FEATURE_ARCH_2_06))
+#define PPC_MODULE_FEATURE_HAS_VSX (ilog2(PPC_FEATURE_HAS_VSX))
+#define PPC_MODULE_FEATURE_PSERIES_PERFMON_COMPAT (ilog2(PPC_FEATURE_PSERIES_PERFMON_COMPAT))
+#define PPC_MODULE_FEATURE_TRUE_LE (ilog2(PPC_FEATURE_TRUE_LE))
+#define PPC_MODULE_FEATURE_PPC_LE (ilog2(PPC_FEATURE_PPC_LE))
+
+#define PPC_MODULE_FEATURE_ARCH_2_07 (32 + ilog2(PPC_FEATURE2_ARCH_2_07))
+#define PPC_MODULE_FEATURE_HTM (32 + ilog2(PPC_FEATURE2_HTM))
+#define PPC_MODULE_FEATURE_DSCR (32 + ilog2(PPC_FEATURE2_DSCR))
+#define PPC_MODULE_FEATURE_EBB (32 + ilog2(PPC_FEATURE2_EBB))
+#define PPC_MODULE_FEATURE_ISEL (32 + ilog2(PPC_FEATURE2_ISEL))
+#define PPC_MODULE_FEATURE_TAR (32 + ilog2(PPC_FEATURE2_TAR))
+#define PPC_MODULE_FEATURE_VEC_CRYPTO (32 + ilog2(PPC_FEATURE2_VEC_CRYPTO))
+#define PPC_MODULE_FEATURE_HTM_NOSC (32 + ilog2(PPC_FEATURE2_HTM_NOSC))
+#define PPC_MODULE_FEATURE_ARCH_3_00 (32 + ilog2(PPC_FEATURE2_ARCH_3_00))
+#define PPC_MODULE_FEATURE_HAS_IEEE128 (32 + ilog2(PPC_FEATURE2_HAS_IEEE128))
+
+#define cpu_feature(x) (x)
+
+static inline bool cpu_have_feature(unsigned int num)
+{
+ if (num < 32)
+ return !!(cur_cpu_spec->cpu_user_features & 1UL << num);
+ else
+ return !!(cur_cpu_spec->cpu_user_features2 & 1UL << (num - 32));
+}
+
+#endif
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | "Alastair D'Silva" <alastair@au1.ibm.com> |
|---|---|
| Date | 2016-07-13 08:00 +0200 |
| Subject | Re: [PATCH 0/2] Automatically load the vmx_crypto module if supported |
| Message-ID | <rUlnc-7gz-11@gated-at.bofh.it> |
| In reply to | #1442000 |
On Wed, 2016-07-13 at 15:47 +1000, alastair@au1.ibm.com wrote: > From: Alastair D'Silva <alastair@d-silva.org> > > This series allows the vmx_crypto module to be detected and > automatically > loaded via UDEV if the CPU supports the vector crypto feature. > > Alastair D'Silva (2): > powerpc: Add module autoloading based on CPU features > crypto: vmx - Convert to CPU feature based module autoloading > > arch/powerpc/Kconfig | 1 + > arch/powerpc/include/asm/cpufeature.h | 70 > +++++++++++++++++++++++++++++++++++ > drivers/crypto/vmx/Kconfig | 2 +- > drivers/crypto/vmx/vmx.c | 6 +-- > 4 files changed, 74 insertions(+), 5 deletions(-) > create mode 100644 arch/powerpc/include/asm/cpufeature.h Please ignore the following: [PATCH 1/2] Allow drivers to be autoloaded. [PATCH 2/2] Automatically load the vmx_crypto module if supported. -- Alastair D'Silva Open Source Developer Linux Technology Centre, IBM Australia mob: 0423 762 819
[toc] | [prev] | [next] | [standalone]
| From | Balbir Singh <bsingharora@gmail.com> |
|---|---|
| Date | 2016-07-14 05:40 +0200 |
| Message-ID | <rUFFf-43M-1@gated-at.bofh.it> |
| In reply to | #1442005 |
On Wed, Jul 13, 2016 at 03:54:59PM +1000, Alastair D'Silva wrote: > On Wed, 2016-07-13 at 15:47 +1000, alastair@au1.ibm.com wrote: > > From: Alastair D'Silva <alastair@d-silva.org> > > > This series allows the vmx_crypto module to be detected and > > automatically > > loaded via UDEV if the CPU supports the vector crypto feature. > > > Alastair D'Silva (2): > > powerpc: Add module autoloading based on CPU features > > crypto: vmx - Convert to CPU feature based module autoloading > > > arch/powerpc/Kconfig | 1 + > > arch/powerpc/include/asm/cpufeature.h | 70 > > +++++++++++++++++++++++++++++++++++ > > drivers/crypto/vmx/Kconfig | 2 +- > > drivers/crypto/vmx/vmx.c | 6 +-- > > 4 files changed, 74 insertions(+), 5 deletions(-) > > create mode 100644 arch/powerpc/include/asm/cpufeature.h > > Please ignore the following: > [PATCH 1/2] Allow drivers to be autoloaded. > [PATCH 2/2] Automatically load the vmx_crypto module if supported. > Do you want to repost the series? Balbir
[toc] | [prev] | [next] | [standalone]
| From | Herbert Xu <herbert@gondor.apana.org.au> |
|---|---|
| Date | 2016-07-18 12:30 +0200 |
| Message-ID | <rWdYd-4WI-31@gated-at.bofh.it> |
| In reply to | #1442000 |
On Wed, Jul 13, 2016 at 03:47:16PM +1000, alastair@au1.ibm.com wrote: > From: Alastair D'Silva <alastair@d-silva.org> > > This series allows the vmx_crypto module to be detected and automatically > loaded via UDEV if the CPU supports the vector crypto feature. > > Alastair D'Silva (2): > powerpc: Add module autoloading based on CPU features > crypto: vmx - Convert to CPU feature based module autoloading Both patches applied. Thanks. -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[toc] | [prev] | [next] | [standalone]
| From | Herbert Xu <herbert@gondor.apana.org.au> |
|---|---|
| Date | 2016-07-19 06:10 +0200 |
| Message-ID | <rWuw2-7tt-7@gated-at.bofh.it> |
| In reply to | #1445365 |
On Tue, Jul 19, 2016 at 11:01:55AM +1000, Michael Ellerman wrote: > > Can you please ask for an ack before merging arch patches? > > That's a 70 line powerpc patch and a 6 line crypto patch. It has no > reviews and no acks. I would have preferred it if we could take it via > the powerpc tree. Sorry, I'll delete them from the crypto tree. Cheers, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[toc] | [prev] | [next] | [standalone]
| From | Herbert Xu <herbert@gondor.apana.org.au> |
|---|---|
| Date | 2016-07-19 12:00 +0200 |
| Message-ID | <rWzYK-2o0-17@gated-at.bofh.it> |
| In reply to | #1446008 |
On Tue, Jul 19, 2016 at 07:13:24PM +1000, Michael Ellerman wrote: > > I'll assume patch 2 has your ack :) Sure, Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Thanks, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web