Kernel regression testing for shipping with Fedora 32 release

Kernel regression testing for shipping with Fedora 32 release

kernel_linux

Test Environment

Fedora 31 updated install

Here in this article we will show how we can help Fedora by carrying out Kernel new version regression testing on your personal platform and share the results. This will help Fedora to fix any bugs and gather details on the compatibility of the kernel with various platforms on which they are getting tested.

Procedure –

Step1: Download the kernel 5.6 version rpm’s from the below URL for testing

URL – https://koji.fedoraproject.org/koji/buildinfo?buildID=1491815

Download kernel 5.6 rpms

-rwxr-xr-x. 1 admin admin     21064 Apr 12 18:10 kernel-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin     21172 Apr 12 18:13 kernel-debug-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin    137288 Apr 12 18:14 kernel-debug-modules-internal-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin   2147984 Apr 12 18:15 kernel-debug-modules-extra-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin    126224 Apr 12 18:15 kernel-modules-internal-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin   2064628 Apr 12 18:16 kernel-modules-extra-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  13584288 Apr 12 18:18 kernel-devel-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  35707088 Apr 12 18:23 kernel-debug-core-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  33745648 Apr 12 18:24 kernel-core-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  30057208 Apr 12 18:24 kernel-modules-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  71133232 Apr 12 18:32 kernel-debuginfo-common-x86_64-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  13679964 Apr 12 18:58 kernel-debug-devel-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin  30824180 Apr 12 18:58 kernel-debug-modules-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin 618067200 Apr 12 19:09 kernel-debuginfo-5.6.3-300.fc31.x86_64.rpm
-rwxr-xr-x. 1 admin admin 633400636 Apr 12 19:13 kernel-debug-debuginfo-5.6.3-300.fc31.x86_64.rpm

Step2: Install the above downloaded RPM’s

[admin@fedtest Downloads]$ sudo dnf install kernel-5.6.3-300.fc31.x86_64.rpm kernel-debug-5.6.3-300.fc31.x86_64.rpm kernel-debug-modules-internal-5.6.3-300.fc31.x86_64.rpm kernel-debug-modules-extra-5.6.3-300.fc31.x86_64.rpm kernel-modules-internal-5.6.3-300.fc31.x86_64.rpm kernel-modules-extra-5.6.3-300.fc31.x86_64.rpm  kernel-devel-5.6.3-300.fc31.x86_64.rpm kernel-debug-core-5.6.3-300.fc31.x86_64.rpm  kernel-core-5.6.3-300.fc31.x86_64.rpm  kernel-modules-5.6.3-300.fc31.x86_64.rpm  kernel-debuginfo-common-x86_64-5.6.3-300.fc31.x86_64.rpm kernel-debug-devel-5.6.3-300.fc31.x86_64.rpm  kernel-debug-modules-5.6.3-300.fc31.x86_64.rpm kernel-debuginfo-5.6.3-300.fc31.x86_64.rpm  kernel-debug-debuginfo-5.6.3-300.fc31.x86_64.rpm
...
Installed:
  kernel-5.6.3-300.fc31.x86_64                     kernel-core-5.6.3-300.fc31.x86_64                          kernel-debug-5.6.3-300.fc31.x86_64                      
  kernel-debug-core-5.6.3-300.fc31.x86_64          kernel-debug-debuginfo-5.6.3-300.fc31.x86_64               kernel-debug-devel-5.6.3-300.fc31.x86_64                
  kernel-debug-modules-5.6.3-300.fc31.x86_64       kernel-debug-modules-extra-5.6.3-300.fc31.x86_64           kernel-debug-modules-internal-5.6.3-300.fc31.x86_64     
  kernel-debuginfo-5.6.3-300.fc31.x86_64           kernel-debuginfo-common-x86_64-5.6.3-300.fc31.x86_64       kernel-devel-5.6.3-300.fc31.x86_64                      
  kernel-modules-5.6.3-300.fc31.x86_64             kernel-modules-extra-5.6.3-300.fc31.x86_64                 kernel-modules-internal-5.6.3-300.fc31.x86_64           

Complete!

Step3: Reboot the system with Kernel 5.6 option selected

Step4: Install the required packages to run the test cases

