Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH v5] x86: use builtins to read eflags | Date | Fri, 18 Mar 2022 22:43:13 +0000 |
| |
From: Linus Torvalds > Sent: 18 March 2022 18:19 > > On Fri, Mar 18, 2022 at 10:59 AM Andy Lutomirski <luto@kernel.org> wrote: > > > > I generally agree. In this particular case, though, I will keep using > > the builtin in tools/testing/selftests/x86/helpers.h unless we actually > > hit breakage. This is because this is *user* code, it is compiled with > > the redzone enabled, and the asm code to do the right thing when the > > redzone is enabled is too hairy for me to want to deal with it. > > Yeah, redzoning is a problem for "pushf". > > Or rather, it's not the redzoning itself, but the fact that the > compiler might use the word under the stack for random other things, > and the pushf will then corrupt some local variable storage. > > I think it would be lovely to solve that in inline asm itself some way > - by marking the stack pointer clobbered or something.
Something that generates: mov %rax,-8(%rsp) pushf xchg %rax,0(%rsp) add %rsp,8 should work with or without a redzone. Will be a bit slower :-(
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |