* [zen-kernel-zen-kernel:5.9/muqss 1/1] kernel/sched/MuQSS.c:2471:11: sparse: sparse: incorrect type in assignment (different address spaces)
@ 2020-11-17 23:26 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-11-17 23:26 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 18173 bytes --]
Hi Steven,
First bad commit (maybe != root cause):
tree: https://github.com/zen-kernel/zen-kernel 5.9/muqss
head: bb2916b2fc9b8433563583c67044135c9cfad84e
commit: bb2916b2fc9b8433563583c67044135c9cfad84e [1/1] Revert "Fix cpufreq_cooling build."
config: alpha-randconfig-s031-20201117 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-107-gaf3512a6-dirty
# https://github.com/zen-kernel/zen-kernel/commit/bb2916b2fc9b8433563583c67044135c9cfad84e
git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.9/muqss
git checkout bb2916b2fc9b8433563583c67044135c9cfad84e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
>> kernel/sched/MuQSS.c:2471:11: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
>> kernel/sched/MuQSS.c:2471:11: sparse: expected struct task_struct *p
>> kernel/sched/MuQSS.c:2471:11: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/MuQSS.c:2518:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *parent @@ got struct task_struct [noderef] __rcu *parent @@
>> kernel/sched/MuQSS.c:2518:16: sparse: expected struct task_struct *parent
>> kernel/sched/MuQSS.c:2518:16: sparse: got struct task_struct [noderef] __rcu *parent
>> kernel/sched/MuQSS.c:2530:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *rq_curr @@ got struct task_struct [noderef] __rcu *curr @@
>> kernel/sched/MuQSS.c:2530:17: sparse: expected struct task_struct *rq_curr
kernel/sched/MuQSS.c:2530:17: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/MuQSS.c:3480:35: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/MuQSS.c:3480:35: sparse: expected struct task_struct *p
kernel/sched/MuQSS.c:3480:35: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/MuQSS.c:3712:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/MuQSS.c:3712:37: sparse: expected struct task_struct *p
kernel/sched/MuQSS.c:3712:37: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/MuQSS.c:4158:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *prev @@ got struct task_struct [noderef] __rcu *curr @@
>> kernel/sched/MuQSS.c:4158:14: sparse: expected struct task_struct *prev
kernel/sched/MuQSS.c:4158:14: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/MuQSS.c:4661:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/MuQSS.c:4661:17: sparse: struct task_struct *
>> kernel/sched/MuQSS.c:4661:17: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.c:4834:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.c:4834:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.c:4834:22: sparse: struct task_struct *
>> kernel/sched/MuQSS.c:5847:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *rq_p @@ got struct task_struct [noderef] __rcu *curr @@
>> kernel/sched/MuQSS.c:5847:14: sparse: expected struct task_struct *rq_p
kernel/sched/MuQSS.c:5847:14: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/MuQSS.c:5855:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/MuQSS.c:5855:34: sparse: expected struct task_struct *p
kernel/sched/MuQSS.c:5855:34: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/MuQSS.c:6117:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/MuQSS.c:6117:25: sparse: expected struct task_struct *p
kernel/sched/MuQSS.c:6117:25: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/MuQSS.c:1234:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/MuQSS.c:1234:24: sparse: expected struct task_struct *p
kernel/sched/MuQSS.c:1234:24: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/MuQSS.c:1225:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.c:1225:27: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.c:1225:27: sparse: struct task_struct *
kernel/sched/MuQSS.c:1225:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.c:1225:27: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.c:1225:27: sparse: struct task_struct *
kernel/sched/MuQSS.c:3398:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.c:3398:15: sparse: struct task_struct *
kernel/sched/MuQSS.c:3398:15: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.c: note: in included file:
kernel/sched/MuQSS.h:382:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct *
kernel/sched/MuQSS.h:382:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct *
kernel/sched/MuQSS.h:382:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct *
kernel/sched/MuQSS.h:382:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/MuQSS.h:382:25: sparse: struct task_struct *
vim +2471 kernel/sched/MuQSS.c
49e82d66c704858 Con Kolivas 2019-10-25 2452
49e82d66c704858 Con Kolivas 2019-10-25 2453 /*
49e82d66c704858 Con Kolivas 2019-10-25 2454 * High-resolution time_slice expiry.
49e82d66c704858 Con Kolivas 2019-10-25 2455 * Runs from hardirq context with interrupts disabled.
49e82d66c704858 Con Kolivas 2019-10-25 2456 */
49e82d66c704858 Con Kolivas 2019-10-25 2457 static enum hrtimer_restart hrexpiry(struct hrtimer *timer)
49e82d66c704858 Con Kolivas 2019-10-25 2458 {
49e82d66c704858 Con Kolivas 2019-10-25 2459 struct rq *rq = container_of(timer, struct rq, hrexpiry_timer);
49e82d66c704858 Con Kolivas 2019-10-25 2460 struct task_struct *p;
49e82d66c704858 Con Kolivas 2019-10-25 2461
49e82d66c704858 Con Kolivas 2019-10-25 2462 /* This can happen during CPU hotplug / resume */
49e82d66c704858 Con Kolivas 2019-10-25 2463 if (unlikely(cpu_of(rq) != smp_processor_id()))
49e82d66c704858 Con Kolivas 2019-10-25 2464 goto out;
49e82d66c704858 Con Kolivas 2019-10-25 2465
49e82d66c704858 Con Kolivas 2019-10-25 2466 /*
49e82d66c704858 Con Kolivas 2019-10-25 2467 * We're doing this without the runqueue lock but this should always
49e82d66c704858 Con Kolivas 2019-10-25 2468 * be run on the local CPU. Time slice should run out in __schedule
49e82d66c704858 Con Kolivas 2019-10-25 2469 * but we set it to zero here in case niffies is slightly less.
49e82d66c704858 Con Kolivas 2019-10-25 2470 */
49e82d66c704858 Con Kolivas 2019-10-25 @2471 p = rq->curr;
49e82d66c704858 Con Kolivas 2019-10-25 2472 p->time_slice = 0;
49e82d66c704858 Con Kolivas 2019-10-25 2473 __set_tsk_resched(p);
49e82d66c704858 Con Kolivas 2019-10-25 2474 out:
49e82d66c704858 Con Kolivas 2019-10-25 2475 return HRTIMER_NORESTART;
49e82d66c704858 Con Kolivas 2019-10-25 2476 }
49e82d66c704858 Con Kolivas 2019-10-25 2477
49e82d66c704858 Con Kolivas 2019-10-25 2478 /*
49e82d66c704858 Con Kolivas 2019-10-25 2479 * Called to set the hrexpiry timer state.
49e82d66c704858 Con Kolivas 2019-10-25 2480 *
49e82d66c704858 Con Kolivas 2019-10-25 2481 * called with irqs disabled from the local CPU only
49e82d66c704858 Con Kolivas 2019-10-25 2482 */
49e82d66c704858 Con Kolivas 2019-10-25 2483 static void hrexpiry_start(struct rq *rq, u64 delay)
49e82d66c704858 Con Kolivas 2019-10-25 2484 {
49e82d66c704858 Con Kolivas 2019-10-25 2485 if (!hrexpiry_enabled(rq))
49e82d66c704858 Con Kolivas 2019-10-25 2486 return;
49e82d66c704858 Con Kolivas 2019-10-25 2487
49e82d66c704858 Con Kolivas 2019-10-25 2488 hrtimer_start(&rq->hrexpiry_timer, ns_to_ktime(delay),
49e82d66c704858 Con Kolivas 2019-10-25 2489 HRTIMER_MODE_REL_PINNED);
49e82d66c704858 Con Kolivas 2019-10-25 2490 }
49e82d66c704858 Con Kolivas 2019-10-25 2491
49e82d66c704858 Con Kolivas 2019-10-25 2492 static void init_rq_hrexpiry(struct rq *rq)
49e82d66c704858 Con Kolivas 2019-10-25 2493 {
49e82d66c704858 Con Kolivas 2019-10-25 2494 hrtimer_init(&rq->hrexpiry_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
49e82d66c704858 Con Kolivas 2019-10-25 2495 rq->hrexpiry_timer.function = hrexpiry;
49e82d66c704858 Con Kolivas 2019-10-25 2496 }
49e82d66c704858 Con Kolivas 2019-10-25 2497
49e82d66c704858 Con Kolivas 2019-10-25 2498 static inline int rq_dither(struct rq *rq)
49e82d66c704858 Con Kolivas 2019-10-25 2499 {
49e82d66c704858 Con Kolivas 2019-10-25 2500 if (!hrexpiry_enabled(rq))
49e82d66c704858 Con Kolivas 2019-10-25 2501 return HALF_JIFFY_US;
49e82d66c704858 Con Kolivas 2019-10-25 2502 return 0;
49e82d66c704858 Con Kolivas 2019-10-25 2503 }
49e82d66c704858 Con Kolivas 2019-10-25 2504
49e82d66c704858 Con Kolivas 2019-10-25 2505 /*
49e82d66c704858 Con Kolivas 2019-10-25 2506 * wake_up_new_task - wake up a newly created task for the first time.
49e82d66c704858 Con Kolivas 2019-10-25 2507 *
49e82d66c704858 Con Kolivas 2019-10-25 2508 * This function will do some initial scheduler statistics housekeeping
49e82d66c704858 Con Kolivas 2019-10-25 2509 * that must be done for every newly created context, then puts the task
49e82d66c704858 Con Kolivas 2019-10-25 2510 * on the runqueue and wakes it.
49e82d66c704858 Con Kolivas 2019-10-25 2511 */
49e82d66c704858 Con Kolivas 2019-10-25 2512 void wake_up_new_task(struct task_struct *p)
49e82d66c704858 Con Kolivas 2019-10-25 2513 {
49e82d66c704858 Con Kolivas 2019-10-25 2514 struct task_struct *parent, *rq_curr;
49e82d66c704858 Con Kolivas 2019-10-25 2515 struct rq *rq, *new_rq;
49e82d66c704858 Con Kolivas 2019-10-25 2516 unsigned long flags;
49e82d66c704858 Con Kolivas 2019-10-25 2517
49e82d66c704858 Con Kolivas 2019-10-25 @2518 parent = p->parent;
49e82d66c704858 Con Kolivas 2019-10-25 2519
49e82d66c704858 Con Kolivas 2019-10-25 2520 raw_spin_lock_irqsave(&p->pi_lock, flags);
49e82d66c704858 Con Kolivas 2019-10-25 2521 p->state = TASK_RUNNING;
49e82d66c704858 Con Kolivas 2019-10-25 2522 /* Task_rq can't change yet on a new task */
49e82d66c704858 Con Kolivas 2019-10-25 2523 new_rq = rq = task_rq(p);
49e82d66c704858 Con Kolivas 2019-10-25 2524 if (unlikely(needs_other_cpu(p, task_cpu(p)))) {
49e82d66c704858 Con Kolivas 2019-10-25 2525 set_task_cpu(p, valid_task_cpu(p));
49e82d66c704858 Con Kolivas 2019-10-25 2526 new_rq = task_rq(p);
49e82d66c704858 Con Kolivas 2019-10-25 2527 }
49e82d66c704858 Con Kolivas 2019-10-25 2528
49e82d66c704858 Con Kolivas 2019-10-25 2529 double_rq_lock(rq, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 @2530 rq_curr = rq->curr;
49e82d66c704858 Con Kolivas 2019-10-25 2531
49e82d66c704858 Con Kolivas 2019-10-25 2532 /*
49e82d66c704858 Con Kolivas 2019-10-25 2533 * Make sure we do not leak PI boosting priority to the child.
49e82d66c704858 Con Kolivas 2019-10-25 2534 */
49e82d66c704858 Con Kolivas 2019-10-25 2535 p->prio = rq_curr->normal_prio;
49e82d66c704858 Con Kolivas 2019-10-25 2536
49e82d66c704858 Con Kolivas 2019-10-25 2537 trace_sched_wakeup_new(p);
49e82d66c704858 Con Kolivas 2019-10-25 2538
49e82d66c704858 Con Kolivas 2019-10-25 2539 /*
49e82d66c704858 Con Kolivas 2019-10-25 2540 * Share the timeslice between parent and child, thus the
49e82d66c704858 Con Kolivas 2019-10-25 2541 * total amount of pending timeslices in the system doesn't change,
49e82d66c704858 Con Kolivas 2019-10-25 2542 * resulting in more scheduling fairness. If it's negative, it won't
49e82d66c704858 Con Kolivas 2019-10-25 2543 * matter since that's the same as being 0. rq->rq_deadline is only
49e82d66c704858 Con Kolivas 2019-10-25 2544 * modified within schedule() so it is always equal to
49e82d66c704858 Con Kolivas 2019-10-25 2545 * current->deadline.
49e82d66c704858 Con Kolivas 2019-10-25 2546 */
49e82d66c704858 Con Kolivas 2019-10-25 2547 account_task_cpu(rq, rq_curr);
49e82d66c704858 Con Kolivas 2019-10-25 2548 p->last_ran = rq_curr->last_ran;
49e82d66c704858 Con Kolivas 2019-10-25 2549 if (likely(rq_curr->policy != SCHED_FIFO)) {
49e82d66c704858 Con Kolivas 2019-10-25 2550 rq_curr->time_slice /= 2;
49e82d66c704858 Con Kolivas 2019-10-25 2551 if (rq_curr->time_slice < RESCHED_US) {
49e82d66c704858 Con Kolivas 2019-10-25 2552 /*
49e82d66c704858 Con Kolivas 2019-10-25 2553 * Forking task has run out of timeslice. Reschedule it and
49e82d66c704858 Con Kolivas 2019-10-25 2554 * start its child with a new time slice and deadline. The
49e82d66c704858 Con Kolivas 2019-10-25 2555 * child will end up running first because its deadline will
49e82d66c704858 Con Kolivas 2019-10-25 2556 * be slightly earlier.
49e82d66c704858 Con Kolivas 2019-10-25 2557 */
49e82d66c704858 Con Kolivas 2019-10-25 2558 __set_tsk_resched(rq_curr);
49e82d66c704858 Con Kolivas 2019-10-25 2559 time_slice_expired(p, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 2560 if (suitable_idle_cpus(p))
49e82d66c704858 Con Kolivas 2019-10-25 2561 resched_best_idle(p, task_cpu(p));
49e82d66c704858 Con Kolivas 2019-10-25 2562 else if (unlikely(rq != new_rq))
49e82d66c704858 Con Kolivas 2019-10-25 2563 try_preempt(p, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 2564 } else {
49e82d66c704858 Con Kolivas 2019-10-25 2565 p->time_slice = rq_curr->time_slice;
49e82d66c704858 Con Kolivas 2019-10-25 2566 if (rq_curr == parent && rq == new_rq && !suitable_idle_cpus(p)) {
49e82d66c704858 Con Kolivas 2019-10-25 2567 /*
49e82d66c704858 Con Kolivas 2019-10-25 2568 * The VM isn't cloned, so we're in a good position to
49e82d66c704858 Con Kolivas 2019-10-25 2569 * do child-runs-first in anticipation of an exec. This
49e82d66c704858 Con Kolivas 2019-10-25 2570 * usually avoids a lot of COW overhead.
49e82d66c704858 Con Kolivas 2019-10-25 2571 */
49e82d66c704858 Con Kolivas 2019-10-25 2572 __set_tsk_resched(rq_curr);
49e82d66c704858 Con Kolivas 2019-10-25 2573 } else {
49e82d66c704858 Con Kolivas 2019-10-25 2574 /*
49e82d66c704858 Con Kolivas 2019-10-25 2575 * Adjust the hrexpiry since rq_curr will keep
49e82d66c704858 Con Kolivas 2019-10-25 2576 * running and its timeslice has been shortened.
49e82d66c704858 Con Kolivas 2019-10-25 2577 */
49e82d66c704858 Con Kolivas 2019-10-25 2578 hrexpiry_start(rq, US_TO_NS(rq_curr->time_slice));
49e82d66c704858 Con Kolivas 2019-10-25 2579 try_preempt(p, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 2580 }
49e82d66c704858 Con Kolivas 2019-10-25 2581 }
49e82d66c704858 Con Kolivas 2019-10-25 2582 } else {
49e82d66c704858 Con Kolivas 2019-10-25 2583 time_slice_expired(p, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 2584 try_preempt(p, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 2585 }
49e82d66c704858 Con Kolivas 2019-10-25 2586 activate_task(new_rq, p, 0);
49e82d66c704858 Con Kolivas 2019-10-25 2587 double_rq_unlock(rq, new_rq);
49e82d66c704858 Con Kolivas 2019-10-25 2588 raw_spin_unlock_irqrestore(&p->pi_lock, flags);
49e82d66c704858 Con Kolivas 2019-10-25 2589 }
49e82d66c704858 Con Kolivas 2019-10-25 2590
:::::: The code at line 2471 was first introduced by commit
:::::: 49e82d66c704858ba77947984535811593d6dacb MultiQueue Skiplist Scheduler v0.204
:::::: TO: Con Kolivas <kernel@kolivas.org>
:::::: CC: Con Kolivas <kernel@kolivas.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34528 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-11-17 23:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-17 23:26 [zen-kernel-zen-kernel:5.9/muqss 1/1] kernel/sched/MuQSS.c:2471:11: sparse: sparse: incorrect type in assignment (different address spaces) kernel test robot
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.