[RFC/RFT][PATCH 0/5] PM / QoS: Introduce latency tolerance device PM QoS type

From: Rafael J. Wysocki
Date: Fri Jan 17 2014 - 09:38:34 EST

Hi All,

On some platforms hardware may switch to an energy-saving mode on the fly
on the basis of certain utilization metrics used by it. That usually is
desirable from the energy conservation standpoint, but it generally causes
latencies to increase which may adversely affect some operations. For this
reason, the platforms in question usually provide some interfaces for software
to indicate its latency tolerance and possibly to prevent the energy-saving
modes from being selected too aggressively.

The following series of patches introduces a device PM QoS type allowing
those interfaces to be used by kernel code and user space. It is designed
in analogy with the existing resume latency device PM QoS type, which allows
some pieces of the existing device PM QoS code to be re-used and makes the
new user space interface fit into the existing framework.

Patch [1/5] modifies the names of symbols, variables, functions and structure
fields associated with the existing resume latency device PM QoS type to
avoid any confusion with the new one introduced by the subsequent patches.

Patch [2/5] introduces a new field in struct pm_qos_constraints for specifying
a special value to be returned as the effective requirement when the given list
of PM QoS requirements is empty. That field is necessary for the new latency
tolerance device PM QoS type.

Patch [3/5] introduces the latency tolerance device PM QoS type along with

Patch [4/5] modifies the ACPI LPSS (Low-Power Subsystem) driver to hook up
LPSS devices to the new latency tolerance device PM QoS interface.

Patch [5/5] modifies the dev_pm_qos_add_ancestor_request() routine so that it
can be used by drivers of devices without hardware latency tolerance support
for specifying their requirements via the ancestors of those devies.

Comments welcome!


I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/