openvswitch: pull released version 2.5.0 2457/head
authorAlexandru Ardelean <ardeleanalex@gmail.com>
Sat, 5 Mar 2016 07:49:35 +0000 (09:49 +0200)
committerAlexandru Ardelean <ardeleanalex@gmail.com>
Sat, 5 Mar 2016 08:19:43 +0000 (10:19 +0200)
Also added a patch (from OVS trunk) that fixes pthread
thread stack sizes with musl.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
net/openvswitch/Makefile
net/openvswitch/patches/0010-lib-ovs-thread-Ensure-that-thread-stacks-are-always-.patch [new file with mode: 0644]

index fbefbdc25a7566b8fb341b2d2d88be38b29170b3..636166b8b22567237b156b4e728630b1f946a999 100644 (file)
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=openvswitch
 
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 PKG_VERSION:=2.5.0
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 PKG_LICENSE:=Apache-2.0
@@ -22,7 +22,7 @@ PKG_USE_MIPS16:=0
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/openvswitch/ovs
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=98b94d1e7002063ce2ea3c3221fe9234cac4e124
+PKG_SOURCE_VERSION:=22d4614ddf83988a3771fb379ea029e663b4455a
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_BUILD_PARALLEL:=1
diff --git a/net/openvswitch/patches/0010-lib-ovs-thread-Ensure-that-thread-stacks-are-always-.patch b/net/openvswitch/patches/0010-lib-ovs-thread-Ensure-that-thread-stacks-are-always-.patch
new file mode 100644 (file)
index 0000000..4cd87fb
--- /dev/null
@@ -0,0 +1,74 @@
+From 8147cec9ee8feea9440cf79365709ddc32ff57d5 Mon Sep 17 00:00:00 2001
+From: Alexandru Ardelean <ardeleanalex@gmail.com>
+Date: Thu, 4 Feb 2016 09:20:34 +0200
+Subject: [PATCH] lib/ovs-thread: Ensure that thread stacks are always at least
+ 512 kB.
+
+This makes a difference for libc implementations (such as musl libc) that
+have a really small default pthread stack size.
+
+Will reference this discussion:
+http://patchwork.ozlabs.org/patch/572340/
+
+Reported-by: Robert McKay <robert@mckay.com>
+Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
+[blp@ovn.org made style changes]
+Signed-off-by: Ben Pfaff <blp@ovn.org>
+---
+ lib/ovs-thread.c | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+
+diff --git a/lib/ovs-thread.c b/lib/ovs-thread.c
+index 6ebda07..b0e10ee 100644
+--- a/lib/ovs-thread.c
++++ b/lib/ovs-thread.c
+@@ -340,6 +340,25 @@ ovsthread_wrapper(void *aux_)
+     return aux.start(aux.arg);
+ }
++static void
++set_min_stack_size(pthread_attr_t *attr, size_t min_stacksize)
++{
++    size_t stacksize;
++    int error;
++
++    error = pthread_attr_getstacksize(attr, &stacksize);
++    if (error) {
++        ovs_abort(error, "pthread_attr_getstacksize failed");
++    }
++
++    if (stacksize < min_stacksize) {
++        error = pthread_attr_setstacksize(attr, min_stacksize);
++        if (error) {
++            ovs_abort(error, "pthread_attr_setstacksize failed");
++        }
++    }
++}
++
+ /* Starts a thread that calls 'start(arg)'.  Sets the thread's name to 'name'
+  * (suffixed by its ovsthread_id()).  Returns the new thread's pthread_t. */
+ pthread_t
+@@ -358,10 +377,20 @@ ovs_thread_create(const char *name, void *(*start)(void *), void *arg)
+     aux->arg = arg;
+     ovs_strlcpy(aux->name, name, sizeof aux->name);
++    /* Some small systems use a default stack size as small as 80 kB, but OVS
++     * requires approximately 384 kB according to the following analysis:
++     * http://openvswitch.org/pipermail/dev/2016-January/065049.html
++     *
++     * We use 512 kB to give us some margin of error. */
++    pthread_attr_t attr;
++    pthread_attr_init(&attr);
++    set_min_stack_size(&attr, 512 * 1024);
++
+     error = pthread_create(&thread, NULL, ovsthread_wrapper, aux);
+     if (error) {
+         ovs_abort(error, "pthread_create failed");
+     }
++    pthread_attr_destroy(&attr);
+     return thread;
+ }
\f
+-- 
+2.1.4
+