You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.5 KiB
76 lines
2.5 KiB
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
||
# |
||
# Filename: package/.../musl/pkg/openvswitch/0001-ovs-thread-Set-stacksize-to-1M.patch |
||
# Copyright (C) 2015 The OpenSDE Project |
||
# |
||
# More information can be found in the files COPYING and README. |
||
# |
||
# This patch file is dual-licensed. It is available under the license the |
||
# patched project is licensed under, as long as it is an OpenSource license |
||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or 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. |
||
# --- SDE-COPYRIGHT-NOTE-END --- |
||
|
||
From 92ae6e162812876c082fd9d05a0eeac062f832ae Mon Sep 17 00:00:00 2001 |
||
From: Natanael Copa <[email protected]> |
||
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 <[email protected]> |
||
--- |
||
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; |
||
} |
||
|
||
|