[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/PTHREAD-EMBEDDED PATCH v2 3/8] patches: Add patches for proper building of original library



Hi Costin,

thanks for giving patch 0006 a more verbose description.

Reviewed-by: Florian Schmidt <florian.schmidt@xxxxxxxxx>

On 6/3/19 5:16 PM, Costin Lupu wrote:
Current patches include bugfixes and refinements in the original code.

Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
---
  ...x-Set-type-size-of-result-used-in-pthread.patch | 494 +++++++++++++++++++++
  ...x-Pass-right-arguments-on-tests-exit4-and.patch |  54 +++
  ...x-Fix-macro-definitions-for-tests-once3-a.patch |  36 ++
  ...le-priority-tests-until-we-add-preemptive.patch |  28 ++
  patches/0005-Use-Unikraft-yield-function.patch     |  22 +
  ...ader-inclusions-for-functions-from-header.patch |  40 ++
  6 files changed, 674 insertions(+)
  create mode 100644 
patches/0001-tests-bugfix-Set-type-size-of-result-used-in-pthread.patch
  create mode 100644 
patches/0002-tests-bugfix-Pass-right-arguments-on-tests-exit4-and.patch
  create mode 100644 
patches/0003-tests-bugfix-Fix-macro-definitions-for-tests-once3-a.patch
  create mode 100644 
patches/0004-tests-Disable-priority-tests-until-we-add-preemptive.patch
  create mode 100644 patches/0005-Use-Unikraft-yield-function.patch
  create mode 100644 
patches/0006-Separate-header-inclusions-for-functions-from-header.patch

