[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <SA1PR11MB67344F0957245A2BC8CA57B7A8CB9@SA1PR11MB6734.namprd11.prod.outlook.com>
Date: Sun, 22 Jan 2023 08:22:39 +0000
From: "Li, Xin3" <xin3.li@...el.com>
To: "H. Peter Anvin" <hpa@...or.com>,
"Hansen, Dave" <dave.hansen@...el.com>,
"tglx@...utronix.de" <tglx@...utronix.de>,
"mingo@...hat.com" <mingo@...hat.com>,
"bp@...en8.de" <bp@...en8.de>,
"peterz@...radead.org" <peterz@...radead.org>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>
CC: "x86@...nel.org" <x86@...nel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: the x86 sysret_rip test fails on the Intel FRED architecture
> On January 21, 2023 8:34:09 PM PST, Dave Hansen <dave.hansen@...el.com>
> wrote:
> >On 1/21/23 19:38, Li, Xin3 wrote:
> >>> However, it doesn't seem to make sense to do so to me. The current
> >>> behavior is much more of an artifact than desired behavior.
> >> We kind of have an agreement that %r11 = %flags after returning from the
> kernel.
> >>
> >> And the question is, is it what we want?
> >
> >Can the selftest just set r11=rflags before the syscall? The old
> >syscall entry path will set r11=rflags. The FRED path won't touch it.
> >Either case will pass an r11==rflags check.
>
> That's a good idea.
The problem is where/how to set %r11 = %rflags in the test code.
The check happens in the USER1 signal handler, and we could set %r11
just before calling raise(SIGUSR1). However, the C library implementation
of raise() modifies %r11, thus we can't preserve %r11 until the SYSCALL
instruction. And the test still fails.
Thanks!
XIn
Powered by blists - more mailing lists