diff options
Diffstat (limited to 'meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch')
-rw-r--r-- | meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch b/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch deleted file mode 100644 index 395bc7d51..000000000 --- a/meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.3.0.0/scheduler.patch +++ /dev/null @@ -1,151 +0,0 @@ ->From 48e4d08e99de41047c6b6fde5ba9d12787881c23 Mon Sep 17 00:00:00 2001 -From: root <root@benny.jf.intel.com> -Date: Sun, 28 Oct 2007 09:37:52 +0100 -Subject: [PATCH] The smart scheduler itimer currently always fires after each request - (which in turn causes the CPU to wake out of idle, burning precious power). - Rather than doing this, just stop the timer before going into the select() - portion of the WaitFor loop. It's a cheap system call, and it will only get - called if there's no more commands batched up from the active fd. - -This change also allows some of the functions to be simplified; setitimer() -will only fail if it's passed invalid data, and we don't do that... so make -it void and remove all the conditional code that deals with failure. - -The change also allows us to remove a few variables that were used for -housekeeping between the signal handler and the main loop. ---- - include/dixstruct.h | 6 ++---- - os/WaitFor.c | 11 +++-------- - os/utils.c | 28 +++------------------------- - 3 files changed, 8 insertions(+), 37 deletions(-) - -diff --git a/include/dixstruct.h b/include/dixstruct.h -index dd6347f..bed31dc 100644 ---- a/include/dixstruct.h -+++ b/include/dixstruct.h -@@ -150,11 +150,9 @@ extern long SmartScheduleTime; - extern long SmartScheduleInterval; - extern long SmartScheduleSlice; - extern long SmartScheduleMaxSlice; --extern unsigned long SmartScheduleIdleCount; - extern Bool SmartScheduleDisable; --extern Bool SmartScheduleIdle; --extern Bool SmartScheduleTimerStopped; --extern Bool SmartScheduleStartTimer(void); -+extern void SmartScheduleStartTimer(void); -+extern void SmartScheduleStopTimer(void); - #define SMART_MAX_PRIORITY (20) - #define SMART_MIN_PRIORITY (-20) - -diff --git a/os/WaitFor.c b/os/WaitFor.c -index ec1592c..7683477 100644 ---- a/os/WaitFor.c -+++ b/os/WaitFor.c -@@ -217,7 +217,8 @@ WaitForSomething(int *pClientsReady) - XFD_COPYSET(&AllSockets, &LastSelectMask); - #ifdef SMART_SCHEDULE - } -- SmartScheduleIdle = TRUE; -+ SmartScheduleStopTimer (); -+ - #endif - BlockHandler((pointer)&wt, (pointer)&LastSelectMask); - if (NewOutputPending) -@@ -237,13 +238,7 @@ WaitForSomething(int *pClientsReady) - selecterr = GetErrno(); - WakeupHandler(i, (pointer)&LastSelectMask); - #ifdef SMART_SCHEDULE -- if (i >= 0) -- { -- SmartScheduleIdle = FALSE; -- SmartScheduleIdleCount = 0; -- if (SmartScheduleTimerStopped) -- (void) SmartScheduleStartTimer (); -- } -+ SmartScheduleStartTimer (); - #endif - if (i <= 0) /* An error or timeout occurred */ - { -diff --git a/os/utils.c b/os/utils.c -index 31cb0af..6fc1f7d 100644 ---- a/os/utils.c -+++ b/os/utils.c -@@ -1513,10 +1513,6 @@ XNFstrdup(const char *s) - - #ifdef SMART_SCHEDULE - --unsigned long SmartScheduleIdleCount; --Bool SmartScheduleIdle; --Bool SmartScheduleTimerStopped; -- - #ifdef SIGVTALRM - #define SMART_SCHEDULE_POSSIBLE - #endif -@@ -1526,7 +1522,7 @@ Bool SmartScheduleTimerStopped; - #define SMART_SCHEDULE_TIMER ITIMER_REAL - #endif - --static void -+void - SmartScheduleStopTimer (void) - { - #ifdef SMART_SCHEDULE_POSSIBLE -@@ -1537,38 +1533,28 @@ SmartScheduleStopTimer (void) - timer.it_value.tv_sec = 0; - timer.it_value.tv_usec = 0; - (void) setitimer (ITIMER_REAL, &timer, 0); -- SmartScheduleTimerStopped = TRUE; - #endif - } - --Bool -+void - SmartScheduleStartTimer (void) - { - #ifdef SMART_SCHEDULE_POSSIBLE - struct itimerval timer; - -- SmartScheduleTimerStopped = FALSE; - timer.it_interval.tv_sec = 0; - timer.it_interval.tv_usec = SmartScheduleInterval * 1000; - timer.it_value.tv_sec = 0; - timer.it_value.tv_usec = SmartScheduleInterval * 1000; -- return setitimer (ITIMER_REAL, &timer, 0) >= 0; -+ setitimer (ITIMER_REAL, &timer, 0); - #endif -- return FALSE; - } - - #ifdef SMART_SCHEDULE_POSSIBLE - static void - SmartScheduleTimer (int sig) - { -- int olderrno = errno; -- - SmartScheduleTime += SmartScheduleInterval; -- if (SmartScheduleIdle) -- { -- SmartScheduleStopTimer (); -- } -- errno = olderrno; - } - #endif - -@@ -1592,14 +1578,6 @@ SmartScheduleInit (void) - perror ("sigaction for smart scheduler"); - return FALSE; - } -- /* Set up the virtual timer */ -- if (!SmartScheduleStartTimer ()) -- { -- perror ("scheduling timer"); -- return FALSE; -- } -- /* stop the timer and wait for WaitForSomething to start it */ -- SmartScheduleStopTimer (); - return TRUE; - #else - return FALSE; --- -1.5.3.4 - |