[admin@fedtest Downloads]$ sudo dnf install gcc git python3-fedora

Step5: Clone the kernel test repository

[admin@fedtest kerneltest]$ git clone https://pagure.io/kernel-tests.git
[admin@fedtest kernel-tests]$ ls -ltr
total 80
-rw-rw-r--.  1 admin admin 18472 Apr 12 19:43 LICENSE
-rw-rw-r--.  1 admin admin  1221 Apr 12 19:43 config.example
drwxrwxr-x.  2 admin admin  4096 Apr 12 19:43 include
-rwxrwxr-x.  1 admin admin  1445 Apr 12 19:43 fedora_submit.py
-rw-rw-r--.  1 admin admin  5629 Apr 12 19:43 documentation.txt
drwxrwxr-x.  3 admin admin  4096 Apr 12 19:43 destructive
drwxrwxr-x. 15 admin admin  4096 Apr 12 19:43 default
drwxrwxr-x.  3 admin admin  4096 Apr 12 19:43 performance
drwxrwxr-x.  5 admin admin  4096 Apr 12 19:43 minimal
drwxrwxr-x.  5 admin admin  4096 Apr 12 19:43 stress
drwxrwxr-x.  3 admin admin  4096 Apr 12 19:43 secureboot
-rwxrwxr-x.  1 admin admin  4661 Apr 12 19:43 runtests.sh
drwxrwxr-x.  2 admin admin  4096 Apr 12 19:43 utils
drwxrwxr-x.  3 admin admin  4096 Apr 12 19:43 thirdparty

Step6: You need make, libtirpc,libtirpc-devel and policycoreutils-python-utils in order to run the tests, if it is not already installed

[admin@fedtest kernel-tests]$ sudo dnf install make libtirpc libtirpc-devel policycoreutils-python-utils

Step7: Allow testsuite to make their heap memory executable

[admin@fedtest kernel-tests]$ sudo semanage boolean -m --on selinuxuser_execheap

Step8: Configure automatic submission of the test results and your FAS username

[admin@fedtest kernel-tests]$ cp config.example .config
[admin@fedtest kernel-tests]$ vi .config

Look for lines with “submit=” and “username=” and set these settings to “submit=authenticated” and “username=”.

Step9: Run the test case

[admin@fedtest kernel-tests]$ sudo ./runtests.sh
Test suite called with default
./default/insert_leap_second                                     PASS   
./default/selinux-dac-controls                                   PASS   
./default/paxtest                                                SKIP   
./default/mq-memory-corruption                                   PASS   
./default/posix_timers                                           PASS   
./default/libhugetlbfs                                           SKIP   
./default/sysfs-perms                                            PASS   
./default/memfd                                                  PASS   
./default/stack-randomness                                       PASS   
./default/timer-overhead                                         PASS   
./default/cachedrop                                              PASS   
./default/modsign                                                PASS   

Test suite complete                                              PASS   

Your log file is being submitted...
FAS password:
Upload successful!
The following information is not submitted with your log;
it is for informational purposes only.
Vulnerability status:
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline, STIBP: disabled, RSB filling
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected

Step10: Run the performance test suite

[admin@fedtest kernel-tests]$ sudo ./runtests.sh -t performance
Test suite called with performance
lib_timing.c: In function ‘touch’:
lib_timing.c:1626:9: warning: type defaults to ‘int’ in declaration of ‘psize’ [-Wimplicit-int]
 1626 |  static psize;
      |         ^~~~~
...
Calculating context switch overhead
Tue 14 Apr 2020 09:57:52 AM IST
./performance/lmbench3                                           PASS   

Test suite complete                                              PASS   

Your log file is being submitted...
FAS password:
Upload successful!
The following information is not submitted with your log;
it is for informational purposes only.
Vulnerability status:
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Full generic retpoline, STIBP: disabled, RSB filling
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected

Step11: Turn SELinux boolean selinuxuser_execheap back to default state

[admin@fedtest kernel-tests]$ sudo semanage boolean -m --off selinuxuser_execheap

For more details and quries follow this link – https://fedoraproject.org/wiki/QA:Testcase_kernel_regression.

Please get the new kernel regresssion tested and submit the result to get it even more better.

Thank you for reading..