Messages in this thread | | | From | Ammar Faizi <> | Subject | [RFC PATCH v1 0/2] selftests/x86: sysret_rip update for FRED system | Date | Tue, 24 Jan 2023 07:26:23 +0700 |
| |
From: Ammar Faizi <ammarfaizi2@gnuweeb.org>
On Mon, 23 Jan 2023 15:58:12 -0800, "H. Peter Anvin" wrote: > On 1/23/23 15:43, Ammar Faizi wrote: > > > > Align them to spot differences: > > > > 0x200893 = 0b1000000000100010010011 > > 0x200a93 = 0b1000000000101010010011 > > ^ > > > > Or just xor them to find the differences: > > > > (gdb) p/x 0x200893 ^ 0x200a93 > > $3 = 0x200 > > > > ** Checks my Intel SDM cheat sheets. ** > > > > Then, I was like "Oh, that's (1 << 9) a.k.a. IF. Of course we can't > > change rflags[IF] from userspace!!!". > > > > In short, we can't use 0x200893 as the rflags_sentinel value because it > > clears the interrupt flag. > > > > Right, my mistake.
I changed it to 0x200a93. The test passed on my machine. But I don't have a FRED system to test the special case.
Didn't manage to apply the feedback from Andrew about the way to handle redzone properly, though.
Something like this...
----------
This is just an RFC patchset.
Xin Li reported sysret_rip test fails at:
assert(ctx->uc_mcontext.gregs[REG_EFL] == ctx->uc_mcontext.gregs[REG_R11]);
in a FRED system. Handle the FRED system scenario too. There are two patches in this series. Comments welcome...
Note: Only tested for 'syscall' sets %rcx=%rip and %r11=%rflags case. I don't have a FRED system to test it.
How to test this:
$ make -C tools/testing/selftests/x86 $ tools/testing/selftests/x86/sysret_rip_64
Link: https://lore.kernel.org/lkml/5d4ad3e3-034f-c7da-d141-9c001c2343af@intel.com Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org> ---
Ammar Faizi (2): selftests/x86: sysret_rip: Handle syscall in a FRED system selftests/x86: sysret_rip: Add more syscall tests with respect to `%rcx` and `%r11`
tools/testing/selftests/x86/sysret_rip.c | 105 ++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-)
base-commit: e12ad468c22065a2826b2fc4c11d2113a7975301 -- Ammar Faizi
| |