Re: [PATCH] kernel/sched/core: Print the time when the process entered the D state

From: kernel test robot
Date: Fri Jul 09 2021 - 03:48:39 EST

Hi zhouchuangao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/sched/core]
[also build test ERROR on tip/master linux/master linus/master v5.13 next-20210709]
[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]

base: 031e3bd8986fffe31e1ddbf5264cccfe30c9abd7
config: riscv-randconfig-r022-20210709 (attached as .config)
compiler: clang version 13.0.0 ( 8d69635ed9ecf36fd0ca85906bfde17949671cbe)
reproduce (this is a W=1 build):
wget -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
git remote add linux-review
git fetch --no-tags linux-review zhouchuangao/kernel-sched-core-Print-the-time-when-the-process-entered-the-D-state/20210709-130636
git checkout 287f10f679a0c30c4ac57abb8a36e698619554d5
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=riscv SHELL=/bin/bash kernel/sched/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

kernel/sched/core.c:3201:6: warning: no previous prototype for function 'sched_set_stop_task' [-Wmissing-prototypes]
void sched_set_stop_task(int cpu, struct task_struct *stop)
kernel/sched/core.c:3201:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void sched_set_stop_task(int cpu, struct task_struct *stop)
kernel/sched/core.c:6049:35: warning: no previous prototype for function 'schedule_user' [-Wmissing-prototypes]
asmlinkage __visible void __sched schedule_user(void)
kernel/sched/core.c:6049:22: note: declare 'static' if the function is not intended to be used outside of this translation unit
asmlinkage __visible void __sched schedule_user(void)
>> kernel/sched/core.c:8158:17: error: no member named 'last_arrival' in 'struct sched_info'
~~~~~~~~~~~~~ ^
include/linux/printk.h:385:26: note: expanded from macro 'pr_cont'
printk(KERN_CONT fmt, ##__VA_ARGS__)
2 warnings and 1 error generated.

vim +8158 kernel/sched/core.c

8135 void sched_show_task(struct task_struct *p)
8136 {
8137 unsigned long free = 0;
8138 int ppid;
8140 if (!try_get_task_stack(p))
8141 return;
8143 pr_info("task:%-15.15s state:%c", p->comm, task_state_to_char(p));
8145 if (task_is_running(p))
8146 pr_cont(" running task ");
8148 free = stack_not_used(p);
8149 #endif
8150 ppid = 0;
8151 rcu_read_lock();
8152 if (pid_alive(p))
8153 ppid = task_pid_nr(rcu_dereference(p->real_parent));
8154 rcu_read_unlock();
8155 pr_cont(" stack:%5lu pid:%5d ppid:%6d flags:0x%08lx sched:%llu\n",
8156 free, task_pid_nr(p), ppid,
8157 (unsigned long)task_thread_info(p)->flags,
> 8158 p->sched_info.last_arrival);
8160 print_worker_info(KERN_INFO, p);
8161 print_stop_info(KERN_INFO, p);
8162 show_stack(p, NULL, KERN_INFO);
8163 put_task_stack(p);
8164 }
8165 EXPORT_SYMBOL_GPL(sched_show_task);

0-DAY CI Kernel Test Service, Intel Corporation

Attachment: .config.gz
Description: application/gzip