Re: [patch 09/10] F00F bug fixup for i386 - use immediate values

Alexey Dobriyan
2007-07-04T20:44:05Z

On Tue, Jul 03, 2007 at 12:40:55PM -0400, Mathieu Desnoyers wrote:
> Use the faster immediate values for F00F bug handling in do_page_fault.

> --- linux-2.6-lttng.orig/arch/i386/mm/fault.c
> +++ linux-2.6-lttng/arch/i386/mm/fault.c
> @@ -25,6 +25,7 @@
> #include <linux/kprobes.h>
> #include <linux/uaccess.h>
> #include <linux/kdebug.h>
> +#include <linux/immediate.h>
>
> #include <asm/system.h>
> #include <asm/desc.h>
> @@ -477,7 +478,7 @@
> /*
> * Pentium F0 0F C7 C8 bug workaround.
> */
> - if (boot_cpu_data.f00f_bug) {
> + if (unlikely(immediate(f00f_bug_fix))) {

As I understand it, this never triggers in normal valid and invalid
pagefaults, because even invalid userspace pagefaults take branch
slightly earlier where catch SIGSEGV. Nobody cares about performance if
you reach this branch.