Hello people!

I have:
CPU: Intel(R) Core(TM)2 Duo CPU     T7250  @ 2.00GHz (1994.48-MHz K8-class CPU)
FreeBSD 10.0-CURRENT r226607 amd64

For example during the building of the port lang/gcc46 in four streams (-j 4) 
with a heavy load on the processor - use the system was nearly impossible - 
responsiveness was terrible - the mouse cursor sometimes froze on the spot a 
few seconds...

I managed to achieve a significant increase in the degree of interactivity ULE 
scheduler due to the following changes:
##########################
--- sched_ule.c.orig    2011-10-22 11:40:30.000000000 +0300
+++ sched_ule.c 2011-10-22 12:25:05.000000000 +0300
@@ -2119,6 +2119,14 @@
 
        THREAD_LOCK_ASSERT(td, MA_OWNED);
        tdq = TDQ_SELF();
+       if (td->td_pri_class & PRI_FIFO_BIT)
+               return;
+       ts = td->td_sched;
+       /*
+        * We used up one time slice.
+        */
+       if (--ts->ts_slice > 0)
+               return;
 #ifdef SMP
        /*
         * We run the long term load balancer infrequently on the first cpu.
@@ -2144,9 +2152,6 @@
                if (TAILQ_EMPTY(&tdq->tdq_timeshare.rq_queues[tdq->tdq_ridx]))
                        tdq->tdq_ridx = tdq->tdq_idx;
        }
-       ts = td->td_sched;
-       if (td->td_pri_class & PRI_FIFO_BIT)
-               return;
        if (PRI_BASE(td->td_pri_class) == PRI_TIMESHARE) {
                /*
                 * We used a tick; charge it to the thread so
@@ -2157,11 +2162,6 @@
                sched_priority(td);
        }
        /*
-        * We used up one time slice.
-        */
-       if (--ts->ts_slice > 0)
-               return;
-       /*
         * We're out of time, force a requeue at userret().
         */
        ts->ts_slice = sched_slice;
##########################

What do you think about this?

Thanks!
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to