svn commit: r279699 - in head/sys: amd64/amd64 i386/i386

Sergey Kandaurov pluknet at freebsd.org
Fri Mar 6 21:55:08 UTC 2015


On 6 March 2015 at 23:34, John Baldwin <jhb at freebsd.org> wrote:
> Author: jhb
> Date: Fri Mar  6 20:34:28 2015
> New Revision: 279699
> URL: https://svnweb.freebsd.org/changeset/base/279699
>
> Log:
>   Only schedule interrupts on a single hyperthread of a modern Intel CPU core
>   by default.  Previously we used a single hyperthread on Pentium4-era
>   cores but used both hyperthreads on more recent CPUs.
>
>   MFC after:    2 weeks
>
> Modified:
>   head/sys/amd64/amd64/mp_machdep.c
>   head/sys/i386/i386/mp_machdep.c
>
> Modified: head/sys/amd64/amd64/mp_machdep.c
> ==============================================================================
> --- head/sys/amd64/amd64/mp_machdep.c   Fri Mar  6 16:43:54 2015        (r279698)
> +++ head/sys/amd64/amd64/mp_machdep.c   Fri Mar  6 20:34:28 2015        (r279699)
> @@ -828,8 +828,8 @@ set_interrupt_apic_ids(void)
>                         continue;
>
>                 /* Don't let hyperthreads service interrupts. */
> -               if (hyperthreading_cpus > 1 &&
> -                   apic_id % hyperthreading_cpus != 0)
> +               if (cpu_logical > 1 &&
> +                   apic_id % cpu_logical != 0)
>                         continue;
>
>                 intr_add_cpu(i);
>
> Modified: head/sys/i386/i386/mp_machdep.c
> ==============================================================================
> --- head/sys/i386/i386/mp_machdep.c     Fri Mar  6 16:43:54 2015        (r279698)
> +++ head/sys/i386/i386/mp_machdep.c     Fri Mar  6 20:34:28 2015        (r279699)
> @@ -842,8 +842,8 @@ set_interrupt_apic_ids(void)
>                         continue;
>
>                 /* Don't let hyperthreads service interrupts. */
> -               if (hyperthreading_cpus > 1 &&
> -                   apic_id % hyperthreading_cpus != 0)
> +               if (cpu_logical > 1 &&
> +                   apic_id % cpu_logical != 0)
>                         continue;
>
>                 intr_add_cpu(i);
>

There are another two similar cases at sys/i386/xen/mp_machdep.c
Both look like a no-op: static global never gets written data,
the condition is never satisfied.
I guess these variables can be safely reduced for clarity there:
hyperthreading_cpus, hyperthreading_cpus_mask under i386/xen.

-- 
wbr,
pluknet


More information about the svn-src-all mailing list