Re: [PATCH v0.9 3/6] sched/umcg: implement UMCG syscalls

From: Peter Oskolkov
Date: Mon Nov 22 2021 - 15:17:20 EST


On Mon, Nov 22, 2021 at 2:02 AM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> Hi Peter,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on cb0e52b7748737b2cf6481fdd9b920ce7e1ebbdf]
>
> url: https://github.com/0day-ci/linux/commits/Peter-Oskolkov/sched-mm-x86-uaccess-implement-User-Managed-Concurrency-Groups/20211122-052209
> base: cb0e52b7748737b2cf6481fdd9b920ce7e1ebbdf
> config: x86_64-randconfig-c007-20211121 (attached as .config)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://github.com/0day-ci/linux/commit/e455791cacec2b140558a717d2b8b07f5561a251
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Peter-Oskolkov/sched-mm-x86-uaccess-implement-User-Managed-Concurrency-Groups/20211122-052209
> git checkout e455791cacec2b140558a717d2b8b07f5561a251
> # save the attached .config to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> In file included from <built-in>:1:
> >> ./usr/include/linux/umcg.h:80:2: error: unknown type name 'u64'
> u64 state_ts; /* r/w */

I figured it out - lkp manages to compile uapi so that it sees
__u32/__u64 but not u32/u64. I'll make the change.

As __u64 is actually a different type from u64 (long unsigned int vs
long long unsigned int), I'll need to make corresponding changes in
other files to avoid warnings of "comparing different types" sort.

Why does the kernel have both __u64 and u64, and have them defined as
different types? (This is not really a question, just a complaint).

> ^
> >> ./usr/include/linux/umcg.h:91:2: error: unknown type name 'u32'
> u32 next_tid; /* r */
> ^
> ./usr/include/linux/umcg.h:93:2: error: unknown type name 'u32'
> u32 flags; /* Reserved; must be zero. */
> ^
> ./usr/include/linux/umcg.h:101:2: error: unknown type name 'u64'
> u64 idle_workers_ptr; /* r/w */
> ^
> ./usr/include/linux/umcg.h:107:2: error: unknown type name 'u64'
> u64 idle_server_tid_ptr; /* r */
> ^
> 5 errors generated.
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx