Announcement

Collapse
No announcement yet.

Intel OTC support discrimination on Intel Atom N2600 / N2800 CPUs?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Intel OTC support discrimination on Intel Atom N2600 / N2800 CPUs?

    Intel Atom N2600 / N2800 CPUs are still categorically considered Intel CPUs even if the on-die GPU is not designed in-house (Imagination Technologies PowerVR SGX).
    Code:
    $ cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 54
    model name      : Intel(R) Atom(TM) CPU N2800   @ 1.86GHz
    stepping        : 1
    microcode       : 0x10c
    cpu MHz         : 1862.000
    cache size      : 512 KB
    physical id     : 0
    siblings        : 4
    core id         : 0
    cpu cores       : 2
    apicid          : 0
    initial apicid  : 0
    fdiv_bug        : no
    f00f_bug        : no
    coma_bug        : no
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 10
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm arat dtherm
    bogomips        : 3723.94
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 36 bits physical, 32 bits virtual
    power management:
    So can somebody tell me why in the following cases-in-point, it seems that support for these specific Atom CPUs are (intentionally left?) missing from source code?


    CASE 1: Missing C-states

    The generic ACPI processor driver (acpi_cpuidle) from Linux-3.9.8 does not expose C-states for this CPU to the OS, nor does intel_idle v0.4:
    Code:
    $ dmesg | grep idle
    intel_idle: does not run on family 6 model 54
    cpuidle: using governor ladder
    cpuidle: using governor menu
    Powertop-2.1 shows empty idle states.

    Here's an excerpt from drivers/idle/intel_idle.c where it shows the CPUs it runs on:
    Code:
    static const struct x86_cpu_id intel_idle_ids[] = {
    	ICPU(0x1a, idle_cpu_nehalem),
    	ICPU(0x1e, idle_cpu_nehalem),
    	ICPU(0x1f, idle_cpu_nehalem),
    	ICPU(0x25, idle_cpu_nehalem),
    	ICPU(0x2c, idle_cpu_nehalem),
    	ICPU(0x2e, idle_cpu_nehalem),
    	ICPU(0x1c, idle_cpu_atom),
    	ICPU(0x26, idle_cpu_lincroft),
    	ICPU(0x2f, idle_cpu_nehalem),
    	ICPU(0x2a, idle_cpu_snb),
    	ICPU(0x2d, idle_cpu_snb),
    	ICPU(0x3a, idle_cpu_ivb),
    	ICPU(0x3e, idle_cpu_ivb),
    	ICPU(0x3c, idle_cpu_hsw),
    	ICPU(0x3f, idle_cpu_hsw),
    	ICPU(0x45, idle_cpu_hsw),
    	ICPU(0x46, idle_cpu_hsw),
    	{}
    };
    I have a family 6 model 28 (0x1c from the code above) Intel Atom N280 CPU and its C-states are exposed by intel_idle. So why is a family 6 model 54 (0x36) Intel Atom N2800 missing support from intel_idle? Intel Atom Processor D2000 and N2000 series datasheet [1] shows that this processor supports C-states:
    Support CPU states: C0 and C1 (for D2000 series); C0-C4, C1E-C4E, Deep Power
    Down Technology (code named C6)(for N2000 series)
    [1] https://www-ssl.intel.com/content/ww...datasheet.html

    Patching intel_idle.c like so:
    Code:
    --- linux-3.9/drivers/idle/intel_idle.c.orig	2013-06-28 09:52:26.270075222 +0800
    +++ linux-3.9/drivers/idle/intel_idle.c	2013-06-28 09:52:09.478076218 +0800
    @@ -456,6 +456,7 @@
     	ICPU(0x2c, idle_cpu_nehalem),
     	ICPU(0x2e, idle_cpu_nehalem),
     	ICPU(0x1c, idle_cpu_atom),
    +	ICPU(0x36, idle_cpu_atom),
     	ICPU(0x26, idle_cpu_lincroft),
     	ICPU(0x2f, idle_cpu_nehalem),
     	ICPU(0x2a, idle_cpu_snb),
    then recompiling the kernel, intel_idle now reports:
    Code:
    $ dmesg | grep idle
    intel_idle: MWAIT substates: 0x3020220
    intel_idle: v0.4 model 0x36
    intel_idle: lapic_timer_reliable_states 0xffffffff
    cpuidle: using governor ladder
    cpuidle: using governor menu
    And Powertop-2.1 now reports idle states (POLL, C1E-ATM, C2-ATM, C4-ATM, C6-ATM).


    CASE 2: Intel PowerClamp does not support this CPU

    Code:
    # modprobe intel_powerclamp
    FATAL: Error inserting intel_powerclamp (lib/modules/3.9.8/kernel/drivers/thermal/intel_powerclamp.ko): No such device
    And I found out why
    Code:
    # modinfo intel_powerclamp
    filename:       /lib/modules/3.9.8/kernel/drivers/thermal/intel_powerclamp.ko
    description:    Package Level C-state Idle Injection for Intel CPUs
    author:         Jacob Pan <[email protected]>
    author:         Arjan van de Ven <[email protected]>
    license:        GPL
    srcversion:     4FEB61B99F664447271957F
    alias:          x86cpu:vendor:0000:family:0006:model:003A:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:002F:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:002E:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:002D:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:002C:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:002A:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:0026:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:0025:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:001F:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:001E:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:001C:feature:*
    alias:          x86cpu:vendor:0000:family:0006:model:001A:feature:*
    depends:        
    intree:         Y
    vermagic:       3.9.8 SMP preempt mod_unload modversions ATOM 
    parm:           duration:forced idle time for each attempt in msec.
    parm:           window_size:sliding window in number of clamping cycles
    	powerclamp controls idle ratio within this window. larger
    	window size results in slower response time but more smooth
    	clamping results. default to 2.
    From the module's aliases above we can see that it supports my family 6 model 28 (001C) Intel Atom N280 CPU, but is missing support for my family 6 model 54 (0036) Intel Atom N2800.

    Considering the above presentations I have made, I am under the impression that these particular Atom CPUs, being unfortunately the odd-man out among Intel's great FOSS-supported CPU line-up, are being singled-out from support by Intel OTC.

    It's already a rough road getting decent graphics performance from these Atoms, but seeing some CPU-specific, not to mention the important C-state, support missing for these models I am more inclined to think that support is cursed for this product, at least from a GNU/Linux point-of-view. Intel really dropped the ball on this one.

    Can somebody from Intel start adding CPU support where it's missing for these particular Atom CPUs, please?

  • #2
    i think i remember they clearly stated that they will not support those atoms on linux.

    Comment


    • #3
      Originally posted by sireangelus View Post
      i think i remember they clearly stated that they will not support those atoms on linux.
      Would you happen to have a link on that? I'd be very much interested in reading about it.

      I would understand if Intel OTC will not support the GPU side of this particular Atom, because it is a licensed IP from Imagination Technologies (PowerVR SGX).

      But if what you're saying is that this CPU as well will receive no support from Intel OTC, then that would be unfortunate to hear about.

      Comment


      • #4


        there you go

        in any case i think that the discriminator here is the powerVR gpu...

        Comment


        • #5
          Ah yes I read that here in Phoronix as well but it says there Intel will not support Atoms code-named Clover Trail.

          Intel Atom D2000 and N2000 (N2600 / N2800) series are code-named Cedar Trail.

          Like I said, these particular Atom CPUs are still categorically considered as Intel CPUs, despite being PowerVR SGX GPU the discriminator in these. Intel slapped their trademark in these CPUs, even in the GPU that wasn't theirs (calling it Intel GMA instead of Imagination Technologies PowerVR SGX).

          Wasn't it Intel that started the trend of "ingredient branding" in the hardware business in the 1990s that established their name as it is known now? Sure, you could fault somebody for not researching enough on Linux support before buying certain hardware, and instead blindly relying on brand name.

          But Intel, who popularized "ingredient branding" in the hardware business that was new at that time, should have instead called their GPU for these Atoms PowerVR, instead of associating their brand name with it, even going as far as calling it as one of their own, and then showing support, both on Windows and Linux, that is something not to be expected from a company so well established in the industry.

          Comment


          • #6
            This thread is really interesting to me. Does the missing support means no real power saving features? I'm currently considering Intel N2800 for my small server and the lack of power saving features would be a no-go for me... Or is somebody working on it?

            Comment


            • #7
              Well, don't buy these CPUs if you plan to run Linux.

              Support for the graphics portion could have been added to the kernel i915 driver, because the modesetting part is quite similar to other Intel graphics. But Intel decided against it for presumably non-technical reasons. See https://lkml.org/lkml/2011/2/22/269 for discussion. Instead, one Intel employee had to develop a separate driver on his own initiative with significant amount of code duplication.

              It appears that the Intel open source folks do not want to touch anything related to the PowerVR Atoms, be it the graphics or not.

              Comment


              • #8
                Originally posted by braveheartleo View Post
                Would you happen to have a link on that? I'd be very much interested in reading about it.

                I would understand if Intel OTC will not support the GPU side of this particular Atom, because it is a licensed IP from Imagination Technologies (PowerVR SGX).

                But if what you're saying is that this CPU as well will receive no support from Intel OTC, then that would be unfortunate to hear about.
                Intel has pretty much written off the hardware as you can see from the lack of updates for continued support on any platform from a long way back and it's not in their interest to devote any resources to supporting it further with their newer hardware requiring their attention. You'll just have to dump it and move on to something newer. End of Line.

                Comment

                Working...
                X