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

Roger Pau Monné royger at FreeBSD.org
Thu Mar 12 03:46:11 UTC 2015


Hello,

On Tue, Mar 10, 2015 at 12:30 AM, John Baldwin <jhb at freebsd.org> wrote:
> On Saturday, March 07, 2015 12:55:06 AM Sergey Kandaurov wrote:
>> 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.
>
> Yes, that file is rotted a bit.  I think it is for a mode of Xen that Xen
> doesn't intend to support in the future and that it will be dropped from our
> tree altogether at some point?  Roger probably has a better feel on this?

Yes, the i386 PV port has completely bitrotted since a long time ago,
and AFAIK nobody has interest in fixing it so I plan to remove it
soon.

Roger.


More information about the svn-src-all mailing list