From: "Maciej W. Rozycki" <macro@linux-mips.org>
To: Rik van Riel <riel@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
Borislav Petkov <bp@alien8.de>, Ingo Molnar <mingo@kernel.org>,
Oleg Nesterov <oleg@redhat.com>, X86 ML <x86@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC PATCH] x86, fpu: Use eagerfpu by default on all CPUs
Date: Mon, 23 Feb 2015 22:27:51 +0000 (GMT) [thread overview]
Message-ID: <alpine.LFD.2.11.1502232152530.17311@eddie.linux-mips.org> (raw)
In-Reply-To: <54EB99E8.2060500@redhat.com>
On Mon, 23 Feb 2015, Rik van Riel wrote:
> > I meant something else -- a slow FPU instruction can retire after a
> > task has been switched where the FP context has been left intact,
> > i.e. in the lazy FP context switching case, where only the MMU
> > context and GPRs have been replaced.
>
> I don't think that's true, because changing the MMU context and GPRs
> also includes changing the instruction pointer, and changing over the
> execution to the new task.
That does not matter. The instructions in question only operate on x87
internal registers: the data stack registers, specifically ST(0) and
possibly also ST(1), and consequently the Tag Word register, and the
Status Word register. No CPU resource such as the MMU or GPRs need to be
referred for an x87 instruction to complete. Any unmasked IEEE 754 FPU
exception recorded on the way is only signalled at the next x87
instruction.
> After a context switch, the instructions from the old task are no
> longer in the pipeline.
I'd say it's implementation-specific. As I mentioned the i486 aborted
any transcendental x87 instruction in progress upon taking an exception or
interrupt. That was a model like you refer to, but as I also mentioned it
had its shortcomings.
Any newer implementation I'd expect to, and Pentium class processors
certainly did, continue executing these instructions in parallel in the
FPU pipeline regardless of what the CPU does until completed. If WAIT or
a waiting x87 instruction was encountered while a previous x87 instruction
was still in progress, the CPU pipeline would stall until the earlier x87
instruction has completed. The FPU has no way to determine the CPU
context has been switched and neither it recognises execution privilege
levels.
I can't speak of SIMD instructions, I don't know offhand. OTOH AFAIK
they don't suffer from latencies so long as some x87 instructions that may
be in the range of 400 clock cycles.
Maciej
next prev parent reply other threads:[~2015-02-23 22:27 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-20 18:58 Andy Lutomirski
2015-02-20 19:05 ` Borislav Petkov
2015-02-21 9:31 ` Ingo Molnar
2015-02-21 16:38 ` Borislav Petkov
2015-02-21 17:29 ` Borislav Petkov
2015-02-21 18:39 ` Ingo Molnar
2015-02-21 19:15 ` Borislav Petkov
2015-02-21 19:23 ` Ingo Molnar
2015-02-21 21:36 ` Borislav Petkov
2015-02-22 8:18 ` Ingo Molnar
2015-02-22 8:22 ` Ingo Molnar
2015-02-22 10:48 ` Borislav Petkov
2015-02-22 12:50 ` Borislav Petkov
2015-02-22 12:57 ` Ingo Molnar
2015-02-22 13:21 ` Borislav Petkov
2015-02-22 0:34 ` Maciej W. Rozycki
2015-02-22 2:18 ` Andy Lutomirski
2015-02-22 11:06 ` Borislav Petkov
2015-02-23 1:45 ` Rik van Riel
2015-02-23 5:22 ` Andy Lutomirski
2015-02-23 12:51 ` Rik van Riel
2015-02-23 15:03 ` Borislav Petkov
2015-02-23 15:51 ` Rik van Riel
2015-02-23 18:06 ` Borislav Petkov
2015-02-23 21:17 ` Maciej W. Rozycki
2015-02-23 21:21 ` Rik van Riel
2015-02-23 22:14 ` Linus Torvalds
2015-02-24 0:56 ` Maciej W. Rozycki
2015-02-24 0:59 ` Andy Lutomirski
2015-02-23 22:27 ` Maciej W. Rozycki [this message]
2015-02-23 23:44 ` Andy Lutomirski
2015-02-24 2:14 ` Maciej W. Rozycki
2015-02-24 2:31 ` Andy Lutomirski
2015-02-24 14:43 ` Rik van Riel
2015-02-21 18:34 ` Ingo Molnar
2015-02-23 14:59 ` Oleg Nesterov
2015-02-23 15:11 ` Borislav Petkov
2015-02-23 15:53 ` Rik van Riel
2015-02-23 18:40 ` Oleg Nesterov
2015-02-24 19:15 ` Denys Vlasenko
2015-02-25 0:07 ` Andy Lutomirski
2015-02-25 10:37 ` Borislav Petkov
2015-02-25 10:50 ` Ingo Molnar
2015-02-25 10:45 ` Ingo Molnar
2015-02-25 17:12 ` Some results (was: Re: [RFC PATCH] x86, fpu: Use eagerfpu by default on all CPUs) Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LFD.2.11.1502232152530.17311@eddie.linux-mips.org \
--to=macro@linux-mips.org \
--cc=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=riel@redhat.com \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®