From c1a3f22e0669cc6bdbd3344d9e953c8eacfeed70 Mon Sep 17 00:00:00 2001 From: John Stultz Date: Tue, 10 Jun 2025 19:17:14 +0000 Subject: [PATCH] ANDROID: CRC / ABI fixups for sched_dl_entity bitfield addition The previous patch adds a new bitfield to the sched_dl_entity structure. This nests into a existing hole in the structure next to other bitfield entries, so the structure size should not change, thus this should be a additive KABI change, and not break any existing logic. There is no special KABI macro support for such new bitfields, so the type string of this struct is now recorded in its entirety. The ABI break is also marked as allowed. Further changes to the type will not impact the CRCs of dependent symbols and will only be picked up by ABI monitoring. Bug: 422165470 Change-Id: I882ce04d3a84dd8ee717598c5d2ecd1891db6ff5 Suggested-by: Giuliano Procida Signed-off-by: John Stultz Signed-off-by: Giuliano Procida --- gki/aarch64/abi.stg | 8 ++++++++ gki/aarch64/abi.stg.allowed_breaks | 3 +++ include/linux/sched.h | 28 ++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/gki/aarch64/abi.stg b/gki/aarch64/abi.stg index 875e1e510ef8..0d05bdaf0055 100644 --- a/gki/aarch64/abi.stg +++ b/gki/aarch64/abi.stg @@ -86308,6 +86308,13 @@ member { offset: 677 bitsize: 1 } +member { + id: 0xea97a196 + name: "dl_server_idle" + type_id: 0x4585663f + offset: 681 + bitsize: 1 +} member { id: 0xa4b04617 name: "dl_throttled" @@ -278847,6 +278854,7 @@ struct_union { member_id: 0xd4c38c2c member_id: 0x312229bb member_id: 0xf8de4a8a + member_id: 0xea97a196 member_id: 0x372017ff member_id: 0xda403afa member_id: 0x0d1ed794 diff --git a/gki/aarch64/abi.stg.allowed_breaks b/gki/aarch64/abi.stg.allowed_breaks index e69de29bb2d1..d366ddcf766d 100644 --- a/gki/aarch64/abi.stg.allowed_breaks +++ b/gki/aarch64/abi.stg.allowed_breaks @@ -0,0 +1,3 @@ +type 'struct sched_dl_entity' changed + member 'unsigned int dl_server_idle:1' was added + diff --git a/include/linux/sched.h b/include/linux/sched.h index 159cd50678be..da3984c175f3 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -729,6 +729,34 @@ struct sched_dl_entity { #endif }; +ANDROID_KABI_TYPE_STRING("s#sched_dl_entity", "structure_type sched_dl_entity " + "{ member s#rb_node rb_node data_member_location(0) , member t#u64 " + "dl_runtime data_member_location(24) , member t#u64 dl_deadline " + "data_member_location(32) , member t#u64 dl_period data_member_location(40) " + ", member t#u64 dl_bw data_member_location(48) , member t#u64 dl_density " + "data_member_location(56) , member t#s64 runtime data_member_location(64) , " + "member t#u64 deadline data_member_location(72) , member base_type unsigned " + "int byte_size(4) encoding(7) flags data_member_location(80) , member base_type " + "unsigned int byte_size(4) encoding(7) dl_throttled bit_size(1) " + "data_bit_offset(672) , member base_type unsigned int byte_size(4) encoding(7) " + "dl_yielded bit_size(1) data_bit_offset(673) , member base_type unsigned int " + "byte_size(4) encoding(7) dl_non_contending bit_size(1) data_bit_offset(674) , " + "member base_type unsigned int byte_size(4) encoding(7) dl_overrun bit_size(1) " + "data_bit_offset(675) , member base_type unsigned int byte_size(4) encoding(7) " + "dl_server bit_size(1) data_bit_offset(676) , member base_type unsigned int " + "byte_size(4) encoding(7) dl_server_active bit_size(1) data_bit_offset(677) , " + "member base_type unsigned int byte_size(4) encoding(7) dl_defer bit_size(1) " + "data_bit_offset(678) , member base_type unsigned int byte_size(4) encoding(7) " + "dl_defer_armed bit_size(1) data_bit_offset(679) , member base_type unsigned " + "int byte_size(4) encoding(7) dl_defer_running bit_size(1) " + "data_bit_offset(680) , member s#hrtimer dl_timer data_member_location(88) , " + "member s#hrtimer inactive_timer data_member_location(152) , member " + "pointer_type { s#rq } rq data_member_location(216) , member " + "t#dl_server_has_tasks_f server_has_tasks data_member_location(224) , member " + "t#dl_server_pick_f server_pick_task data_member_location(232) , member " + "pointer_type { s#sched_dl_entity } pi_se data_member_location(240) } " + "byte_size(248)"); + #ifdef CONFIG_UCLAMP_TASK /* Number of utilization clamp buckets (shorter alias) */ #define UCLAMP_BUCKETS CONFIG_UCLAMP_BUCKETS_COUNT