Skip to contentSkip to conversation

kernel: expose configuration for padata

PATCH In review Jason A. Donenfeld 3 participants 8 messages Nov 10, 2016 – Nov 16, 2016 Networking

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kernel: expose configuration for padata

The padata API is a powerful framework for doing parallel jobs inside the kernel, on which various modules in the package feed can depend, such as WireGuard. There is no item text, so that it does not show up in menuconfig, as this is only supposed to be an option selected as a dependency. There as already precedent for this behavior, with CONFIG_KERNEL_RELAY, on which several packages depend.

---
 config/Config-kernel.in | 3 +++
 1 file changed, 3 insertions(+)
config/Config-kernel.in +3 -0
index d8ca76c..9aca2a0 100644
@@ -224,6 +224,9 @@ config KERNEL_PROC_PAGE_MONITOR
 config KERNEL_RELAY
 	bool
 
+config KERNEL_CRYPTO_PCRYPT
+	bool
+
 config KERNEL_KEXEC
 	bool "Enable kexec support"
 
Signature · 1 line
2.10.2
#1 lore raw

PATCH 1/1 wireguard: select parallel encryption engine

On non SMP systems, this doesn't wind up doing anything or adding any code at all. On SMP systems, this adds a little bit of code, and makes encryption use all cores.

---
 net/wireguard/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
net/wireguard/Makefile +1 -1
index 7387673..c5c014c 100644
@@ -89,7 +89,7 @@ define KernelPackage/wireguard
   CATEGORY:=Kernel modules
   SUBMENU:=Network Support
   TITLE:=Wireguard kernel module
-  DEPENDS:=@IPV6 +kmod-udptunnel4 +kmod-udptunnel6 +kmod-ipt-hashlimit
+  DEPENDS:=@IPV6 +@KERNEL_CRYPTO_PCRYPT +kmod-udptunnel4 +kmod-udptunnel6 +kmod-ipt-hashlimit
   FILES:= $(PKG_BUILD_DIR)/src/wireguard.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,33,wireguard)
 endef
Signature · 1 line
2.10.2
#2 lore raw

Re: [WireGuard] [PATCH] wireguard: select parallel encryption engine

Hi Jason,

Thanks for the patch. Wireguard is not part of the core OpenWRT/LEDE systems, it is managed on https://github.com/openwrt/packages , so you should have sent a pull request there.

Nevertheless, I will try to test and apply your patch within a few days.

Baptiste

Quoted 22 lines · Jason A. Donenfeld

On non SMP systems, this doesn't wind up doing anything or adding any code at all. On SMP systems, this adds a little bit of code, and makes encryption use all cores.

---
 net/wireguard/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
net/wireguard/Makefile +1 -1
index 7387673..c5c014c 100644
@@ -89,7 +89,7 @@ define KernelPackage/wireguard
   CATEGORY:=Kernel modules
   SUBMENU:=Network Support
   TITLE:=Wireguard kernel module
-  DEPENDS:=@IPV6 +kmod-udptunnel4 +kmod-udptunnel6 +kmod-ipt-hashlimit
+  DEPENDS:=@IPV6 +@KERNEL_CRYPTO_PCRYPT +kmod-udptunnel4 +kmod-udptunnel6 +kmod-ipt-hashlimit
   FILES:= $(PKG_BUILD_DIR)/src/wireguard.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,33,wireguard)
 endef
#3 lore raw
In reply to Jason A. Donenfeld
Quoted 8 lines · Jason A. Donenfeld

The padata API is a powerful framework for doing parallel jobs inside the kernel, on which various modules in the package feed can depend, such as WireGuard. There is no item text, so that it does not show up in menuconfig, as this is only supposed to be an option selected as a dependency. There as already precedent for this behavior, with CONFIG_KERNEL_RELAY, on which several packages depend.

Please enable CONFIG_CRYPTO_PCRYPT in target/linux/generic/config-* instead.

- Felix

#4 lore raw

PATCH 1/1 kernel: enable pcrypt

This is a powerful API for parallel crypto from which many other modules can benefit. It only winds up being turned on on SMP systems, which means this adds 0 bytes to the kernel on tiny machines, while only adding a small bit to SMP systems for big performance improvements.

---
 target/linux/generic/config-3.18 | 2 +-
 target/linux/generic/config-4.1  | 2 +-
 target/linux/generic/config-4.4  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
target/linux/generic/config-3.18 +1 -1
index 8b70c7d..c61a4b3 100644
@@ -762,7 +762,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 # CONFIG_CRYPTO_PCBC is not set
 # CONFIG_CRYPTO_PCOMP is not set
 # CONFIG_CRYPTO_PCOMP2 is not set
-# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_PCRYPT=y
 # CONFIG_CRYPTO_RMD128 is not set
 # CONFIG_CRYPTO_RMD160 is not set
 # CONFIG_CRYPTO_RMD256 is not set
target/linux/generic/config-4.1 +1 -1
index 68bd849..4fae342 100644
@@ -792,7 +792,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 # CONFIG_CRYPTO_PCBC is not set
 # CONFIG_CRYPTO_PCOMP is not set
 # CONFIG_CRYPTO_PCOMP2 is not set
-# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_PCRYPT=y
 # CONFIG_CRYPTO_RMD128 is not set
 # CONFIG_CRYPTO_RMD160 is not set
 # CONFIG_CRYPTO_RMD256 is not set
target/linux/generic/config-4.4 +1 -1
index 28e7068..843154d 100644
@@ -791,7 +791,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 # CONFIG_CRYPTO_PCBC is not set
 # CONFIG_CRYPTO_PCOMP is not set
 # CONFIG_CRYPTO_PCOMP2 is not set
-# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_PCRYPT=y
 # CONFIG_CRYPTO_POLY1305 is not set
 # CONFIG_CRYPTO_RMD128 is not set
 # CONFIG_CRYPTO_RMD160 is not set
Signature · 1 line
2.10.2
#6 lore raw

Re: [WireGuard] [PATCH] kernel: enable pcrypt

Quoted 5 lines · Jason A. Donenfeld

Hi Felix,

Patchwork was changed to "accepted" --
http://patchwork.ozlabs.org/patch/694517/ -- but this hasn't shown up in the actual LEDE repo. What's up?

It's in my staging tree and will make it to the main repo soon.

- Felix

#7 lore raw

Re: [WireGuard] [PATCH] kernel: enable pcrypt

Quoted 1 line · Felix Fietkau

It's in my staging tree and will make it to the main repo soon.

Good to hear. Thanks.