Author: mmacy
Date: Fri May 11 04:47:05 2018
New Revision: 333479
URL: https://svnweb.freebsd.org/changeset/base/333479

Log:
  Test priority handling in epoch test.
  
  - Double the number of test threads to mp_ncpu*2
  - Give each thread a different scheduling priority

Modified:
  head/sys/tests/epoch/epoch_test.c

Modified: head/sys/tests/epoch/epoch_test.c
==============================================================================
--- head/sys/tests/epoch/epoch_test.c   Fri May 11 02:04:01 2018        
(r333478)
+++ head/sys/tests/epoch/epoch_test.c   Fri May 11 04:47:05 2018        
(r333479)
@@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$");
 #include <sys/malloc.h>
 #include <sys/module.h>
 #include <sys/mutex.h>
+#include <sys/proc.h>
+#include <sys/sched.h>
 #include <sys/smp.h>
 #include <sys/sysctl.h>
 #include <sys/systm.h>
@@ -132,16 +134,24 @@ static struct epoch_test_instance etilist[MAXCPU];
 static int
 test_modinit(void)
 {
-       int i, error;
+       struct thread *td;
+       int i, error, pri_range, pri_off;
 
+       pri_range = PRI_MIN_TIMESHARE - PRI_MIN_REALTIME;
        test_epoch = epoch_alloc();
-       for (i = 0; i < mp_ncpus; i++) {
+       for (i = 0; i < mp_ncpus*2; i++) {
                etilist[i].threadid = i;
                error = kthread_add(testloop, &etilist[i], NULL, 
&testthreads[i],
                                                        0, 0, "epoch_test_%d", 
i);
                if (error) {
                        printf("%s: kthread_add(epoch_test): error %d", 
__func__,
                                   error);
+               } else {
+                       pri_off = (i*4)%pri_range;
+                       td = testthreads[i];
+                       thread_lock(td);
+                       sched_prio(td, PRI_MIN_REALTIME + pri_off);
+                       thread_unlock(td);
                }
        }
        inited = 1;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to