Lines Matching full:ecaps
904 u64 ecaps = 0; in calc_effective_caps() local
909 ecaps |= BIT_U64(cap_bit) | scx_caps_implied(BIT_U64(cap_bit)); in calc_effective_caps()
910 return ecaps; in calc_effective_caps()
914 * queue_sync_ecaps - Queue ecaps update for a (sch, cid) pair
918 * Queue an ecaps update for @sch's @cid and kick the cpu so that it syncs in
940 /* discard @rq's queued ecaps syncs */
952 * scx_process_sync_ecaps - Sync this cpu's ecaps to pshard->caps[]
956 * pshard->caps[] is the target configuration. pcpu->ecaps is the effective
977 * ecaps are zeroed while the cpu is inactive and must stay zero. in scx_process_sync_ecaps()
998 u64 old, ecaps, lost, gained; in scx_process_sync_ecaps() local
1005 old = READ_ONCE(pcpu->ecaps); in scx_process_sync_ecaps()
1006 ecaps = calc_effective_caps(ps, cid); in scx_process_sync_ecaps()
1007 WRITE_ONCE(pcpu->ecaps, ecaps); in scx_process_sync_ecaps()
1009 lost = old & ~ecaps; in scx_process_sync_ecaps()
1010 gained = ecaps & ~old; in scx_process_sync_ecaps()
1023 if (ecaps != pcpu->reported_ecaps && in scx_process_sync_ecaps()
1032 pcpu->reported_ecaps, ecaps); in scx_process_sync_ecaps()
1035 pcpu->reported_ecaps = ecaps; in scx_process_sync_ecaps()
1054 * against the effective caps and thus must come after the ecaps sync. in scx_process_sync_ecaps()
1061 * scx_unbypass_replay_ecaps - Replay a bypass-suppressed ecaps notification
1081 /* root holds every cap and never uses ecaps */ in scx_unbypass_replay_ecaps()
1085 if (READ_ONCE(pcpu->ecaps) == pcpu->reported_ecaps) in scx_unbypass_replay_ecaps()
1096 * A cpu came back. Re-seed each sub-sched's ecaps on the cpu's cid. The sync
1106 * Only a live hierarchy can have ecaps to reseed. This also keeps the in scx_online_ecaps()
1123 /* root holds every cap and never uses ecaps */ in scx_online_ecaps()
1134 * A cpu is going down. Zero each sub-sched's in-effect ecaps so cap checks
1151 /* root holds every cap and never uses ecaps */ in scx_offline_ecaps()
1155 WRITE_ONCE(per_cpu_ptr(pos->pcpu, cpu)->ecaps, 0); in scx_offline_ecaps()
1209 * scx_discard_stale_ecaps_syncs - Discard ecaps syncs from earlier schedulers
1213 * still-open link fd defers it) and can leave queued ecaps syncs behind.
2248 * its inserts would only be rejected. ecaps are synced at the top of in scx_bpf_sub_dispatch()