On Mon, Aug 3, 2015 at 4:21 PM, Tony Lindgren <[email protected]> wrote:
> * Ran Shalit <[email protected]> [150801 11:34]:
>> Hi ,
>>
>> I've accidently omitted linux-omap in last message, so please here it is 
>> again:
>>
>> I think that if someone here understand cpuidle it may lead me to a 
>> solution...
>>
>> 1. I'm using TI's kernel 2.6.37
>> http://git.kernel.org/cgit/linux/kernel/git/tmlind/linux-omap.git/
>
> Hmm that's not the TI kernel, that's where we keep the omap patches
> heading to the mainline kernel tree :)
>
>> 2. I think it is related to the menu governer who decides on c-state change.
>> But I'm not sure what and how I need to change so that the ethernet
>> test for small windows will have same performance as without PM.
>> 3. I see that the performace as tested with iperf has the same
>> performace results with large packets but with small packets (smaller
>> then 2000 bytes) there is high degredation (only if cpuidle is used)
>> I also see that the counter for C3(core inactive - not retention yet)
>> state is icremented with the small packet test.
>> Does anyone have any idea why the small packet test results in
>> entering (and exit ) several times the core inactive state? Why does
>> not it happen with big packet test? And what can I do to overcome this
>> degredation?
>> 4. Can anyone try to run iperf with small packet (2000 bytes or below)
>> for checking ethernet bandwidth? And then compare this with results in
>> kernel without power management support?
>
> If you don't have anything blocking deeper idle states from the
> Ethernet controller then the hardware can start entering deeper
> idle states. I can see this happening when transferring data with
> DMA over Ethernet especially if you have an external Ethernet
> controller connected to GPMC. If you cannot rely on the hardware
> IDLEST bits to keep the system from entering deeper idle states,
> then you have to use the runtime PM API to do it somehow.
>
> Regards,
>
> Tony

Hi,

I am using GPMC with smsc911x controller.
If I understand you correctly, I can overcome this, but asking the
hardware not get into inactive state.
I actully need that the code won't get into inactive state (I don't
think that anyelse is inactive, except the core - this is C3 state).
The problem with this approach is that I'm not sure I can determine
when to decide "turn cpuidle off" and when to decide "turn cpuidle
on".
I thought that if there is a way to ask the governer (in tickless
kernel, it is menu governer), to wait for a longer time, before
deciding to get into sleep.
I think that if it waits longer time, it will see that there are tasks
to do (small packets in iperf test), and will not enter sleep state.
Is that possible ? Is there any parameter in governer which control this ?

Thank you,
Ran
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to