Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Mar 2015 11:30:41 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Sergey Kandaurov <pluknet@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Roger Pau =?ISO-8859-1?Q?Monn=E9?= <royger@freebsd.org>
Subject:   Re: svn commit: r279699 - in head/sys: amd64/amd64 i386/i386
Message-ID:  <3050157.0anzMatu84@ralph.baldwin.cx>
In-Reply-To: <CAE-mSOKhuTm-cRdHOvQ4E8EE5jjfae1QMEnjh1KZQgtQRGtb4g@mail.gmail.com>
References:  <201503062034.t26KYSP2063973@svn.freebsd.org> <CAE-mSOKhuTm-cRdHOvQ4E8EE5jjfae1QMEnjh1KZQgtQRGtb4g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday, March 07, 2015 12:55:06 AM Sergey Kandaurov wrote:
> On 6 March 2015 at 23:34, John Baldwin <jhb@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?

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3050157.0anzMatu84>