linux/include/acpi
Prakash, Prashanth 80b8286aee ACPI / CPPC: support for batching CPPC requests
CPPC defined in section 8.4.7 of ACPI 6.0 specification suggests
"To amortize the cost of PCC transactions, OSPM should read or write
all PCC registers via a single read or write command when possible"
This patch enables opportunistic batching of frequency transition
requests whenever the request happen to overlap in time.

Currently the access to pcc is serialized by a spin lock which does
not scale well as we increase the number of cores in the system. This
patch improves the scalability by allowing the differnt CPU cores to
update PCC subspace in parallel and by batching requests which will
reduce the certain types of operation(checking command completion bit,
ringing doorbell) by a significant margin.

Profiling shows significant improvement in the overall effeciency
to service freq. transition requests. With this patch we observe close
to 30% of the frequency transition requests being batched with other
requests while running apache bench on a ARM platform with 6
independent domains(or sets of related cpus).

Signed-off-by: Prashanth Prakash <pprakash@codeaurora.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-08-31 01:02:33 +02:00
..
platform ACPICA: Linux: Enable ACPI_MUTEX_DEBUG for Linux kernel 2016-07-15 22:49:24 +02:00
acbuffer.h ACPICA: Additional 2016 copyright changes 2016-01-15 22:18:09 +01:00
acconfig.h ACPICA: Additional 2016 copyright changes 2016-01-15 22:18:09 +01:00
acexcep.h ACPICA: Additional 2016 copyright changes 2016-01-15 22:18:09 +01:00
acnames.h ACPICA: Additional 2016 copyright changes 2016-01-15 22:18:09 +01:00
acoutput.h ACPICA: Utilities: Update trace mechinism for acquire_object 2016-03-08 22:56:21 +01:00
acpi_bus.h device property: Add function to search for named child of device 2016-06-26 12:39:03 +01:00
acpi_drivers.h Revert "ACPI, PCI, IRQ: remove redundant code in acpi_irq_penalty_init()" 2016-07-02 01:38:34 +02:00
acpi_io.h treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
acpi_lpat.h ACPI / LPAT: Common table processing functions 2015-01-29 21:02:10 +08:00
acpi_numa.h ACPI / NUMA: move bad_srat() and srat_disabled() to drivers/acpi/numa.c 2016-05-30 14:27:08 +02:00
acpi.h ACPICA: Additional 2016 copyright changes 2016-01-15 22:18:09 +01:00
acpiosxf.h ACPICA: Divergence: remove unwanted spaces for typedef 2016-05-05 15:14:35 +02:00
acpixf.h Revert "ACPI 2.0 / AML: Improve module level execution by moving the If/Else/While execution to per-table basis" 2016-07-11 16:21:08 +02:00
acrestyp.h ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors 2016-05-05 15:22:26 +02:00
actbl1.h ACPICA: ACPI 6.1: Add full support for this version of ACPI spec 2016-04-05 03:53:31 +02:00
actbl2.h ACPICA: Headers: Update DMAR table for October 2014 I/O spec 2016-04-05 03:53:31 +02:00
actbl3.h ACPICA: ACPI 6.1: Support for new PCCT subtable 2016-05-05 15:22:26 +02:00
actbl.h ACPICA: Tables: Update FADT handling 2016-04-05 03:53:31 +02:00
actypes.h ACPICA: Divergence: remove unwanted spaces for typedef 2016-05-05 15:14:35 +02:00
acuuid.h ACPICA: Additional 2016 copyright changes 2016-01-15 22:18:09 +01:00
apei.h acpi, apei, ghes: Factor out ioremap virtual memory for IRQ and NMI context. 2014-07-22 15:05:06 -07:00
button.h ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED() 2015-09-15 03:05:45 +02:00
cppc_acpi.h ACPI / CPPC: support for batching CPPC requests 2016-08-31 01:02:33 +02:00
ghes.h ACPICA: Restore error table definitions to reduce code differences between Linux and ACPICA upstream. 2014-06-16 22:33:50 +02:00
hed.h
pcc.h mailbox: pcc: Add PCC request and free channel declarations 2016-06-25 02:53:37 +02:00
pdc_intel.h
processor.h Merge branches 'acpi-processor', 'acpi-cppc', 'acpi-apei' and 'acpi-sleep' 2016-07-25 13:42:25 +02:00
reboot.h
video.h ACPI / video: Dummy acpi_video_register should return error code 2016-06-25 02:56:59 +02:00