1. 08 4月, 2016 9 次提交
  2. 24 3月, 2016 2 次提交
  3. 11 9月, 2015 1 次提交
  4. 16 8月, 2015 1 次提交
  5. 27 7月, 2015 1 次提交
    • L
      intel_idle: allow idle states to be freeze-mode specific · 7dd0e0af
      Len Brown 提交于
      intel_idle uses a NULL "enter" field in a cpuidle state
      to recognize the invalid entry terminating a variable-length array.
      
      Linux-4.0 added support for the system-wide "freeze" state
      in cpuidle drivers via the new "enter_freeze" field.
      
      The natural way to expose a deep idle state for freeze,
      but not for run-time idle is to supply "enter_freeze" without "enter";
      so we update the driver to accept such states.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      7dd0e0af
  6. 11 4月, 2015 1 次提交
  7. 03 4月, 2015 2 次提交
  8. 01 4月, 2015 2 次提交
    • L
      intel_idle: Add support for the Airmont Core in the Cherrytrail and Braswell SOCs · cab07a56
      Len Brown 提交于
      Support C-states for the Airmont core in the Cherrytrail and Braswell SOCs.
      The states are similar to those of Silvermont in Baytrail,
      except both flavors of C6 states are faster.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Cc: Kumar P Mahesh <mahesh.kumar.p@intel.com>
      Cc: Alan Cox <alan@linux.intel.com>
      Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
      cab07a56
    • L
      intel_idle: Update support for Silvermont Core in Baytrail SOC · d7ef7671
      Len Brown 提交于
      On some Silvermont-Core/Baytrail-SOC systems,
      C1E latency is higher than original specifications.
      Although C1E is still enumerated in CPUID.MWAIT.EDX,
      we delete the state from intel_idle to avoid latency impact.
      
      Under some conditions, the latency of the C6N-BYT and C6S-BYT states
      may exceed the specified values of 40 and 140 usec, respectively.
      Increase those values to 300 and 500 usec; to assure
      that the hardware does not violate constraints that may be set
      by the Linux PM_QOS sub-system.
      
      Also increase the C7-BYT target residency to 4.0 ms from 1.5 ms.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Cc: Kumar P Mahesh <mahesh.kumar.p@intel.com>
      Cc: Alan Cox <alan@linux.intel.com>
      Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      d7ef7671
  9. 16 2月, 2015 1 次提交
  10. 11 2月, 2015 1 次提交
  11. 13 11月, 2014 1 次提交
    • D
      cpuidle: Invert CPUIDLE_FLAG_TIME_VALID logic · b82b6cca
      Daniel Lezcano 提交于
      The only place where the time is invalid is when the ACPI_CSTATE_FFH entry
      method is not set. Otherwise for all the drivers, the time can be correctly
      measured.
      
      Instead of duplicating the CPUIDLE_FLAG_TIME_VALID flag in all the drivers
      for all the states, just invert the logic by replacing it by the flag
      CPUIDLE_FLAG_TIME_INVALID, hence we can set this flag only for the acpi idle
      driver, remove the former flag from all the drivers and invert the logic with
      this flag in the different governor.
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b82b6cca
  12. 16 8月, 2014 2 次提交
  13. 22 4月, 2014 1 次提交
  14. 05 4月, 2014 1 次提交
    • L
      intel_idle: fine-tune IVT residency targets · 0138d8f0
      Len Brown 提交于
      Ivy Town processors have slightly different properties
      than Ivy Bridge processors, particuarly as socket count grows.
      Here we add dedicated tables covering 1-2 socket,
      3-4 socket, and > 4 socket IVT configurations.
      
      This reduces the frequency of deep transitions on those systems,
      which can impact throughput.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      0138d8f0
  15. 20 3月, 2014 1 次提交
    • S
      intel-idle: Fix CPU hotplug callback registration · 07494d54
      Srivatsa S. Bhat 提交于
      Subsystems that want to register CPU hotplug callbacks, as well as perform
      initialization for the CPUs that are already online, often do it as shown
      below:
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	put_online_cpus();
      
      This is wrong, since it is prone to ABBA deadlocks involving the
      cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
      with CPU hotplug operations).
      
      Instead, the correct and race-free way of performing the callback
      registration is:
      
      	cpu_notifier_register_begin();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	/* Note the use of the double underscored version of the API */
      	__register_cpu_notifier(&foobar_cpu_notifier);
      
      	cpu_notifier_register_done();
      
      Fix the intel-idle code by using this latter form of callback registration.
      
      Cc: Len Brown <lenb@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      07494d54
  16. 28 2月, 2014 1 次提交
  17. 20 2月, 2014 2 次提交
    • L
      intel_idle: support Bay Trail · 718987d6
      Len Brown 提交于
      Bay Trail (BYT) is a family of Silvermont-core Atom Processor SOCs,
      including the Intel Atom Processor Z36xxx and Z37xxx Series.
      
      Although it shares the Silvermont core with Avoton,
      BYT is optimized for mobile, and thus it supports
      different power saving CPU idle states.
      
      Note that not all versions of Bay Trail HW support all
      of the states listed in the driver.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Tested-by: NAubrey Li <aubrey.li@linux.intel.com>
      718987d6
    • L
      intel_idle: allow sparse sub-state numbering, for Bay Trail · 24bfa950
      Len Brown 提交于
      Like acpi_idle, intel_idle compared sub-state numbers
      to the number of supported sub-states -- discarding
      sub-states numbers that were numbered >= the number of states.
      
      But some Bay Trail SOCs use sparse sub-state numbers,
      so we can't make such a comparison if we are going
      to access those states.
      
      So now we simply check that _some_ sub-states are
      supported for the given state, and assume that the
      sub-state number in our driver is valid.
      
      In practice, the driver is correct, and even if it were not,
      the hardware clips invalid sub-state requests to valid ones.
      
      No entries in the driver require this change,
      but Bay Trail will need it.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      24bfa950
  18. 11 1月, 2014 2 次提交
  19. 10 1月, 2014 1 次提交
  20. 09 1月, 2014 1 次提交
    • J
      Revert "intel_idle: mark states tables with __initdata tag" · ba0dc81e
      Jiang Liu 提交于
      This reverts commit 9d046ccb.
      
      Commit 9d046ccb marks all state tables with __initdata, but
      the state table may be accessed when doing CPU online, which then
      causing system crash as below:
      
      [  204.188841] BUG: unable to handle kernel paging request at ffffffff8227cce8
      [  204.196844] IP: [<ffffffff814aa1c0>] intel_idle_cpu_init+0x40/0x130
      [  204.203996] PGD 1e11067 PUD 1e12063 PMD 455859063 PTE 800000000227c062
      [  204.211638] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
      [  204.216975] Modules linked in: x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd gpio_ich microcode joydev sb_edac edac_core ipmi_si lpc_ich ipmi_msghandler lp tpm_tis parport wmi mac_hid acpi_pad hid_generic ixgbe isci usbhid dca hid libsas ptp ahci libahci scsi_transport_sas megaraid_sas pps_core mdio
      [  204.262815] CPU: 11 PID: 1489 Comm: bash Not tainted 3.13.0-rc7+ #48
      [  204.269993] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRIVTIN1.86B.0047.L09.1312061514 12/06/2013
      [  204.281646] task: ffff8804303a24a0 ti: ffff880440fac000 task.ti: ffff880440fac000
      [  204.290311] RIP: 0010:[<ffffffff814aa1c0>]  [<ffffffff814aa1c0>] intel_idle_cpu_init+0x40/0x130
      [  204.300184] RSP: 0018:ffff880440fadd28  EFLAGS: 00010286
      [  204.306192] RAX: ffffffff8227cca0 RBX: ffffe8fff1a03400 RCX: 0000000000000007
      [  204.314244] RDX: ffff88045f400000 RSI: 0000000000000009 RDI: 0000000000001120
      [  204.322296] RBP: ffff880440fadd38 R08: 0000000000000000 R09: 0000000000000001
      [  204.330411] R10: 0000000000000001 R11: 0000000000000000 R12: 000000000000001e
      [  204.338482] R13: 00000000ffffffdb R14: 0000000000000001 R15: 0000000000000000
      [  204.346743] FS:  00007f64f7b0c740(0000) GS:ffff88045ce00000(0000) knlGS:0000000000000000
      [  204.355919] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  204.362449] CR2: ffffffff8227cce8 CR3: 0000000444ab0000 CR4: 00000000001407e0
      [  204.370520] Stack:
      [  204.372853]  000000000000001e ffffffff81f10240 ffff880440fadd50 ffffffff814aa307
      [  204.381519]  ffffffff81ea80e0 ffff880440fadda0 ffffffff8185a230 0000000000000000
      [  204.390196]  000000000000001e 0000000000000002 0000000000000002 0000000000000000
      [  204.398856] Call Trace:
      [  204.401683]  [<ffffffff814aa307>] cpu_hotplug_notify+0x57/0x70
      [  204.408638]  [<ffffffff8185a230>] notifier_call_chain+0x100/0x150
      [  204.415553]  [<ffffffff810a7dae>] __raw_notifier_call_chain+0xe/0x10
      [  204.422772]  [<ffffffff81072163>] cpu_notify+0x23/0x50
      [  204.428616]  [<ffffffff810723b2>] _cpu_up+0x132/0x1a0
      [  204.434361]  [<ffffffff8107249d>] cpu_up+0x7d/0xa0
      [  204.439819]  [<ffffffff81836c9c>] cpu_subsys_online+0x3c/0x90
      [  204.446345]  [<ffffffff81554625>] device_online+0x45/0xa0
      [  204.452471]  [<ffffffff815546ce>] online_store+0x4e/0x80
      [  204.458511]  [<ffffffff815519a8>] dev_attr_store+0x18/0x30
      [  204.464744]  [<ffffffff812a68f1>] sysfs_write_file+0x151/0x1c0
      [  204.471681]  [<ffffffff81217ef1>] vfs_write+0xe1/0x160
      [  204.477524]  [<ffffffff8121889c>] SyS_write+0x4c/0x90
      [  204.483270]  [<ffffffff8185f2ed>] system_call_fastpath+0x1a/0x1f
      [  204.490081] Code: 41 54 41 89 fc 8b 3d 48 25 85 01 53 48 8b 1d 30 25 85 01 48 03 1c c5 40 90 fb 81 48 8b 05 19 25 85 01 c7 43 0c 01 00 00 00 66 90 <48> 83 78 48 00 74 4f 41 83 c0 01 41 39 f0 7e 10 48 c7 c7 38 79
      [  204.515723] RIP  [<ffffffff814aa1c0>] intel_idle_cpu_init+0x40/0x130
      [  204.522996]  RSP <ffff880440fadd28>
      [  204.526976] CR2: ffffffff8227cce8
      [  204.530766] ---[ end trace 336f56cc3d1cfc8c ]---
      
      Fixes: 9d046ccb (intel_idle: mark states tables with __initdata tag)
      Signed-off-by: NJiang Liu <jiang.liu@linux.intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ba0dc81e
  21. 20 12月, 2013 2 次提交
  22. 28 11月, 2013 1 次提交
  23. 13 11月, 2013 1 次提交
  24. 30 10月, 2013 1 次提交
  25. 25 9月, 2013 1 次提交