Messages in this thread | ![/](/images/icornerl.gif) | | Date | Thu, 29 Feb 2024 17:24:58 +0800 | From | Tianchen Ding <> | Subject | Re: [PATCH 1/4] sched/eevdf: Fix vruntime adjustment on reweight |
| |
Hi Abel:
I'm not so familiar with eevdf and still learning. Here I've some questions about this patch.
1. You did proof that V will not change during reweight (COROLLARY #2). However, according to the original paper, the new V will be: V' = V + lag(j)/(W - w_j) - lag(j)/(W - w_j + w'_j) So the V' in paper will change (when lag is not zero). Is the V in Linux code slightly different from the paper?
2. I print some log around reweight_entity(), mainly want to print V by calling avg_vruntime(cfs_rq). I found your algorithm only keeps the V unchanged during reweight_eevdf(), but not reweight_entity().
In detail: If curr is true (i.e., cfs_rq->curr == se), we will directly run reweight_eevdf(), and the V is not changed. If curr is false, we will have __dequeue_entity() -> reweight_eevdf() -> __enqueue_entity(). The V is finally changed due to dequeue and enqueue. So the result of reweight_entity() will be impacted by "cfs_rq->curr == se", is this expected?
Thanks!
| ![\](/images/icornerr.gif) |