[PATCH] Mention Intel Atom in Kconfig.cpu - Kernel

This is a discussion on [PATCH] Mention Intel Atom in Kconfig.cpu - Kernel ; Am I right in thinking that CONFIG_MCORE2 is the correct choice for an Intel Atom? (It seems to work for me, so far.) If this is true, since there are quite a lot of these chips in circulation now and ...

+ Reply to Thread
Results 1 to 11 of 11

Thread: [PATCH] Mention Intel Atom in Kconfig.cpu

  1. [PATCH] Mention Intel Atom in Kconfig.cpu

    Am I right in thinking that CONFIG_MCORE2 is the correct choice for an
    Intel Atom? (It seems to work for me, so far.) If this is true, since
    there are quite a lot of these chips in circulation now and the choice
    is not obvious, I think it would be helpful to add something along the
    following lines to arch/x86/Kconfig.cpu.

    Signed-off-by: Phil Endecott
    ---
    diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
    index b225219..7df0801 100644
    --- a/arch/x86/Kconfig.cpu
    +++ b/arch/x86/Kconfig.cpu
    @@ -263,11 +263,12 @@ config MPSC
    in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a
    newer one.

    config MCORE2
    - bool "Core 2/newer Xeon"
    + bool "Core 2/newer Xeon/Atom"
    help
    - Select this for Intel Core 2 and newer Core 2 Xeons (Xeon
    51xx and 53xx)
    - CPUs. You can distinguish newer from older Xeons by the CPU family
    - in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo)
    + Select this for Intel Core 2, newer Core 2 Xeon (Xeon 51xx
    and 53xx)
    + and Intel Atom CPUs. You can distinguish newer from older
    Xeons by
    + the CPU family in /proc/cpuinfo. Newer ones have 6 and older
    ones 15
    + (not a typo).

    config GENERIC_CPU
    bool "Generic-x86-64"




    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. [PATCH] Mention Intel Atom in Kconfig.cpu (less garbled this time)

    [Appoligies for the garbled first attempt at posting this. Blame the
    original author for the long lines!?]

    Am I right in thinking that CONFIG_MCORE2 is the correct choice for an
    Intel Atom? (It seems to work for me, so far.) If this is true, since
    there are quite a lot of these chips in circulation now and the choice
    is not obvious, I think it would be helpful to add something along the
    following lines to arch/x86/Kconfig.cpu.

    Signed-off-by: Phil Endecott
    ---
    diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
    index b225219..7df0801 100644
    --- a/arch/x86/Kconfig.cpu
    +++ b/arch/x86/Kconfig.cpu
    @@ -263,11 +263,12 @@ config MPSC
    in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.

    config MCORE2
    - bool "Core 2/newer Xeon"
    + bool "Core 2/newer Xeon/Atom"
    help
    - Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx)
    - CPUs. You can distinguish newer from older Xeons by the CPU family
    - in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo)
    + Select this for Intel Core 2, newer Core 2 Xeon (Xeon 51xx and 53xx)
    + and Intel Atom CPUs. You can distinguish newer from older Xeons by
    + the CPU family in /proc/cpuinfo. Newer ones have 6 and older ones 15
    + (not a typo).

    config GENERIC_CPU
    bool "Generic-x86-64"





    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    "Phil Endecott" writes:

    > Am I right in thinking that CONFIG_MCORE2 is the correct choice for an
    > Intel Atom?


    No, Atom is completely different from a Core2.

    Right now 586 or 686 is a reasonable choice.

    -Andi
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    On Mon, 13 Oct 2008 14:28:06 +0200
    Andi Kleen wrote:

    > "Phil Endecott" writes:
    >
    > > Am I right in thinking that CONFIG_MCORE2 is the correct choice for
    > > an Intel Atom?

    >
    > No, Atom is completely different from a Core2.
    >
    > Right now 586 or 686 is a reasonable choice.


    actually 586 is completely wrong.

    Core2 instruction set with tune=generic is still the best to set.

    --
    Arjan van de Ven Intel Open Source Technology Centre
    For development, discussion and tips for power savings,
    visit http://www.lesswatts.org
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    On Mon, Oct 13, 2008 at 09:18:48AM -0400, Arjan van de Ven wrote:
    > On Mon, 13 Oct 2008 14:28:06 +0200
    > Andi Kleen wrote:
    >
    > > "Phil Endecott" writes:
    > >
    > > > Am I right in thinking that CONFIG_MCORE2 is the correct choice for
    > > > an Intel Atom?

    > >
    > > No, Atom is completely different from a Core2.
    > >
    > > Right now 586 or 686 is a reasonable choice.

    >
    > actually 586 is completely wrong.


    It is nearest in scheduling at least. You'll lose CMOV, but that's
    not a big loss.

    > Core2 instruction set with tune=generic is still the best to set.


    Not sure that is true. These option are mostly for the compiler.

    -Andi

    --
    ak@linux.intel.com
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    On Mon, 13 Oct 2008 15:30:51 +0200
    Andi Kleen wrote:
    >
    > > Core2 instruction set with tune=generic is still the best to set.

    >
    > Not sure that is true. These option are mostly for the compiler.


    exactly, and our benchmarks show that tune=generic is best right now
    for Atom.
    (586 scheduling sounds nice, but the pipelines are rather different.
    And the benchmarks don't lie.. ;-)


    --
    Arjan van de Ven Intel Open Source Technology Centre
    For development, discussion and tips for power savings,
    visit http://www.lesswatts.org
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  7. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    On Mon, Oct 13, 2008 at 09:30:14AM -0400, Arjan van de Ven wrote:
    > On Mon, 13 Oct 2008 15:30:51 +0200
    > Andi Kleen wrote:
    > >
    > > > Core2 instruction set with tune=generic is still the best to set.

    > >
    > > Not sure that is true. These option are mostly for the compiler.

    >
    > exactly, and our benchmarks show that tune=generic is best right now


    So it doesn't matter as long as you set X86_GENERIC (and
    CONFIG_CC_OPTIMIZE_FOR_SIZE)

    It would probably make sense to add a setting for those.

    -Andi

    --
    ak@linux.intel.com
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  8. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    On Mon, Oct 13, 2008 at 09:30:14AM -0400, Arjan van de Ven wrote:
    > On Mon, 13 Oct 2008 15:30:51 +0200
    > Andi Kleen wrote:
    > >
    > > > Core2 instruction set with tune=generic is still the best to set.

    > >
    > > Not sure that is true. These option are mostly for the compiler.

    >
    > exactly, and our benchmarks show that tune=generic is best right now
    > for Atom.
    > (586 scheduling sounds nice, but the pipelines are rather different.
    > And the benchmarks don't lie.. ;-)


    That sounds a bit dangerous since tune=generic is documented to change
    the semantics between gcc versions to better fit more recent CPUs
    (there's even a small difference between gcc 4.2 and gcc 4.3):

    As new processors are deployed in the marketplace, the
    behavior of this option will change. Therefore, if you
    upgrade to a newer version of GCC, the code generated option
    will change to reflect the processors that were most common
    when that version of GCC was released.


    cu
    Adrian

    --

    "Is there not promise of rain?" Ling Tan asked suddenly out
    of the darkness. There had been need of rain for many days.
    "Only a promise," Lao Er said.
    Pearl S. Buck - Dragon Seed

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  9. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    On Mon, 13 Oct 2008 17:02:30 +0300
    Adrian Bunk wrote:

    > On Mon, Oct 13, 2008 at 09:30:14AM -0400, Arjan van de Ven wrote:
    > > On Mon, 13 Oct 2008 15:30:51 +0200
    > > Andi Kleen wrote:
    > > >
    > > > > Core2 instruction set with tune=generic is still the best to
    > > > > set.
    > > >
    > > > Not sure that is true. These option are mostly for the compiler.

    > >
    > > exactly, and our benchmarks show that tune=generic is best right now
    > > for Atom.
    > > (586 scheduling sounds nice, but the pipelines are rather different.
    > > And the benchmarks don't lie.. ;-)

    >
    > That sounds a bit dangerous since tune=generic is documented to
    > change the semantics between gcc versions to better fit more recent
    > CPUs (there's even a small difference between gcc 4.2 and gcc 4.3):
    >


    reality is that tune=generic avoids the things that are "really bad"
    for a wide generation of cpus; the world of x86 is such that there
    really are many common things that are good for the vast majority of
    the cpus out there (or at least neutral).

    Future versions of GCC might have a specific ATOM model. Until they do,
    tune=generic is the right thing based on tests over a few gcc versions.
    Yes it's a bit fluid, but no gcc isn't going to suddenly go do stupid
    things for currently mass-sold cpus.


    --
    Arjan van de Ven Intel Open Source Technology Centre
    For development, discussion and tips for power savings,
    visit http://www.lesswatts.org
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  10. Re: [PATCH] Mention Intel Atom in Kconfig.cpu (less garbled this time)

    On Mon, 13 Oct 2008 13:13:57 +0100, "Phil Endecott" wrote:

    > [Appoligies for the garbled first attempt at posting this. Blame the
    > original author for the long lines!?]
    >
    > Am I right in thinking that CONFIG_MCORE2 is the correct choice for an
    > Intel Atom? (It seems to work for me, so far.) If this is true, since
    > there are quite a lot of these chips in circulation now and the choice
    > is not obvious, I think it would be helpful to add something along the
    > following lines to arch/x86/Kconfig.cpu.
    >
    > Signed-off-by: Phil Endecott
    > ---
    > diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
    > index b225219..7df0801 100644
    > --- a/arch/x86/Kconfig.cpu
    > +++ b/arch/x86/Kconfig.cpu
    > @@ -263,11 +263,12 @@ config MPSC
    > in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
    >
    > config MCORE2
    > - bool "Core 2/newer Xeon"
    > + bool "Core 2/newer Xeon/Atom"
    > help
    > - Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx)
    > - CPUs. You can distinguish newer from older Xeons by the CPU family
    > - in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo)
    > + Select this for Intel Core 2, newer Core 2 Xeon (Xeon 51xx and 53xx)
    > + and Intel Atom CPUs. You can distinguish newer from older Xeons by
    > + the CPU family in /proc/cpuinfo. Newer ones have 6 and older ones 15
    > + (not a typo).
    >
    > config GENERIC_CPU
    > bool "Generic-x86-64"
    >


    I think Atom is worth a separate setting. It can share some flags with other
    processors but has some very special features. And perhaps (I would like it)
    distros begin to ship special 'netbook' kernels without all the extras you
    don't need (raid, scsi adapters, etc...), with some tunes (iosched=nopp for
    SSDs...), and memory scrapping settings (NR_CPUS=2 or 4...).

    Some questions:
    - How worthy is to reduce NR_CPUS from 64 (standard in many distros) to 2 or 4 ?
    - Atom is an in-order processor. Intel included some flag in icc to build code
    with in-order scheduling, which will be the best settings in gcc ?
    From what I have found, apart from other things, -match=prescott is the best
    for Atom, wrt processor features. Perhaps the best settings are
    -march=prescott -mtune=generic
    until gcc people implement an in-order scheduler.
    - Anyways, what does all this matter if Makefile_32.cpu reads:

    cflags-$(CONFIG_MPENTIUMII) += -march=i686 $(call tune,pentium2)
    cflags-$(CONFIG_MPENTIUMIII) += -march=i686 $(call tune,pentium3)
    cflags-$(CONFIG_MPENTIUMM) += -march=i686 $(call tune,pentium3)
    cflags-$(CONFIG_MPENTIUM4) += -march=i686 $(call tune,pentium4)
    cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)

    ie, no march=xxxx ? Why don't we use something like

    cflags-$(CONFIG_MCORE2) += $(call cc-option,-march=core2,-march=i686) $(call tune,core2)

    TIA

    --
    J.A. Magallon \ Software is like sex:
    \ It's better when it's free
    Mandriva Linux release 2009.0 (Cooker) for i586
    Linux 2.6.25-jam18 (gcc 4.3.1 20080626 (GCC) #1 SMP
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  11. Re: [PATCH] Mention Intel Atom in Kconfig.cpu

    Arjan van de Ven wrotes:
    > On Mon, 13 Oct 2008 17:02:30 +0300
    > Adrian Bunk kernel.org> wrote:
    >
    > > On Mon, Oct 13, 2008 at 09:30:14AM -0400, Arjan van de Ven wrote:
    > > > On Mon, 13 Oct 2008 15:30:51 +0200
    > > > Andi Kleen firstfloor.org> wrote:
    > > > >
    > > > > > Core2 instruction set with tune=generic is still the best to
    > > > > > set.
    > > > >
    > > > > Not sure that is true. These option are mostly for the compiler.
    > > >
    > > > exactly, and our benchmarks show that tune=generic is best right now
    > > > for Atom.
    > > > (586 scheduling sounds nice, but the pipelines are rather different.
    > > > And the benchmarks don't lie..

    > >
    > > That sounds a bit dangerous since tune=generic is documented to
    > > change the semantics between gcc versions to better fit more recent
    > > CPUs (there's even a small difference between gcc 4.2 and gcc 4.3):
    > >

    >
    > reality is that tune=generic avoids the things that are "really bad"
    > for a wide generation of cpus; the world of x86 is such that there
    > really are many common things that are good for the vast majority of
    > the cpus out there (or at least neutral).
    >
    > Future versions of GCC might have a specific ATOM model. Until they do,
    > tune=generic is the right thing based on tests over a few gcc versions.
    > Yes it's a bit fluid, but no gcc isn't going to suddenly go do stupid
    > things for currently mass-sold cpus.


    Well, if the Intel experts can't even agree, what hope do I have of
    getting it right :-( I chose Core2 because I read somewhere that Atom
    was "feature compatible" with it, but of course that doesn't say
    anything about the optimal optimisations. I trust that someone will
    update Kconfig.cpu with their idea of the right choice for Atom eventually.

    (Maybe there should be a way to auto-suggest the right setting for a
    native build based on /proc/cpuinfo? I think the gcc build process can
    do something like that.)

    Cheers, Phil.




    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread