openembedded / meta-openembedded

MIT License
416 stars 719 forks source link

kernel-selftest: ptp: testptp is broken in latest kernel version #878

Open cshilwant opened 1 month ago

cshilwant commented 1 month ago

The latest kernels could not build ptp correctly via openembedded. For reference, with 6.12-rc1 I observe the following,

| make: Entering directory '/mnt/chirag-sdk/yocto-build_am62lxx-evm/build/arago-tmp-default-glibc/work/am62lxx_evm-oe-linux/kernel-selftest/1.0/kernel-selftest-1.0/tools/testing/selftests/rtc' inux/kernel-selftest/1.0/kernel-selftest-1.0/tools/testing/selftests/ptp/testptp | testptp.c: In function 'main': | testptp.c:613:31: error: 'PTP_MASK_CLEAR_ALL' undeclared (first use in this function) | 613 | if (ioctl(fd, PTP_MASK_CLEAR_ALL)) { | | ^~~~~~~~~~~~~~~~~~ | testptp.c:613:31: note: each undeclared identifier is reported only once for each function it appears in | testptp.c:615:38: error: 'PTP_MASK_EN_SINGLE' undeclared (first use in this function) | 615 | } else if (ioctl(fd, PTP_MASK_EN_SINGLE, (unsigned int *)&channel)) { | | ^~~~~~~~~~~~~~~~~~ | make: *** [../lib.mk:222: /mnt/chirag-sdk/yocto-build_am62lxx-evm/build/arago-tmp-default-glibc/work/am62lxx_evm-oe-linux/kernel-selftest/1.0/kernel-selftest-1.0/tools/testing/selftests/ptp/testptp] Error 1

I see both the identifiers are actually defined under https://github.com/torvalds/linux/blob/v6.12-rc1/include/uapi/linux/ptp_clock.h#L246

It appears there’s a procedural problem with the kernel builds since issues like this aren’t being detected during their standard testing.

This change was specifically introduced in v6.7 - https://github.com/torvalds/linux/commit/c5a445b1e9347b14752b01f1a304bd7a2f260acc

So, I believe testptp is broken in meta-openembedded since then.

@kraj Any inputs for what should be the way going forward as ptp is a part of default testlist - https://github.com/openembedded/meta-openembedded/blob/master/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb#L53 ?

kraj commented 1 month ago

@cshilwant we can disable but I think it would be rather good to fix the upstream problem. You are right about breakages in selftest and perhaps lack of CI for selftest combination