Re: [PATCH] x86/bhi: BHI mitigation can trigger warning in #DB handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 5/23/24 20:27, Alexandre Chartre wrote:


On 5/23/24 19:53, Andrew Cooper wrote:
On 23/05/2024 6:03 pm, Alexandre Chartre wrote:

On 5/23/24 17:36, Dave Hansen wrote:
On 5/23/24 07:52, Alexandre Chartre wrote:
Should we wrap up this gem and put it with the other entry selftests?

It looks like tools/testing/selftests/x86/single_step_syscall.c tests
sysenter with TF set but it doesn't check if the kernel issues any
warning.

Does it actually trip the warning though? I'm a bit surprised that
nobody reported it if so.

single_step_syscall does trigger the warning:

$ ./single_step_syscall
[RUN]    Set TF and check nop
[OK]    Survived with TF set and 26 traps
[RUN]    Set TF and check syscall-less opportunistic sysret
[OK]    Survived with TF set and 30 traps
[RUN]    Set TF and check a fast syscall
[OK]    Survived with TF set and 40 traps
[RUN]    Fast syscall with TF cleared
[OK]    Nothing unexpected happened
[RUN]    Set TF and check SYSENTER
     Got SIGSEGV with RIP=ed7fe579, TF=256
[RUN]    Fast syscall with TF cleared
[OK]    Nothing unexpected happened

:-/

What about the exit code?

I find the absence of a [FAIL] concerning...


$ ./single_step_syscall
[RUN]    Set TF and check nop
[OK]    Survived with TF set and 26 traps
[RUN]    Set TF and check syscall-less opportunistic sysret
[OK]    Survived with TF set and 30 traps
[RUN]    Set TF and check a fast syscall
[OK]    Survived with TF set and 40 traps
[RUN]    Fast syscall with TF cleared
[OK]    Nothing unexpected happened
[RUN]    Set TF and check SYSENTER
     Got SIGSEGV with RIP=bb44b579, TF=256
[RUN]    Fast syscall with TF cleared
[OK]    Nothing unexpected happened

$ echo $?
0

The program runs as expected (but it doesn't expect much than a SIGSEGV).
It triggers a warning from the kernel but it doesn't check if a warning
was produced.


Actually it checks that TF isn't cleared after the sysenter, but that's all.

alex.






[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux