Thread (47 messages) 47 messages, 11 authors, 2018-04-03

RE: [RFC PATCH 0/3] kernel: add support for 256-bit IO access

flat view

From: David Laight <hidden>
Date: 2018-03-19 15:18:24
Also in: lkml

From: Thomas Gleixner
Sent: 19 March 2018 15:05

On Mon, 19 Mar 2018, David Laight wrote:
quoted
From: Rahul Lakkireddy
In principle it ought to be possible to get access to one or two
(eg) AVX registers by saving them to stack and telling the fpu
save code where you've put them.
No. We have functions for this and we are not adding new ad hoc magic.
I was thinking that a real API might do this...
Useful also for code that needs AVX-like registers to do things like CRCs.
quoted
OTOH, for x86, if the code always runs in process context (eg from a
system call) then, since the ABI defines them all as caller-saved
the AVX(2) registers, it is only necessary to ensure that the current
FPU registers belong to the current process once.
The registers can be set to zero by an 'invalidate' instruction on
system call entry (hope this is done) and after use.
Why would a system call touch the FPU registers? The kernel normally does
not use FPU instructions and the code which explicitely does has to take
care of save/restore. It would be performance madness to fiddle with the
FPU stuff unconditionally if nothing uses it.
If system call entry reset the AVX registers then any FP save/restore
would be faster because the AVX registers wouldn't need to be saved
(and the cpu won't save them).
I believe the instruction to reset the AVX registers is fast.
The AVX registers only ever need saving if the process enters the
kernel through an interrupt.

	David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help