On 2026-03-22 23:06, Lai, Yi wrote:
>
> Thanks for the context and links, Xin.
>
> My patch is a simple, focused fix to unblock current regression in
> 'sysret_rip'. The goal is just to ensure it doesn't falsely fail on FRED
> systems by skipping the IDT assertion (R11==RFLAGS).
>
> Checking Ammar's patch series, it indeed looks like a more comprehensive
> solution that not only handles the difference but also adds specific
> test coverage for consistency. Is there a specific reason it didn't
> land in the mainline kernel? If you think that is the preferred
> direction, I would be happy to contribute to that effort
> collaboratively.
>
So for what it's worth, I have used this sequence to probe for FRED, but it is
basically probing for the effect you are truing to test for here:
#include <inttypes.h>
#include <stdbool.h>
#include <linux/unistd.h>
bool fred_is_on(void)
{
const uint64_t sentinel1 = 0xfeedfacedeadbeef;
const uint64_t sentinel2 = 0xbeeffeeb1ef00d1e;
register uint64_t rax asm("rax") = __NR_getppid;
register uint64_t rcx asm("rcx") = sentinel1;
register uint64_t r11 asm("r11") = sentinel2;
asm volatile("syscall" : "+r" (rax), "+r" (rcx), "+r" (r11));
return !((rcx ^ sentinel1) | (r11 ^ sentinel2));
}
-hpa