diff options
| author | Chia-I Wu <olv@google.com> | 2017-02-10 08:11:55 -0800 |
|---|---|---|
| committer | Chia-I Wu <olv@google.com> | 2017-02-10 12:23:45 -0800 |
| commit | 4a71a73843d974490c0c8ccdf7318bbc54b6bd42 (patch) | |
| tree | 4dfc0c36f65905fed1ef96a7bd2c278326f2bb57 | |
| parent | 71b3bafa59e2a2637536a283cc30e5ae385708f1 (diff) | |
| download | android_hardware_interfaces-4a71a73843d974490c0c8ccdf7318bbc54b6bd42.tar.gz android_hardware_interfaces-4a71a73843d974490c0c8ccdf7318bbc54b6bd42.tar.bz2 android_hardware_interfaces-4a71a73843d974490c0c8ccdf7318bbc54b6bd42.zip | |
graphics: use FIFO scheduler in IComposer
Make IComposer default implementation use the same process scheduler
as SurfaceFlinger does.
Bug: 35210697
Test: manual
Change-Id: Ie2ebe1d3fd26505984d9f6c33d63b5db36b0b64a
| -rw-r--r-- | graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc | 1 | ||||
| -rw-r--r-- | graphics/composer/2.1/default/service.cpp | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc index fc21d59e1..9548d4174 100644 --- a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc +++ b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc @@ -2,4 +2,5 @@ service hwcomposer-2-1 /system/bin/hw/android.hardware.graphics.composer@2.1-ser class hal user system group graphics drmrpc readproc + capabilities SYS_NICE onrestart restart surfaceflinger diff --git a/graphics/composer/2.1/default/service.cpp b/graphics/composer/2.1/default/service.cpp index a31decd3a..656673e67 100644 --- a/graphics/composer/2.1/default/service.cpp +++ b/graphics/composer/2.1/default/service.cpp @@ -16,6 +16,8 @@ #define LOG_TAG "android.hardware.graphics.composer@2.1-service" +#include <sched.h> + #include <android/hardware/graphics/composer/2.1/IComposer.h> #include <binder/ProcessState.h> @@ -29,5 +31,13 @@ int main() { android::ProcessState::self()->setThreadPoolMaxThreadCount(4); android::ProcessState::self()->startThreadPool(); + // same as SF main thread + struct sched_param param = {0}; + param.sched_priority = 2; + if (sched_setscheduler(0, SCHED_FIFO | SCHED_RESET_ON_FORK, + ¶m) != 0) { + ALOGE("Couldn't set SCHED_FIFO: %d", errno); + } + return defaultPassthroughServiceImplementation<IComposer>("hwcomposer"); } |
