All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.