summaryrefslogtreecommitdiff
path: root/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-10-09 16:06:12 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-10-09 16:06:12 +0000
commitc2fa69955ac724d03c7c50f155e1a2dabc125c3c (patch)
tree0f13926716058c7d6243a393db5b225b7379d25e /main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch
parent0012ba7c5165d1d8bb45beaa0df24176a8c250c5 (diff)
downloadaports-c2fa69955ac724d03c7c50f155e1a2dabc125c3c.zip
main/openvswitch: move from testing
Diffstat (limited to 'main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch')
-rw-r--r--main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch b/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch
new file mode 100644
index 00000000000..2a7ae57b301
--- /dev/null
+++ b/main/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch
@@ -0,0 +1,60 @@
+From 92ae6e162812876c082fd9d05a0eeac062f832ae Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Mon, 25 Aug 2014 08:50:26 +0000
+Subject: [PATCH] ovs-thread: Set stacksize to 1M
+
+With musl libc the default stacksize is 80k which is too small and
+makes it segfault.
+
+We increase it to 1MB.
+http://permalink.gmane.org/gmane.linux.network.openvswitch.general/5831
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ lib/ovs-thread.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff -ru openvswitch-2.3.0.orig/lib/ovs-thread.c openvswitch-2.3.0/lib/ovs-thread.c
+--- openvswitch-2.3.0.orig/lib/ovs-thread.c 2014-10-02 14:37:47.196714056 -0300
++++ openvswitch-2.3.0/lib/ovs-thread.c 2014-10-02 14:38:10.826714288 -0300
+@@ -28,6 +28,9 @@
+ #include "socket-util.h"
+ #include "util.h"
+
++/* set default stack size to 1M */
++#define OVS_STACK_SIZE (1024 * 1024)
++
+ #ifdef __CHECKER__
+ /* Omit the definitions in this file because they are somewhat difficult to
+ * write without prompting "sparse" complaints, without ugliness or
+@@ -329,6 +332,7 @@
+ {
+ struct ovsthread_aux *aux;
+ pthread_t thread;
++ pthread_attr_t attr;
+ int error;
+
+ forbid_forking("multiple threads exist");
+@@ -340,10 +344,21 @@
+ aux->arg = arg;
+ ovs_strlcpy(aux->name, name, sizeof aux->name);
+
+- error = pthread_create(&thread, NULL, ovsthread_wrapper, aux);
++ error = pthread_attr_init(&attr);
++ if (error) {
++ ovs_abort(error, "pthread_attr_init failed");
++ }
++ error = pthread_attr_setstacksize(&attr, OVS_STACK_SIZE);
++ if (error) {
++ ovs_abort(error, "pthread_attr_setstacksize failed");
++ }
++
++ error = pthread_create(&thread, &attr, ovsthread_wrapper, aux);
+ if (error) {
+ ovs_abort(error, "pthread_create failed");
+ }
++ pthread_attr_destroy(&attr);
++
+ return thread;
+ }
+