<div dir="ltr"><div class="gmail_default" style="font-size:small">Hello there,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">LTP/umip_basic_test get failed on KVM UMIP system(kernel-v5.2-rc4.x86_64). The test is only trying to do</div><div class="gmail_default" style="font-size:small">     asm volatile("smsw %0\n" : "=m" (val));</div><div class="gmail_default" style="font-size:small">and expect to get SIGSEGV in this SMSW operation, but it exits with 0 unexpectedly.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">====================</div><div class="gmail_default" style="font-size:small"># grep CONFIG_X86_INTEL_UMIP /boot/config-5.2.0-0.rc4.x86_64 <br>CONFIG_X86_INTEL_UMIP=y<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"># lscpu |grep umip<br>Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat umip pku ospke md_clear<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"># ./umip_basic_test </div><span class="gmail_default" style="font-size:small">...</span><br>umip_basic_test.c:68: INFO: TEST smsw, smsw result save at [0x7ffda00dca70]<br>umip_basic_test.c:118: FAIL: Didn't receive SIGSEGV, child exited with exited with 0<br><div><br></div><div><div class="gmail_default" style="font-size:small">You also could try this simplify reproducer:</div><div class="gmail_default" style="font-size:small">----------------</div>#define _GNU_SOURCE<br>#include <unistd.h><br>#include <stdio.h><br>#include <stdlib.h><br>#include <sys/wait.h><br><br>int main (void)<br>{<br>        int status;<br>        pid_t pid;<br><br>        pid = fork();<br>        if (pid == 0) {<br>                unsigned long val;<br>                printf("TEST smsw, smsw result save at [%p]\n", &val);<br>                asm volatile("smsw %0\n" : "=m" (val));<br>                exit(0);<br>        }<br><br>        waitpid(pid, &status, 0);<br><br>        if (WIFSIGNALED(status) && WTERMSIG(status) == SIGSEGV) {<br>                printf("PASS: Got SIGSEGV\n");<br>                return 0;<br>        }<br><br>        printf("FAIL: Didn't receive SIGSEGV, child exited with %d\n", WEXITSTATUS(status));<br>        return -1;<br>}<br><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>