[haiku-development] Re: [gsoc2012] cpuidle support

  • From: Enrique Medina Gremaldos <quiqueiii@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 26 Mar 2012 08:57:37 +0200

El 26 de marzo de 2012 04:37, Yongcong Du <ycdu.vmcore@xxxxxxxxx> escribió:

> I sent this email yesterday. I dunno why the list didn't receive. So send
> again today
>
>
> On Mon, Mar 26, 2012 at 10:15 AM, Yongcong Du <ycdu.vmcore@xxxxxxxxx>wrote:
>
>>
>>
>> ---------- Forwarded message ----------
>> From: Yongcong Du <ycdu.vmcore@xxxxxxxxx>
>> Date: Sun, Mar 25, 2012 at 11:53 PM
>> Subject: [gsoc2012] cpuidle support
>> To: haiku-development@xxxxxxxxxxxxx
>>
>>
>> Dear Haiku development list,
>>
>> I'm a graduate student from China. I'm interested in embedded software
>> development especially lowlevel OS issues, drivers, etc. During my last
>> intern job, I implemented Linux cpufreq and cpuidle drivers of one arm SoC
>> for one company. IOW my job is focused on the SoC's power efficiency under
>> Linux
>>
>> Per my understanding, Linux power efficiency is improved a lot by the
>> following features: cpufreq, tickless and cpuidle. Generally speaking,
>> cpufreq is used to change the clock speed of the cpus based on system load
>> while cpuidle is used to put cpu into deeper idle stage(for example, C2, C3
>> stage on x86) when idle.
>>
>> I noticed that haiku has supported something similar as cpufreq:
>>
>> //www.freelists.org/post/haiku-development/Intel-Enhanced-Speedstep-Driver
>> and I did find the related drivers in
>> src/add-ons/kernel/drivers/power/enhanced_speedstep/
>>
>> I searched via google and also know haiku has already supported the so
>> called "tickless" feature.
>>
>> I found that cpuidle is missing in haiku. So I'd like to take cpuidle
>> framework include some platform's cpuidle driver as my GSoC Haiku project.
>> I think this project will benefit haiku in power efficiency and will
>> extends my laptop's battery life under haiku(also everyone's laptop users'
>> ;)) As for the cpuidle drivers, I may need to handle the complex acpi
>> subsystem to get the so called C-State, to put cpu into deep idle etc.. But
>> for intel snb, ivb etc.. processors, acpi is not necessary[1] In fact, my
>> laptop cpuidle works greatly with the intel_idle driver under linux.
>>
>> So my plan is to implement cpuidle framework, intel cpu cpuidle driver,
>> then acpi cpuidle driver if haiku's acpi support is completed. Here are my
>> questions: Is this a project that would be suitable for GSoC? Can we get
>> c-state from acpi in haiku?
>>
>>
>> [1] https://lkml.org/lkml/2010/5/28/36
>>
>> Thanks in advance
>>
>>
> That would great! I was working on it but I haven't enought time to keep
working, and the laptop I used fried its power supply.

> Can we get c-state from acpi in haiku?

Yes, at least It worked on my laptop. One of the problems I had when
working on this issue, was clock signal. Haiku clock doesn't use hpet
timers (is this still true?) and changing cpu clock slow downs system clock
too.

There are a lot of work already done, It seems a feasible project. My thumb
up for this project!

Other related posts: