Jonathan Corbet <corbet@xxxxxxx> writes: > On Mon, 03 May 2010 09:40:11 -0700 > Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> wrote: > >> > One question, though... one clear use of this API is for drivers to >> > say "don't go into C3 or deeper because things go wrong"; I'm about to >> > add another one of those. It works, but the use of a >> > PM_QOS_CPU_DMA_LATENCY requirement with a hard-coded number that one >> > hopes is small enough seems a bit...indirect. I wonder if it would be >> > clearer and more robust to add a new requirement^Wrequest type saying >> > "the quality of service I need is shallow sleeps only"? >> >> The problem with that is portability. >> >> What does "shallow" mean? > > Well, shallow could mean that the state lacks the CPUIDLE_FLAG_DEEP > flag; that should be relatively portable. In any case, it seems > more so than "if I put in a 55us latency requirement, I'll stay out > of C3". I guess it depends on your goal. Do you just want to stay out of C3 on your current platform? or do you want to stay out of any low-power state (on any platform) where you'll have a latency of > 55 usecs? The former is not portable (as C-states don't have the same meanings across arches/SoCs) where as using a real-world number in usecs will have meaning on any platform. > Just a thought, anyway; it's not like I've really worked through a > plausible alternative API. My main concern is that drivers not be written with latency constraints that assume an Intel-centric set of power states. There are other SoCs out there with different sets of states and corresponding latencies, so keeping things in real-world numbers (latency, throughput, etc.) seems to me to be the only portable way. Kevin _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm