Bug 3690 - [Anck 4.19 aarch64][nightly]kernel_selftests中rtc.rtctest用例执行失败
Summary: [Anck 4.19 aarch64][nightly]kernel_selftests中rtc.rtctest用例执行失败
Status: NEW
Alias: None
Product: Antest
Classification: Infrastructures
Component: 测试用例 (show other bugs) 测试用例
Version: unspecified
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: shuancue
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-01-10 17:40 UTC by meil_wei
Modified: 2023-02-21 14:49 UTC (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description meil_wei alibaba_cloud_group 2023-01-10 17:40:50 UTC
Description of problem:
kernel_selftests中rtc.rtctest用例执行失败

执行日志
TAP version 13
Running tests in rtc
========================================
selftests: rtc: rtctest
rtctest.c:49:rtc.date_read:Current RTC date/time is 09/01/2023 13:58:53.
rtctest.c:60:rtc.uie_read:skip update IRQs not supported.
rtctest.c:85:rtc.uie_select:skip update IRQs not supported.
rtctest.c:137:rtc.alarm_alm_set:Alarm time now set to 13:58:56.
rtctest.c:141:rtc.alarm_alm_set:Expected -1 (18446744073709551615) != rc (18446744073709551615)
[==========] Running 7 tests from 2 test cases.
[ RUN ] rtc.date_read
[ OK ] rtc.date_read
[ RUN ] rtc.uie_read
[ OK ] rtc.uie_read
[ RUN ] rtc.uie_select
[ OK ] rtc.uie_select
[ RUN ] rtc.alarm_alm_set
rtc.alarm_alm_set: Test terminated by assertion
rtctest.c:185:rtc.alarm_wkalm_set:skip alarms are not supported.
rtctest.c:239:rtc.alarm_alm_set_minute:Alarm time now set to 13:59:00.
rtctest.c:243:rtc.alarm_alm_set_minute:Expected -1 (18446744073709551615) != rc (18446744073709551615)
[==========] Running 7 tests from 2 test cases.
[ RUN ] rtc.date_read
[ OK ] rtc.date_read
[ RUN ] rtc.uie_read
[ OK ] rtc.uie_read
[ RUN ] rtc.uie_select
[ OK ] rtc.uie_select
[ RUN ] rtc.alarm_alm_set
[ FAIL ] rtc.alarm_alm_set
[ RUN ] rtc.alarm_wkalm_set
[ OK ] rtc.alarm_wkalm_set
[ RUN ] rtc.alarm_alm_set_minute
rtc.alarm_alm_set_minute: Test terminated by assertion
rtctest.c:287:rtc.alarm_wkalm_set_minute:skip alarms are not supported.
[==========] Running 7 tests from 2 test cases.
[ RUN ] rtc.date_read
[ OK ] rtc.date_read
[ RUN ] rtc.uie_read
[ OK ] rtc.uie_read
[ RUN ] rtc.uie_select
[ OK ] rtc.uie_select
[ RUN ] rtc.alarm_alm_set
[ FAIL ] rtc.alarm_alm_set
[ RUN ] rtc.alarm_wkalm_set
[ OK ] rtc.alarm_wkalm_set
[ RUN ] rtc.alarm_alm_set_minute
[ FAIL ] rtc.alarm_alm_set_minute
[ RUN ] rtc.alarm_wkalm_set_minute
[ OK ] rtc.alarm_wkalm_set_minute
[==========] 5 / 7 tests passed.
[ FAILED ]
not ok 1..1 selftests: rtc: rtctest [FAIL]


Steps to Reproduce:
下载当前内核 对应的kernel*src.rpm,
rpm -ivh kernel*.src.rpm
which yum-builddep || yum install -y yum-utils
which rpmbuild || yum install -y rpm-build
yum-builddep -y $rpmbuild_dir/SPECS/kernel.spec
rpmbuild -bp $rpmbuild_dir/SPECS/kernel.spec

cd /root/rpmbuild/BUILD/kernel*/linux*/tools/testing/selftests/rtc
./rtctest

Actual results:
用例执行通过

Expected results:
用例执行失败

Additional info:
# uname -r
4.19.91-253.git.e680634.an7.aarch64

# cat /etc/os-release
NAME="Anolis OS"
VERSION="7.9"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="7.9"
PRETTY_NAME="Anolis OS 7.9"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"
BUG_REPORT_URL="https://bugs.openanolis.cn/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

# free -g
              total        used        free      shared  buff/cache   available
Mem:             14           0          13           0           0          14
Swap:             0           0           0

# lscpu
Architecture:          aarch64
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Model:                 1
BogoMIPS:              50.00
NUMA node0 CPU(s):     0-3
Flags:                 fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
Comment 1 meil_wei alibaba_cloud_group 2023-01-10 17:42:21 UTC
内部alinux3 arm上有同样问题,已知问题
结论:看了下目前ARM上的EFI RTC不支持alarm_irq_enable()接口,导致在设置alarm时,不能通过使能中断并通过中断通知,所以set alarm测试会失败。
而x86的cmos RTC是支持alarm_irq_enable()接口,所以alarm set测试会通过。
目前看EFI RTC的设计是符合预期的,并且目前没有场景需要设置RTC alarm来唤醒系统的。