Merge "Revert "Revert "Increase HidRawSensor thread priority to reduce latency""" into main am: 095c6960f8
am: 60b7e3a576
Original change: https://android-review.googlesource.com/c/platform/hardware/libhardware/+/2755006 Change-Id: I0adccc4507cff40ae262c2b676d46931a5d8f92e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
5f6bfea312
2 changed files with 12 additions and 1 deletions
|
@ -35,6 +35,15 @@ using namespace Hid::Sensor::PropertyUsage;
|
|||
const std::unordered_set<unsigned int> HidRawSensorDevice::sInterested{
|
||||
ACCELEROMETER_3D, GYROMETER_3D, COMPASS_3D, CUSTOM};
|
||||
|
||||
void HidRawSensorDevice::enableSchedFifoMode() {
|
||||
constexpr int kHidRawSensorPriority = 10; // Matches with sensor service priority
|
||||
struct sched_param param = {0};
|
||||
param.sched_priority = kHidRawSensorPriority;
|
||||
if (sched_setscheduler(getTid(), SCHED_FIFO | SCHED_RESET_ON_FORK, ¶m) != 0) {
|
||||
ALOGE("Couldn't set SCHED_FIFO for HidRawSensor thread: %s", strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
sp<HidRawSensorDevice> HidRawSensorDevice::create(const std::string &devName) {
|
||||
sp<HidRawSensorDevice> device(new HidRawSensorDevice(devName));
|
||||
// offset +1 strong count added by constructor
|
||||
|
@ -74,7 +83,8 @@ HidRawSensorDevice::HidRawSensorDevice(const std::string &devName)
|
|||
return;
|
||||
}
|
||||
|
||||
run("HidRawSensor");
|
||||
run("HidRawSensor", PRIORITY_URGENT_DISPLAY);
|
||||
enableSchedFifoMode();
|
||||
mValid = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ private:
|
|||
|
||||
// constructor will result in +1 strong count
|
||||
explicit HidRawSensorDevice(const std::string &devName);
|
||||
void enableSchedFifoMode();
|
||||
// implement function of Thread
|
||||
virtual bool threadLoop() override;
|
||||
std::unordered_map<unsigned int/*reportId*/, sp<HidRawSensor>> mSensors;
|
||||
|
|
Loading…
Reference in a new issue