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 <gprocida@google.com>
Signed-off-by: John Stultz <jstultz@google.com>
Signed-off-by: Giuliano Procida <gprocida@google.com>
This commit is contained in:
John Stultz
2025-06-10 19:17:14 +00:00
parent 738664c527
commit c1a3f22e06
3 changed files with 39 additions and 0 deletions

View File

@@ -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

View File

@@ -0,0 +1,3 @@
type 'struct sched_dl_entity' changed
member 'unsigned int dl_server_idle:1' was added

View File

@@ -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