Let hwbinder nodes inherit real-time scheduling policy.
This was previously controlled by hwservicemanager calling
an ioctl, but we've decided to make the priority inheritance
more fine-grained with the binder patchstack on common -
eg see https://android-review.googlesource.com/#/c/421861/
Bug: 62946141
Test: flag is set on binder_node in hwbinder objects
Change-Id: Ia093e173a205a2180eb35eea9aa29c3a67cc66a8
Merged-In: Ia093e173a205a2180eb35eea9aa29c3a67cc66a8
diff --git a/Parcel.cpp b/Parcel.cpp
index db4bb05..59a4686 100644
--- a/Parcel.cpp
+++ b/Parcel.cpp
@@ -217,7 +217,7 @@
int priority = local->getMinSchedulingPriority();
obj.flags = priority & FLAT_BINDER_FLAG_PRIORITY_MASK;
- obj.flags |= FLAT_BINDER_FLAG_ACCEPTS_FDS;
+ obj.flags |= FLAT_BINDER_FLAG_ACCEPTS_FDS | FLAT_BINDER_FLAG_INHERIT_RT;
obj.flags |= (policy & 3) << FLAT_BINDER_FLAG_SCHEDPOLICY_SHIFT;
obj.type = BINDER_TYPE_BINDER;
obj.binder = reinterpret_cast<uintptr_t>(local->getWeakRefs());
diff --git a/include/hwbinder/binder_kernel.h b/include/hwbinder/binder_kernel.h
index 2adbf23..bf94a57 100644
--- a/include/hwbinder/binder_kernel.h
+++ b/include/hwbinder/binder_kernel.h
@@ -109,6 +109,7 @@
enum {
FLAT_BINDER_FLAG_SCHEDPOLICY_MASK = 0x600,
FLAT_BINDER_FLAG_SCHEDPOLICY_SHIFT = 9,
+ FLAT_BINDER_FLAG_INHERIT_RT = 0x800,
};
struct binder_node_debug_info {