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

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



Hi Costin,

those patches look fine. Just two remarks:

The first four patches are large and touch a lot of files. Good thing pthread-embedded isn't really developed much any more, because it would be a pain to port these to a potential newer version. ;-) I'm wondering though: all those changes in the first four patches look like bugfixes. Did you consider submitting them upstream? If they accept them, it's great for them and great for us (because we can remove them from our patching step).

The other remark is that for the last patch, it would be great if you could add a sentence or two to explain what this fixes and why.

Thanks,
Florian

On 4/15/19 2:43 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 |  35 ++
  6 files changed, 669 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..29537f6
--- /dev/null
+++ b/patches/0006-Separate-header-inclusions-for-functions-from-header.patch
@@ -0,0 +1,35 @@
+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
+
+
+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®.