Re: [PATCH 1/3] Add TX sending hardware timestamp.

From: Geva, Erez
Date: Thu Dec 10 2020 - 07:42:45 EST



On 10/12/2020 04:11, kernel test robot wrote:
> Hi Erez,
>
> Thank you for the patch! Yet something to improve:
>
Thanks for the robot,
as we rarely use clang for kernel. It is very helpful.

> [auto build test ERROR on b65054597872ce3aefbc6a666385eabdf9e288da]
>
> url: https://github.com/0day-ci/linux/commits/Erez-Geva/Add-sending-TX-hardware-timestamp-for-TC-ETF-Qdisc/20201210-000521
I can not find this commit

> base: b65054597872ce3aefbc6a666385eabdf9e288da
> config: mips-randconfig-r026-20201209 (attached as .config)
> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 1968804ac726e7674d5de22bc2204b45857da344)
However the clang in
https://download.01.org/0day-ci/cross-package/clang-latest/clang.tar.xz is version 11

> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
Your make cross script tries to download the clang every time.
Please separate the download (which is ~400 MB and 2 GB after open) from the compilation.

Please use "wget" follow your own instructions in this email.

> chmod +x ~/bin/make.cross
> # install mips cross compiling tool for clang build
> # apt-get install binutils-mips-linux-gnu
> # https://github.com/0day-ci/linux/commit/8a8f634bc74db16dc551cfcf3b63c1183f98eaac
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Erez-Geva/Add-sending-TX-hardware-timestamp-for-TC-ETF-Qdisc/20201210-000521
This branch is absent

> git checkout 8a8f634bc74db16dc551cfcf3b63c1183f98eaac
This commit as well

> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
>
I use Debian 10.7.
I usually compile with GCC. I have not see any errors.

When I use clang 11 from download.01.org I get a crash right away.
Please add a proper instructions how to use clang on Debian or provide
a Docker container with updated clang for testing.

> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
>>> net/core/sock.c:2383:7: error: use of undeclared identifier 'SCM_HW_TXTIME'; did you mean 'SOCK_HW_TXTIME'?
> case SCM_HW_TXTIME:
> ^~~~~~~~~~~~~
> SOCK_HW_TXTIME
> include/net/sock.h:862:2: note: 'SOCK_HW_TXTIME' declared here
> SOCK_HW_TXTIME,
> ^
> 1 error generated.
>
> vim +2383 net/core/sock.c
>
> 2351
> 2352 int __sock_cmsg_send(struct sock *sk, struct msghdr *msg, struct cmsghdr *cmsg,
> 2353 struct sockcm_cookie *sockc)
> 2354 {
> 2355 u32 tsflags;
> 2356
> 2357 switch (cmsg->cmsg_type) {
> 2358 case SO_MARK:
> 2359 if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN))
> 2360 return -EPERM;
> 2361 if (cmsg->cmsg_len != CMSG_LEN(sizeof(u32)))
> 2362 return -EINVAL;
> 2363 sockc->mark = *(u32 *)CMSG_DATA(cmsg);
> 2364 break;
> 2365 case SO_TIMESTAMPING_OLD:
> 2366 if (cmsg->cmsg_len != CMSG_LEN(sizeof(u32)))
> 2367 return -EINVAL;
> 2368
> 2369 tsflags = *(u32 *)CMSG_DATA(cmsg);
> 2370 if (tsflags & ~SOF_TIMESTAMPING_TX_RECORD_MASK)
> 2371 return -EINVAL;
> 2372
> 2373 sockc->tsflags &= ~SOF_TIMESTAMPING_TX_RECORD_MASK;
> 2374 sockc->tsflags |= tsflags;
> 2375 break;
> 2376 case SCM_TXTIME:
> 2377 if (!sock_flag(sk, SOCK_TXTIME))
> 2378 return -EINVAL;
> 2379 if (cmsg->cmsg_len != CMSG_LEN(sizeof(u64)))
> 2380 return -EINVAL;
> 2381 sockc->transmit_time = get_unaligned((u64 *)CMSG_DATA(cmsg));
> 2382 break;
>> 2383 case SCM_HW_TXTIME:
> 2384 if (!sock_flag(sk, SOCK_HW_TXTIME))
> 2385 return -EINVAL;
> 2386 if (cmsg->cmsg_len != CMSG_LEN(sizeof(u64)))
> 2387 return -EINVAL;
> 2388 sockc->transmit_hw_time = get_unaligned((u64 *)CMSG_DATA(cmsg));
> 2389 break;
> 2390 /* SCM_RIGHTS and SCM_CREDENTIALS are semantically in SOL_UNIX. */
> 2391 case SCM_RIGHTS:
> 2392 case SCM_CREDENTIALS:
> 2393 break;
> 2394 default:
> 2395 return -EINVAL;
> 2396 }
> 2397 return 0;
> 2398 }
> 2399 EXPORT_SYMBOL(__sock_cmsg_send);
> 2400
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
>

Please improve the robot, so we can comply and properly support clang compilation.

Thanks
Erez