1. 22 6月, 2006 1 次提交
    • V
      [CPUFREQ] Fix ondemand vs suspend deadlock · 4ec223d0
      Venkatesh Pallipadi 提交于
      Rootcaused the bug to a deadlock in cpufreq and ondemand. Due to non-existent
      ordering between cpu_hotplug lock and dbs_mutex. Basically a race condition
      between cpu_down() and do_dbs_timer().
      
      cpu_down() flow:
      * cpu_down() call for CPU 1
      * Takes hot plug lock
      * Calls pre down notifier
      *     cpufreq notifier handler calls cpufreq_driver_target() which takes
            cpu_hotplug lock again. OK as cpu_hotplug lock is recursive in same
            process context
      * CPU 1 goes down
      * Calls post down notifier
      *     cpufreq notifier handler calls ondemand event stop which takes dbs_mutex
      
      So, cpu_hotplug lock is taken before dbs_mutex in this flow.
      
      do_dbs_timer is triggerred by a periodic timer event.
      It first takes dbs_mutex and then takes cpu_hotplug lock in
      cpufreq_driver_target().
      Note the reverse order here compared to above. So, if this timer event happens
      at right moment during cpu_down, system will deadlok.
      
      Attached patch fixes the issue for both ondemand and conservative.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NDave Jones <davej@redhat.com>
      4ec223d0
  2. 09 5月, 2006 1 次提交
  3. 26 3月, 2006 3 次提交
  4. 28 2月, 2006 1 次提交
  5. 19 1月, 2006 1 次提交
  6. 01 12月, 2005 1 次提交
    • A
      [PATCH] cpufreq_conservative/ondemand: invert meaning of 'ignore nice' · 001893cd
      Alexander Clouter 提交于
      The use of the 'ignore_nice' sysfs file is confusing to anyone using it.
      This removes the sysfs file 'ignore_nice' and in its place creates a
      'ignore_nice_load' entry that defaults to '0'; meaning nice'd processes
      _are_ counted towards the 'business' calculation.
      
      WARNING: this obvious breaks any userland tools that expected ignore_nice'
      to exist, to draw attention to this fact it was concluded on the mailing
      list that the entry should be removed altogether so the userland app breaks
      and so the author can build simple to detect workaround.  Having said that
      it seems currently very few tools even make use of this functionality; all
      I could find was a Gentoo Wiki entry.
      Signed-off-by: NAlexander Clouter <alex-kernel@digriz.org.uk>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NDave Jones <davej@redhat.com>
      001893cd
  7. 21 9月, 2005 1 次提交
    • D
      [CPUFREQ] Avoid the ondemand cpufreq governor to use a too high frequency for stats. · df8b59be
      Dave Jones 提交于
      The problem is in the ondemand governor, there is a periodic measurement
      of the CPU usage. This CPU usage is updated by the scheduler after every
      tick (basically, by adding 1 either to "idle" or to "user" or to
      "system"). So if the frequency of the governor is too high, the stat
      will be meaningless (as mostly no number have changed).
      
      So this patch checks that the measurements are separated by at least 10
      ticks. It means that by default, stats will have about 5% error (20
      ticks). Of course those numbers can be argued but, IMHO, they look sane.
      The patch also includes a small clean-up to check more explictly the
      result of the conversion from ns to µs being null.
      
      Let's note that (on x86) this has never been really needed before 2.6.13
      because HZ was always 1000. Now that HZ can be 100, some CPU might be
      affected by this problem. For instance when HZ=100, the centrino ,which
      has a 10µs transition latency, would lead to the governor allowing to
      read stats every tick (10ms)!
      Signed-off-by: NEric Piel <eric.piel@tremplin-utc.net>
      Signed-off-by: NDave Jones <davej@redhat.com>
      df8b59be
  8. 01 6月, 2005 10 次提交
  9. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4