Bluetooth: Remove scheduler-service dependency
Bug: 38178265
Test: Bluetooth enable/disable
adb shell stop && adb shell VtsHalBluetoothV1_TargetTest
Change-Id: I7f892bad73f72b46b7b1720bda267fdddad21948
diff --git a/bluetooth/1.0/default/Android.bp b/bluetooth/1.0/default/Android.bp
index 46a4987..31a2641 100644
--- a/bluetooth/1.0/default/Android.bp
+++ b/bluetooth/1.0/default/Android.bp
@@ -24,7 +24,6 @@
"vendor_interface.cc",
],
shared_libs: [
- "android.frameworks.schedulerservice@1.0",
"android.hardware.bluetooth@1.0",
"libbase",
"libcutils",
@@ -49,7 +48,6 @@
],
export_include_dirs: ["."],
shared_libs: [
- "android.frameworks.schedulerservice@1.0",
"liblog",
],
}
@@ -86,7 +84,6 @@
"test",
],
shared_libs: [
- "android.frameworks.schedulerservice@1.0",
"libbase",
"libhidlbase",
"liblog",
diff --git a/bluetooth/1.0/default/Android.mk b/bluetooth/1.0/default/Android.mk
index 2dcb067..38294c7 100644
--- a/bluetooth/1.0/default/Android.mk
+++ b/bluetooth/1.0/default/Android.mk
@@ -35,6 +35,5 @@
libhidlbase \
libhidltransport \
android.hardware.bluetooth@1.0 \
- android.frameworks.schedulerservice@1.0\
include $(BUILD_EXECUTABLE)
diff --git a/bluetooth/1.0/default/async_fd_watcher.cc b/bluetooth/1.0/default/async_fd_watcher.cc
index ab8d555..bc0bc92 100644
--- a/bluetooth/1.0/default/async_fd_watcher.cc
+++ b/bluetooth/1.0/default/async_fd_watcher.cc
@@ -30,8 +30,6 @@
#include "sys/select.h"
#include "unistd.h"
-#include <android/frameworks/schedulerservice/1.0/ISchedulingPolicyService.h>
-
static const int INVALID_FD = -1;
static const int BT_RT_PRIORITY = 1;
@@ -119,19 +117,12 @@
}
void AsyncFdWatcher::ThreadRoutine() {
- using ::android::frameworks::schedulerservice::V1_0::ISchedulingPolicyService;
- using ::android::hardware::Return;
- sp<ISchedulingPolicyService> manager = ISchedulingPolicyService::getService();
- if (manager == nullptr) {
- ALOGE("%s: Couldn't get scheduler manager to set SCHED_FIFO.", __func__);
- } else {
- Return<bool> ret = manager->requestPriority(getpid(),
- gettid(),
- BT_RT_PRIORITY);
- if (!ret.isOk() || !ret) {
- ALOGE("%s unable to set SCHED_FIFO for pid %d, tid %d", __func__,
- getpid(), gettid());
- }
+ // Make watching thread RT.
+ struct sched_param rt_params;
+ rt_params.sched_priority = BT_RT_PRIORITY;
+ if (sched_setscheduler(gettid(), SCHED_FIFO, &rt_params)) {
+ ALOGE("%s unable to set SCHED_FIFO for pid %d, tid %d, error %s", __func__,
+ getpid(), gettid(), strerror(errno));
}
while (running_) {
diff --git a/bluetooth/1.0/default/service.cpp b/bluetooth/1.0/default/service.cpp
index a588c37..3a7aad0 100644
--- a/bluetooth/1.0/default/service.cpp
+++ b/bluetooth/1.0/default/service.cpp
@@ -20,8 +20,8 @@
#include <hidl/LegacySupport.h>
-// Add an extra thread for calls to the scheduler service.
-static const size_t kMaxThreads = 2;
+// Extra threads make priority inheritance faster.
+static const size_t kMaxThreads = 5;
// Generated HIDL files
using android::hardware::bluetooth::V1_0::IBluetoothHci;