diff --git 
a/patches/0001-tests-bugfix-Set-type-size-of-result-used-in-pthread.patch 
b/patches/0001-tests-bugfix-Set-type-size-of-result-used-in-pthread.patch
new file mode 100644
index 0000000..8aa2cec
--- /dev/null
+++ b/patches/0001-tests-bugfix-Set-type-size-of-result-used-in-pthread.patch
@@ -0,0 +1,494 @@
+From 919ebbd97b3992b5e66153b19982f28cb9bf734e Mon Sep 17 00:00:00 2001
+From: Costin Lupu <costin.lup@xxxxxxxxx>
+Date: Sat, 9 Mar 2019 19:22:23 +0200
+Subject: [PATCH 1/5] tests bugfix Set type size of result used in pthread_join
+ calls to word size
+
+
+diff --git a/tests/barrier3.c b/tests/barrier3.c
+index 1f16a79..45fc1cf 100644
+--- a/tests/barrier3.c
++++ b/tests/barrier3.c
+@@ -47,7 +47,7 @@
+ #include "test.h"
+
+ static pthread_barrier_t barrier = NULL;
+-static int result = 1;
++static long result = 1;
+
+ static void * func(void * arg)
+ {
+diff --git a/tests/barrier5.c b/tests/barrier5.c
+index 17e0fd5..4055c51 100644
+--- a/tests/barrier5.c
++++ b/tests/barrier5.c
+@@ -94,8 +94,8 @@ func(void * barrierHeight)
+ int pthread_test_barrier5()
+ {
+   int i, j;
+-  int result;
+-  int serialThreadsTotal;
++  long result;
++  long serialThreadsTotal;
+   pthread_t t[NUMTHREADS + 1];
+
+   mx = PTHREAD_MUTEX_INITIALIZER;
+diff --git a/tests/cancel2.c b/tests/cancel2.c
+index 0c2b143..3635933 100644
+--- a/tests/cancel2.c
++++ b/tests/cancel2.c
+@@ -215,7 +215,7 @@ int pthread_test_cancel2()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(t[i], (void **) &result) == 0);
+       fail = (result != (int) PTHREAD_CANCELED);
+diff --git a/tests/cancel3.c b/tests/cancel3.c
+index c59ff58..f9f563b 100644
+--- a/tests/cancel3.c
++++ b/tests/cancel3.c
+@@ -180,7 +180,7 @@ int pthread_test_cancel3()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       /*
+        * The thread does not contain any cancelation points, so
+diff --git a/tests/cancel4.c b/tests/cancel4.c
+index cc0e5b1..3853cd8 100644
+--- a/tests/cancel4.c
++++ b/tests/cancel4.c
+@@ -179,7 +179,7 @@ int pthread_test_cancel4()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       /*
+        * The thread does not contain any cancelation points, so
+diff --git a/tests/cancel5.c b/tests/cancel5.c
+index 7ed0eb7..d50bf3f 100644
+--- a/tests/cancel5.c
++++ b/tests/cancel5.c
+@@ -176,7 +176,7 @@ int pthread_test_cancel5()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       /*
+        * The thread does not contain any cancelation points, so
+diff --git a/tests/cancel6a.c b/tests/cancel6a.c
+index 309c7a5..e6d44bf 100644
+--- a/tests/cancel6a.c
++++ b/tests/cancel6a.c
+@@ -169,7 +169,7 @@ int pthread_test_cancel6a()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       /*
+        * The thread does not contain any cancelation points, so
+diff --git a/tests/cancel6d.c b/tests/cancel6d.c
+index e448915..27f68f9 100644
+--- a/tests/cancel6d.c
++++ b/tests/cancel6d.c
+@@ -171,7 +171,7 @@ int pthread_test_cancel6d()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(t[i], (void **) &result) == 0);
+
+diff --git a/tests/cleanup0.c b/tests/cleanup0.c
+index 069f98d..a641989 100644
+--- a/tests/cleanup0.c
++++ b/tests/cleanup0.c
+@@ -191,7 +191,7 @@ int pthread_test_cleanup0()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(t[i], (void **) &result) == 0);
+
+diff --git a/tests/cleanup1.c b/tests/cleanup1.c
+index 8653fd4..68bc6ab 100644
+--- a/tests/cleanup1.c
++++ b/tests/cleanup1.c
+@@ -206,7 +206,7 @@ int pthread_test_cleanup1()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(t[i], (void **) &result) == 0);
+
+diff --git a/tests/cleanup2.c b/tests/cleanup2.c
+index b4a2513..5df8346 100644
+--- a/tests/cleanup2.c
++++ b/tests/cleanup2.c
+@@ -181,7 +181,7 @@ int pthread_test_cleanup2()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(t[i], (void **) &result) == 0);
+
+diff --git a/tests/cleanup3.c b/tests/cleanup3.c
+index 045b848..1b83d71 100644
+--- a/tests/cleanup3.c
++++ b/tests/cleanup3.c
+@@ -192,7 +192,7 @@ int pthread_test_cleanup3()
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(t[i], (void **) &result) == 0);
+
+diff --git a/tests/condvar1_2.c b/tests/condvar1_2.c
+index 670478d..26f63f7 100644
+--- a/tests/condvar1_2.c
++++ b/tests/condvar1_2.c
+@@ -95,7 +95,7 @@ static pthread_cond_t cv[NUM_CV];
+ int pthread_test_condvar1_2()
+ {
+   int i, j, k;
+-  int result = -1;
++  long result = -1;
+   pthread_t t;
+
+   for (k = 0; k < NUM_LOOPS; k++)
+diff --git a/tests/condvar2_1.c b/tests/condvar2_1.c
+index 39f6787..003ae87 100644
+--- a/tests/condvar2_1.c
++++ b/tests/condvar2_1.c
+@@ -114,7 +114,7 @@ int pthread_test_condvar2_1()
+ {
+   int i;
+   pthread_t t[NUMTHREADS + 1];
+-  int result = 0;
++  long result = 0;
+   struct _timeb currSysTime;
+   const unsigned int NANOSEC_PER_MILLISEC = 1000000;
+
+diff --git a/tests/condvar3_1.c b/tests/condvar3_1.c
+index 8725aec..aedcba9 100644
+--- a/tests/condvar3_1.c
++++ b/tests/condvar3_1.c
+@@ -146,7 +146,7 @@ int pthread_test_condvar3_1()
+ {
+   int i;
+   pthread_t t[NUMTHREADS + 1];
+-  int result = 0;
++  long result = 0;
+
+   timedout = 0;
+   signaled = 0;
+diff --git a/tests/condvar3_2.c b/tests/condvar3_2.c
+index 91ade40..1fd181e 100644
+--- a/tests/condvar3_2.c
++++ b/tests/condvar3_2.c
+@@ -140,7 +140,7 @@ int pthread_test_condvar3_2()
+ {
+   int i;
+   pthread_t t[NUMTHREADS + 1];
+-  int result = 0;
++  long result = 0;
+   struct _timeb currSysTime;
+   const unsigned int NANOSEC_PER_MILLISEC = 1000000;
+
+diff --git a/tests/delay2.c b/tests/delay2.c
+index 5eebb41..66edef7 100644
+--- a/tests/delay2.c
++++ b/tests/delay2.c
+@@ -67,7 +67,7 @@ func(void * arg)
+ int pthread_test_delay2()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+
+   mx = PTHREAD_MUTEX_INITIALIZER;
+
+diff --git a/tests/exception1.c b/tests/exception1.c
+index a73ccd4..409fd22 100644
+--- a/tests/exception1.c
++++ b/tests/exception1.c
+@@ -186,7 +186,7 @@ pthread_test_exception1()
+   for (i = 0; i < NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      long result = 0;
+
+       /* Canceled thread */
+       assert(pthread_join(ct[i], (void **) &result) == 0);
+diff --git a/tests/inherit1.c b/tests/inherit1.c
+index d7c1000..2fbd25a 100644
+--- a/tests/inherit1.c
++++ b/tests/inherit1.c
+@@ -100,7 +100,7 @@ int pthread_test_inherit1()
+   pthread_t t;
+   pthread_t mainThread = pthread_self();
+   pthread_attr_t attr;
+-  int result = 0;
++  long result = 0;
+   struct sched_param param;
+   struct sched_param mainParam;
+   int prio;
+diff --git a/tests/join0.c b/tests/join0.c
+index 0a06337..b0c1aca 100644
+--- a/tests/join0.c
++++ b/tests/join0.c
+@@ -61,7 +61,7 @@ func(void * arg)
+ int pthread_test_join0()
+ {
+   pthread_t id;
+-  int result;
++  long result;
+
+   /* Create a single thread and wait for it to exit. */
+   assert(pthread_create(&id, NULL, func, (void *) 123) == 0);
+diff --git a/tests/join1.c b/tests/join1.c
+index 4b55d6b..0dd9ad4 100644
+--- a/tests/join1.c
++++ b/tests/join1.c
+@@ -61,7 +61,7 @@ int pthread_test_join1()
+ {
+   pthread_t id[4];
+   int i;
+-  int result;
++  long result;
+
+   /* Create a few threads and then exit. */
+   for (i = 0; i < 4; i++)
+diff --git a/tests/join2.c b/tests/join2.c
+index a2e1dc3..63ff174 100644
+--- a/tests/join2.c
++++ b/tests/join2.c
+@@ -55,7 +55,7 @@ int pthread_test_join2()
+ {
+   pthread_t id[4];
+   int i;
+-  int result;
++  long result;
+
+   /* Create a few threads and then exit. */
+   for (i = 0; i < 4; i++)
+diff --git a/tests/join3.c b/tests/join3.c
+index 7f0d226..947aaff 100644
+--- a/tests/join3.c
++++ b/tests/join3.c
+@@ -55,7 +55,7 @@ int pthread_test_join3()
+ {
+   pthread_t id[4];
+   int i;
+-  int result;
++  long result;
+
+   /* Create a few threads and then exit. */
+   for (i = 0; i < 4; i++)
+diff --git a/tests/mutex6e.c b/tests/mutex6e.c
+index 5a74a5e..4bbbfd4 100644
+--- a/tests/mutex6e.c
++++ b/tests/mutex6e.c
+@@ -83,7 +83,7 @@ int
+ pthread_test_mutex6e()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+   int mxType = -1;
+
+   lockCount = 0;
+diff --git a/tests/mutex6es.c b/tests/mutex6es.c
+index a4f98af..4a381e6 100644
+--- a/tests/mutex6es.c
++++ b/tests/mutex6es.c
+@@ -82,7 +82,7 @@ int
+ pthread_test_mutex6es()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+
+   lockCount = 0;
+
+diff --git a/tests/mutex6r.c b/tests/mutex6r.c
+index 9733471..2c7316e 100644
+--- a/tests/mutex6r.c
++++ b/tests/mutex6r.c
+@@ -82,7 +82,7 @@ int
+ pthread_test_mutex6r()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+   int mxType = -1;
+
+   lockCount = 0;
+diff --git a/tests/mutex6rs.c b/tests/mutex6rs.c
+index 3b5639e..ad7f9a5 100644
+--- a/tests/mutex6rs.c
++++ b/tests/mutex6rs.c
+@@ -81,7 +81,7 @@ int
+ pthread_test_mutex6rs()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+
+   lockCount = 0;
+   mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER;
+diff --git a/tests/mutex7e.c b/tests/mutex7e.c
+index 572841e..1b36235 100644
+--- a/tests/mutex7e.c
++++ b/tests/mutex7e.c
+@@ -83,7 +83,7 @@ int
+ pthread_test_mutex7e()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+   int mxType = -1;
+
+   lockCount = 0;
+diff --git a/tests/mutex7r.c b/tests/mutex7r.c
+index ab2a070..09e9701 100644
+--- a/tests/mutex7r.c
++++ b/tests/mutex7r.c
+@@ -82,7 +82,7 @@ int
+ pthread_test_mutex7r()
+ {
+   pthread_t t;
+-  int result = 0;
++  long result = 0;
+   int mxType = -1;
+
+   lockCount = 0;
+diff --git a/tests/rwlock6.c b/tests/rwlock6.c
+index 2ab1595..572c91a 100644
+--- a/tests/rwlock6.c
++++ b/tests/rwlock6.c
+@@ -82,9 +82,9 @@ int pthread_test_rwlock6()
+   pthread_t wrt1;
+   pthread_t wrt2;
+   pthread_t rdt;
+-  int wr1Result = 0;
+-  int wr2Result = 0;
+-  int rdResult = 0;
++  long wr1Result = 0;
++  long wr2Result = 0;
++  long rdResult = 0;
+
+   rwlock1 = PTHREAD_RWLOCK_INITIALIZER;
+
+diff --git a/tests/rwlock6_t.c b/tests/rwlock6_t.c
+index cf92828..6b34dde 100644
+--- a/tests/rwlock6_t.c
++++ b/tests/rwlock6_t.c
+@@ -102,10 +102,10 @@ int pthread_test_rwlock6t()
+   pthread_t wrt2;
+   pthread_t rdt1;
+   pthread_t rdt2;
+-  int wr1Result = 0;
+-  int wr2Result = 0;
+-  int rd1Result = 0;
+-  int rd2Result = 0;
++  long wr1Result = 0;
++  long wr2Result = 0;
++  long rd1Result = 0;
++  long rd2Result = 0;
+
+   rwlock1 = PTHREAD_RWLOCK_INITIALIZER;
+
+diff --git a/tests/rwlock6_t2.c b/tests/rwlock6_t2.c
+index 916c4c5..4f24d7d 100644
+--- a/tests/rwlock6_t2.c
++++ b/tests/rwlock6_t2.c
+@@ -94,9 +94,9 @@ int pthread_test_rwlock6t2()
+   pthread_t wrt1;
+   pthread_t wrt2;
+   pthread_t rdt;
+-  int wr1Result = 0;
+-  int wr2Result = 0;
+-  int rdResult = 0;
++  long wr1Result = 0;
++  long wr2Result = 0;
++  long rdResult = 0;
+   struct _timeb currSysTime;
+   const long long NANOSEC_PER_MILLISEC = 1000000;
+
+diff --git a/tests/semaphore1.c b/tests/semaphore1.c
+index 3dd85ee..5baa8a4 100644
+--- a/tests/semaphore1.c
++++ b/tests/semaphore1.c
+@@ -111,7 +111,7 @@ int pthread_test_semaphore1(void)
+ {
+   pthread_t t;
+   sem_t s;
+-  int result;
++  long result;
+
+   assert(pthread_create(&t, NULL, thr, NULL) == 0);
+   assert(pthread_join(t, (void **)&result) == 0);
+diff --git a/tests/semaphore4.c b/tests/semaphore4.c
+index 7530424..e1bc8f8 100644
+--- a/tests/semaphore4.c
++++ b/tests/semaphore4.c
+@@ -134,7 +134,7 @@ int pthread_test_semaphore4(void)
+
+   assert(pthread_cancel(t[5]) == 0);
+   {
+-    int result;
++    long result;
+     assert(pthread_join(t[5], (void **) &result) == 0);
+   }
+   assert(sem_getvalue(&s, &value) == 0);
+diff --git a/tests/tsd1.c b/tests/tsd1.c
+index 4c5308b..929c929 100644
+--- a/tests/tsd1.c
++++ b/tests/tsd1.c
+@@ -197,7 +197,7 @@ int pthread_test_tsd1()
+    */
+   for (i = 1; i < NUM_THREADS; i++)
+     {
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(thread[i], (void **) &result) == 0);
+     }
+diff --git a/tests/tsd2.c b/tests/tsd2.c
+index a9558ab..d36df9f 100644
+--- a/tests/tsd2.c
++++ b/tests/tsd2.c
+@@ -195,7 +195,7 @@ int pthread_test_tsd2()
+    */
+   for (i = 1; i < NUM_THREADS; i++)
+     {
+-      int result = 0;
++      long result = 0;
+
+       assert(pthread_join(thread[i], (void **) &result) == 0);
+     }
+--
+2.11.0
+
diff --git 
a/patches/0002-tests-bugfix-Pass-right-arguments-on-tests-exit4-and.patch 
b/patches/0002-tests-bugfix-Pass-right-arguments-on-tests-exit4-and.patch
new file mode 100644
index 0000000..914d835
--- /dev/null
+++ b/patches/0002-tests-bugfix-Pass-right-arguments-on-tests-exit4-and.patch
@@ -0,0 +1,54 @@
+From 1bcadf3d3de5b2ef1417216e3ee56b7ec12eddec Mon Sep 17 00:00:00 2001
+From: Costin Lupu <costin.lup@xxxxxxxxx>
+Date: Sat, 9 Mar 2019 19:27:16 +0200
+Subject: [PATCH 2/5] tests bugfix Pass right arguments on tests exit4 and
+ exit5
+
+
+diff --git a/tests/exit4.c b/tests/exit4.c
+index 6d3e9ad..2645246 100644
+--- a/tests/exit4.c
++++ b/tests/exit4.c
+@@ -105,7 +105,7 @@ static bag_t threadbag[NUMTHREADS + 1];
+ static int osThread(void * arg)
+ {
+   int result = 1;
+-  bag_t * bag = *((bag_t **) arg);
++  bag_t * bag = arg;
+
+   assert(bag == &threadbag[bag->threadnum]);
+   assert(bag->started == 0);
+@@ -142,7 +142,7 @@ int pthread_test_exit4()
+       ptr = &(threadbag[i]);
+
+       pte_osThreadCreate(osThread, 4096, 10,
+-                         &ptr,
++                         ptr,
+                          &h[i]);
+
+       pte_osThreadStart(h[i]);
+diff --git a/tests/exit5.c b/tests/exit5.c
+index 5e09c0f..bcad6e9 100644
+--- a/tests/exit5.c
++++ b/tests/exit5.c
+@@ -103,7 +103,7 @@ static bag_t threadbag[NUMTHREADS + 1];
+ static int osThread(void * arg)
+ {
+   int result = 1;
+-  bag_t * bag = *((bag_t **) arg);
++  bag_t * bag = arg;
+
+   assert(bag == &threadbag[bag->threadnum]);
+   assert(bag->started == 0);
+@@ -138,7 +138,7 @@ int pthread_test_exit5()
+       ptr = &(threadbag[i]);
+
+       pte_osThreadCreate(osThread, 4096, 10,
+-                         &ptr,
++                         ptr,
+                          &h[i]);
+
+       pte_osThreadStart(h[i]);
+--
+2.11.0
+
diff --git 
a/patches/0003-tests-bugfix-Fix-macro-definitions-for-tests-once3-a.patch 
b/patches/0003-tests-bugfix-Fix-macro-definitions-for-tests-once3-a.patch
new file mode 100644
index 0000000..c466e3a
--- /dev/null
+++ b/patches/0003-tests-bugfix-Fix-macro-definitions-for-tests-once3-a.patch
@@ -0,0 +1,36 @@
+From 27575f2559b6a01501c40705026eca83aa511f31 Mon Sep 17 00:00:00 2001
+From: Costin Lupu <costin.lup@xxxxxxxxx>
+Date: Sat, 9 Mar 2019 19:30:17 +0200
+Subject: [PATCH 3/5] tests bugfix Fix macro definitions for tests once3 and
+ once4
+
+
+diff --git a/tests/once3.c b/tests/once3.c
+index 505374c..ac28e6d 100644
+--- a/tests/once3.c
++++ b/tests/once3.c
+@@ -55,7 +55,7 @@
+
+ #include "test.h"
+
+-#define NUM_THREADS OS_MAX_SIMUL_THREADS / 5 /* Targeting each once control */
++#define NUM_THREADS (OS_MAX_SIMUL_THREADS / 5) /* Targeting each once control 
*/
+ #define NUM_ONCE    5
+
+
+diff --git a/tests/once4.c b/tests/once4.c
+index 027bdaa..da4a44c 100644
+--- a/tests/once4.c
++++ b/tests/once4.c
+@@ -53,7 +53,7 @@
+
+ #include "test.h"
+
+-#define NUM_THREADS OS_MAX_SIMUL_THREADS / 5 /* Targeting each once control */
++#define NUM_THREADS (OS_MAX_SIMUL_THREADS / 5) /* Targeting each once control 
*/
+ #define NUM_ONCE    5
+
+ static pthread_once_t o = PTHREAD_ONCE_INIT;
+--
+2.11.0
+
diff --git 
a/patches/0004-tests-Disable-priority-tests-until-we-add-preemptive.patch 
b/patches/0004-tests-Disable-priority-tests-until-we-add-preemptive.patch
new file mode 100644
index 0000000..f0773d5
--- /dev/null
+++ b/patches/0004-tests-Disable-priority-tests-until-we-add-preemptive.patch
@@ -0,0 +1,28 @@
+From 36dec0d3b5e5ef279bdb30ee51b3e98cb21f5519 Mon Sep 17 00:00:00 2001
+From: Costin Lupu <costin.lup@xxxxxxxxx>
+Date: Sat, 9 Mar 2019 19:32:58 +0200
+Subject: [PATCH 4/5] tests Disable priority tests until we add preemptive
+ scheduling
+
+
+diff --git a/tests/test_main.c b/tests/test_main.c
+index d4bea48..bd6498e 100644
+--- a/tests/test_main.c
++++ b/tests/test_main.c
+@@ -109,11 +109,13 @@ static void runThreadTests(void)
+     pthread_test_reuse2();
+   */
+
++#if 0
+   printf("Priority test #1\n");
+   pthread_test_priority1();
+
+   printf("Priority test #2\n");
+   pthread_test_priority2();
++#endif
+
+ //  printf("Inherit test #1\n");
+ //  pthread_test_inherit1();  ///@todo
+--
+2.11.0
+
diff --git a/patches/0005-Use-Unikraft-yield-function.patch 
b/patches/0005-Use-Unikraft-yield-function.patch
new file mode 100644
index 0000000..0ec93b6
--- /dev/null
+++ b/patches/0005-Use-Unikraft-yield-function.patch
@@ -0,0 +1,22 @@
+From 52ccf3222da946d2ea11a4f3ecba8e31e7165562 Mon Sep 17 00:00:00 2001
+From: Costin Lupu <costin.lup@xxxxxxxxx>
+Date: Sat, 9 Mar 2019 19:37:04 +0200
+Subject: [PATCH 5/5] Use Unikraft yield function
+
+
+diff --git a/pte_generic_osal.h b/pte_generic_osal.h
+index 4db1f52..de1ea5f 100644
+--- a/pte_generic_osal.h
++++ b/pte_generic_osal.h
+@@ -241,7 +241,7 @@ static inline void pte_osYield(void)
+  */
+ static inline void pte_osYield(void)
+ {
+-      pte_osThreadSleep(1);
++      uk_sched_yield();
+ }
+ #endif
+
+--
+2.11.0
+
diff --git 
a/patches/0006-Separate-header-inclusions-for-functions-from-header.patch 
b/patches/0006-Separate-header-inclusions-for-functions-from-header.patch
new file mode 100644
index 0000000..36d66b0
--- /dev/null
+++ b/patches/0006-Separate-header-inclusions-for-functions-from-header.patch
@@ -0,0 +1,40 @@
+From 8ca957ddc2285469fdb4137a9b37ffd0cbc064ec Mon Sep 17 00:00:00 2001
+From: Costin Lupu <costin.lup@xxxxxxxxx>
+Date: Mon, 11 Mar 2019 10:01:15 +0200
+Subject: [PATCH] Separate header inclusions for functions from header
+ inclusion for types
+
+Including time.h before defining pthread_t type generates "unknown type name
+‘pthread_t’" compiling errors with Newlib because of some circular inclusions.
+Thus we adopt a more generic approach, separating the inclusions needed for
+defining types from the inclusions needed for declaring functions, moving the
+latter just before declaring the function prototypes.
+
+diff --git a/pthread.h b/pthread.h
+index 5b69053..33df446 100644
+--- a/pthread.h
++++ b/pthread.h
+@@ -174,9 +174,6 @@
+  * -------------------------------------------------------------
+  */
+
+-#include <time.h>
+-
+-#include <setjmp.h>
+ #include <limits.h>
+
+ /*
+@@ -653,6 +650,10 @@ enum
+
+ #endif /* PTE_CLEANUP_C */
+
++#include <time.h>
++
++#include <setjmp.h>
++
+     /*
+      * ===============
+      * ===============
+--
+2.11.0
+


--
Dr. Florian Schmidt
フローリアン・シュミット
Research Scientist,
Systems and Machine Learning Group
NEC Laboratories Europe
Kurfürsten-Anlage 36, D-69115 Heidelberg
Tel.     +49 (0)6221 4342-265
Fax:     +49 (0)6221 4342-155
e-mail:  florian.schmidt@xxxxxxxxx
============================================================
Registered at Amtsgericht Mannheim, Germany, HRB728558

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.