// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. */ #include "qc_vas.h" #ifdef CONFIG_SCHED_WALT static inline void __window_data(u32 *dst, u32 *src) { if (src) memcpy(dst, src, nr_cpu_ids * sizeof(u32)); else memset(dst, 0, nr_cpu_ids * sizeof(u32)); } struct trace_seq; const char *__window_print(struct trace_seq *p, const u32 *buf, int buf_len) { int i; const char *ret = p->buffer + seq_buf_used(&p->seq); for (i = 0; i < buf_len; i++) trace_seq_printf(p, "%u ", buf[i]); trace_seq_putc(p, 0); return ret; } static inline s64 __rq_update_sum(struct rq *rq, bool curr, bool new) { if (curr) if (new) return rq->wrq.nt_curr_runnable_sum; else return rq->wrq.curr_runnable_sum; else if (new) return rq->wrq.nt_prev_runnable_sum; else return rq->wrq.prev_runnable_sum; } static inline s64 __grp_update_sum(struct rq *rq, bool curr, bool new) { if (curr) if (new) return rq->wrq.grp_time.nt_curr_runnable_sum; else return rq->wrq.grp_time.curr_runnable_sum; else if (new) return rq->wrq.grp_time.nt_prev_runnable_sum; else return rq->wrq.grp_time.prev_runnable_sum; } static inline s64 __get_update_sum(struct rq *rq, enum migrate_types migrate_type, bool src, bool new, bool curr) { switch (migrate_type) { case RQ_TO_GROUP: if (src) return __rq_update_sum(rq, curr, new); else return __grp_update_sum(rq, curr, new); case GROUP_TO_RQ: if (src) return __grp_update_sum(rq, curr, new); else return __rq_update_sum(rq, curr, new); default: WARN_ON_ONCE(1); return -1; } } #endif #define CREATE_TRACE_POINTS #include "trace.h"