From: kernel test robot <lkp@intel.com>
To: Wanpeng Li <kernellwp@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <seanjc@google.com>
Cc: oe-kbuild-all@lists.linux.dev,
K Prateek Nayak <kprateek.nayak@amd.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Vincent Guittot <vincent.guittot@linaro.org>,
Juri Lelli <juri.lelli@redhat.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
Wanpeng Li <wanpengli@tencent.com>
Subject: Re: [PATCH v2 4/9] sched/fair: Add penalty calculation and application logic
Date: Tue, 23 Dec 2025 07:36:43 +0800 [thread overview]
Message-ID: <202512230746.EpT2QbVU-lkp@intel.com> (raw)
In-Reply-To: <20251219035334.39790-5-kernellwp@gmail.com>
Hi Wanpeng,
kernel test robot noticed the following build warnings:
[auto build test WARNING on kvm/queue]
[also build test WARNING on kvm/next tip/sched/core peterz-queue/sched/core tip/master linus/master v6.19-rc2 next-20251219]
[cannot apply to kvm/linux-next tip/auto-latest]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Wanpeng-Li/sched-fair-Add-rate-limiting-and-validation-helpers/20251219-125353
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
patch link: https://lore.kernel.org/r/20251219035334.39790-5-kernellwp%40gmail.com
patch subject: [PATCH v2 4/9] sched/fair: Add penalty calculation and application logic
config: openrisc-randconfig-r122-20251221 (https://download.01.org/0day-ci/archive/20251223/202512230746.EpT2QbVU-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230746.EpT2QbVU-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512230746.EpT2QbVU-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:1158:49: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *running @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:1158:49: sparse: expected struct task_struct *running
kernel/sched/fair.c:1158:49: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:1194:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct sched_entity *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1194:33: sparse: expected struct sched_entity *se
kernel/sched/fair.c:1194:33: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:1250:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1250:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1250:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:13176:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:13176:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:13176:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8354:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8354:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:8354:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8558:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8558:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8558:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8757:39: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *donor @@ got struct task_struct [noderef] __rcu *donor @@
kernel/sched/fair.c:8757:39: sparse: expected struct task_struct *donor
kernel/sched/fair.c:8757:39: sparse: got struct task_struct [noderef] __rcu *donor
kernel/sched/fair.c:8784:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8784:37: sparse: expected struct task_struct *tsk
kernel/sched/fair.c:8784:37: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:9089:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *p_yielding @@ got struct task_struct [noderef] __rcu *donor @@
kernel/sched/fair.c:9089:20: sparse: expected struct task_struct *p_yielding
kernel/sched/fair.c:9089:20: sparse: got struct task_struct [noderef] __rcu *donor
>> kernel/sched/fair.c:9150:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *p_yielding @@ got struct task_struct [noderef] __rcu *donor @@
kernel/sched/fair.c:9150:44: sparse: expected struct task_struct *p_yielding
kernel/sched/fair.c:9150:44: sparse: got struct task_struct [noderef] __rcu *donor
kernel/sched/fair.c:9295:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *donor @@
kernel/sched/fair.c:9295:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:9295:38: sparse: got struct task_struct [noderef] __rcu *donor
kernel/sched/fair.c:10331:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:10331:40: sparse: expected struct sched_domain *child
kernel/sched/fair.c:10331:40: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:10959:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:10959:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:10959:22: sparse: struct task_struct *
kernel/sched/fair.c:12431:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12431:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12431:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12069:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12069:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:12069:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12544:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12544:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12544:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:6688:35: sparse: sparse: marked inline, but without a definition
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2647:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2647:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2647:9: sparse: struct task_struct *
kernel/sched/sched.h:2314:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2314:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2314:26: sparse: struct task_struct *
kernel/sched/sched.h:2303:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2303:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2303:25: sparse: struct task_struct *
kernel/sched/sched.h:2314:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2314:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2314:26: sparse: struct task_struct *
kernel/sched/sched.h:2314:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2314:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2314:26: sparse: struct task_struct *
kernel/sched/sched.h:2314:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2314:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2314:26: sparse: struct task_struct *
vim +9150 kernel/sched/fair.c
9134
9135 /*
9136 * Apply debounce for reverse yield pairs to reduce ping-pong effects.
9137 * When A yields to B, then B yields back to A within ~600us, downscale
9138 * the penalty to prevent oscillation.
9139 *
9140 * The 600us threshold is chosen to be:
9141 * - Long enough to catch rapid back-and-forth yields
9142 * - Short enough to not affect legitimate sequential yields
9143 *
9144 * Returns the (possibly reduced) penalty value.
9145 */
9146 static u64 yield_deboost_apply_debounce(struct rq *rq, struct task_struct *p_target,
9147 u64 penalty, u64 need, u64 gran)
9148 {
9149 u64 now = rq_clock(rq);
> 9150 struct task_struct *p_yielding = rq->donor;
9151 pid_t src_pid, dst_pid;
9152 pid_t last_src, last_dst;
9153 u64 last_ns;
9154
9155 if (!p_yielding || !p_target)
9156 return penalty;
9157
9158 src_pid = p_yielding->pid;
9159 dst_pid = p_target->pid;
9160 last_src = rq->yield_deboost_last_src_pid;
9161 last_dst = rq->yield_deboost_last_dst_pid;
9162 last_ns = rq->yield_deboost_last_pair_time_ns;
9163
9164 /* Detect reverse pair: previous was target->source */
9165 if (last_src == dst_pid && last_dst == src_pid &&
9166 (now - last_ns) <= 600 * NSEC_PER_USEC) {
9167 u64 alt = max(need, gran);
9168
9169 if (penalty > alt)
9170 penalty = alt;
9171 }
9172
9173 /* Update tracking state */
9174 rq->yield_deboost_last_src_pid = src_pid;
9175 rq->yield_deboost_last_dst_pid = dst_pid;
9176 rq->yield_deboost_last_pair_time_ns = now;
9177
9178 return penalty;
9179 }
9180
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-12-22 23:37 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-19 3:53 [PATCH v2 0/9] sched/kvm: Semantics-aware vCPU scheduling for oversubscribed KVM Wanpeng Li
2025-12-19 3:53 ` [PATCH v2 1/9] sched: Add vCPU debooster infrastructure Wanpeng Li
2025-12-19 3:53 ` [PATCH v2 2/9] sched/fair: Add rate-limiting and validation helpers Wanpeng Li
2025-12-22 21:12 ` kernel test robot
2026-01-04 4:09 ` Hillf Danton
2025-12-19 3:53 ` [PATCH v2 3/9] sched/fair: Add cgroup LCA finder for hierarchical yield Wanpeng Li
2025-12-19 3:53 ` [PATCH v2 4/9] sched/fair: Add penalty calculation and application logic Wanpeng Li
2025-12-22 23:36 ` kernel test robot [this message]
2025-12-19 3:53 ` [PATCH v2 5/9] sched/fair: Wire up yield deboost in yield_to_task_fair() Wanpeng Li
2025-12-22 7:06 ` kernel test robot
2025-12-22 9:31 ` kernel test robot
2025-12-19 3:53 ` [PATCH v2 6/9] KVM: x86: Add IPI tracking infrastructure Wanpeng Li
2025-12-19 3:53 ` [PATCH v2 7/9] KVM: x86/lapic: Integrate IPI tracking with interrupt delivery Wanpeng Li
2025-12-19 3:53 ` [PATCH v2 8/9] KVM: Implement IPI-aware directed yield candidate selection Wanpeng Li
2025-12-19 3:53 ` [PATCH v2 9/9] KVM: Relaxed boost as safety net Wanpeng Li
2026-01-04 2:40 ` [PATCH v2 0/9] sched/kvm: Semantics-aware vCPU scheduling for oversubscribed KVM Wanpeng Li
2026-01-05 6:26 ` K Prateek Nayak
2026-03-13 1:13 ` Sean Christopherson
2026-04-01 9:48 ` Wanpeng Li
2026-04-02 23:43 ` Sean Christopherson
2026-03-26 14:41 ` Christian Borntraeger
2026-04-01 9:34 ` Wanpeng Li
2026-04-08 9:35 ` Richie Buturla
2026-04-17 11:30 ` Richie Buturla
2026-05-13 12:52 ` Richie Buturla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202512230746.EpT2QbVU-lkp@intel.com \
--to=lkp@intel.com \
--cc=borntraeger@linux.ibm.com \
--cc=juri.lelli@redhat.com \
--cc=kernellwp@gmail.com \
--cc=kprateek.nayak@amd.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
--cc=wanpengli@tencent.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.