ACPICA version 20181031 released
by Moore, Robert
31 October 2018. Summary of changes for version 20181031:
This release is available at https://acpica.org/downloads
An Operation Region regression was fixed by properly adding address ranges to a global list during initialization. This allows OS to accurately check for overlapping regions between native devices (such as PCI) and Operation regions as well as checking for region conflicts between two Operation Regions.
Added support for the 2-byte extended opcodes in the code/feature that attempts to continue parsing during the table load phase. Skip parsing Device declarations (and other extended opcodes) when an error occurs during parsing. Previously, only single-byte opcodes were supported.
Cleanup: Simplified the module-level code support by eliminating a useless global variable (AcpiGbl_GroupModuleLeveCode).
2) iASL Compiler/Disassembler and Tools:
iASL/Preprocessor: Fixed a regression where an incorrect use of ACPI_FREE could cause a fault in the preprocessor. This was an inadvertent side-effect from moving more allocations/frees to the local cache/memory mechanism.
iASL: Enhanced error detection by validating that all NameSeg elements within a NamePatch actually exist. The previous behavior was spotty at best, and such errors could be improperly ignored at compiler time (never at runtime, however. There are two new error messages, as shown in the examples below:
dsdt.asl 33: CreateByteField (TTTT.BXXX, 1, CBF1)
Error 6161 - ^ One or more objects within the Pathname do not exist (TTTT.BXXX)
dsdt.asl 34: CreateByteField (BUF1, UUUU.INT1, BBBB.CBF1)
Error 6160 - One or more prefix Scopes do not exist ^ (BBBB.CBF1)
iASL: Disassembler/table-compiler: Added support for the static data table TPM2 revision 3 (an older version of TPM2). The support has been added for the compiler and the disassembler.
Fixed compilation of DOS format data table file on Unix/Linux systems. iASL now properly detects line continuations (\) for DOS format data table definition language files on when executing on Unix/Linux.
3 years, 7 months
Re: [Devel] [PATCH v4 0/3] cpufreq: intel_pstate: Base frequency attribute
by Rafael J. Wysocki
On Monday, October 15, 2018 7:37:18 PM CEST Srinivas Pandruvada wrote:
> This series presents base frequency to cpufreq sysfs when intel_pstate
> is in use in HWP mode.
>
> Changes:
> v4:
> - Documentation update only as suggested by Rafael
>
> v3:
> - Update documentation
> v2
> - Removed guaranteed attribute addition to acpi_cppc sysfs
> - Using the cppc_acpi interface to get base frequency and present
>
> Srinivas Pandruvada (3):
> ACPI / CPPC: Add support for guaranteed performance
> cpufreq: intel_pstate: Add base_frequency attribute
> Documentation: intel_pstate: Add base_frequency information
>
> Documentation/admin-guide/pm/intel_pstate.rst | 7 ++++
> drivers/acpi/cppc_acpi.c | 8 +++-
> drivers/cpufreq/intel_pstate.c | 38 +++++++++++++++++++
> include/acpi/cppc_acpi.h | 1 +
> 4 files changed, 52 insertions(+), 2 deletions(-)
>
>
All three applied, thanks!
3 years, 8 months
[pm:linux-next 117/126] drivers/acpi/bus.c:1058:6: error: 'acpi_gbl_group_module_level_code' undeclared; did you mean 'acpi_gbl_trace_dbg_level'?
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
head: afac0f20eea95951428def5ec3b69332d9a6d07b
commit: 08930d56c76a69716ba56eb111379a559a9b9f42 [117/126] ACPICA: Remove acpi_gbl_group_module_level_code and only use acpi_gbl_execute_tables_as_methods instead
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 08930d56c76a69716ba56eb111379a559a9b9f42
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=arm64
Note: the pm/linux-next HEAD afac0f20eea95951428def5ec3b69332d9a6d07b builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
drivers/acpi/bus.c: In function 'acpi_early_init':
>> drivers/acpi/bus.c:1058:6: error: 'acpi_gbl_group_module_level_code' undeclared (first use in this function); did you mean 'acpi_gbl_trace_dbg_level'?
acpi_gbl_group_module_level_code) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
acpi_gbl_trace_dbg_level
drivers/acpi/bus.c:1058:6: note: each undeclared identifier is reported only once for each function it appears in
drivers/acpi/bus.c: In function 'acpi_bus_init':
drivers/acpi/bus.c:1148:7: error: 'acpi_gbl_group_module_level_code' undeclared (first use in this function); did you mean 'acpi_gbl_trace_dbg_level'?
!acpi_gbl_group_module_level_code) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
acpi_gbl_trace_dbg_level
vim +1058 drivers/acpi/bus.c
aa2110cb1 Lin Ming 2010-04-08 1042
ad71860a1 Alexey Starikovskiy 2007-02-02 1043 status = acpi_reallocate_root_table();
ad71860a1 Alexey Starikovskiy 2007-02-02 1044 if (ACPI_FAILURE(status)) {
ad71860a1 Alexey Starikovskiy 2007-02-02 1045 printk(KERN_ERR PREFIX
ad71860a1 Alexey Starikovskiy 2007-02-02 1046 "Unable to reallocate ACPI tables\n");
ad71860a1 Alexey Starikovskiy 2007-02-02 1047 goto error0;
ad71860a1 Alexey Starikovskiy 2007-02-02 1048 }
ad71860a1 Alexey Starikovskiy 2007-02-02 1049
^1da177e4 Linus Torvalds 2005-04-16 1050 status = acpi_initialize_subsystem();
^1da177e4 Linus Torvalds 2005-04-16 1051 if (ACPI_FAILURE(status)) {
4be44fcd3 Len Brown 2005-08-05 1052 printk(KERN_ERR PREFIX
4be44fcd3 Len Brown 2005-08-05 1053 "Unable to initialize the ACPI Interpreter\n");
^1da177e4 Linus Torvalds 2005-04-16 1054 goto error0;
^1da177e4 Linus Torvalds 2005-04-16 1055 }
^1da177e4 Linus Torvalds 2005-04-16 1056
e7d970f6f Bob Moore 2018-03-14 1057 if (!acpi_gbl_execute_tables_as_methods &&
1ef356681 Lv Zheng 2016-09-23 @1058 acpi_gbl_group_module_level_code) {
^1da177e4 Linus Torvalds 2005-04-16 1059 status = acpi_load_tables();
^1da177e4 Linus Torvalds 2005-04-16 1060 if (ACPI_FAILURE(status)) {
4be44fcd3 Len Brown 2005-08-05 1061 printk(KERN_ERR PREFIX
4be44fcd3 Len Brown 2005-08-05 1062 "Unable to load the System Description Tables\n");
^1da177e4 Linus Torvalds 2005-04-16 1063 goto error0;
^1da177e4 Linus Torvalds 2005-04-16 1064 }
fe6cbea0f Lv Zheng 2016-03-24 1065 }
^1da177e4 Linus Torvalds 2005-04-16 1066
:::::: The code at line 1058 was first introduced by commit
:::::: 1ef356681ef412abfd93d1c36f15917a126833f5 ACPI / bus: Adjust ACPI subsystem initialization for new table loading mode
:::::: TO: Lv Zheng <lv.zheng(a)intel.com>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
3 years, 8 months
[pm:linux-next 117/126] drivers//acpi/bus.c:1058:6: error: 'acpi_gbl_group_module_level_code' undeclared
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
head: afac0f20eea95951428def5ec3b69332d9a6d07b
commit: 08930d56c76a69716ba56eb111379a559a9b9f42 [117/126] ACPICA: Remove acpi_gbl_group_module_level_code and only use acpi_gbl_execute_tables_as_methods instead
config: x86_64-randconfig-u0-10181642 (attached as .config)
compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010
reproduce:
git checkout 08930d56c76a69716ba56eb111379a559a9b9f42
# save the attached .config to linux build tree
make ARCH=x86_64
Note: the pm/linux-next HEAD afac0f20eea95951428def5ec3b69332d9a6d07b builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
drivers//acpi/bus.c: In function 'acpi_early_init':
>> drivers//acpi/bus.c:1058:6: error: 'acpi_gbl_group_module_level_code' undeclared (first use in this function)
acpi_gbl_group_module_level_code) {
^
drivers//acpi/bus.c:1058:6: note: each undeclared identifier is reported only once for each function it appears in
drivers//acpi/bus.c: In function 'acpi_bus_init':
drivers//acpi/bus.c:1148:7: error: 'acpi_gbl_group_module_level_code' undeclared (first use in this function)
!acpi_gbl_group_module_level_code) {
^
vim +/acpi_gbl_group_module_level_code +1058 drivers//acpi/bus.c
aa2110cb1 Lin Ming 2010-04-08 1042
ad71860a1 Alexey Starikovskiy 2007-02-02 1043 status = acpi_reallocate_root_table();
ad71860a1 Alexey Starikovskiy 2007-02-02 1044 if (ACPI_FAILURE(status)) {
ad71860a1 Alexey Starikovskiy 2007-02-02 1045 printk(KERN_ERR PREFIX
ad71860a1 Alexey Starikovskiy 2007-02-02 1046 "Unable to reallocate ACPI tables\n");
ad71860a1 Alexey Starikovskiy 2007-02-02 1047 goto error0;
ad71860a1 Alexey Starikovskiy 2007-02-02 1048 }
ad71860a1 Alexey Starikovskiy 2007-02-02 1049
^1da177e4 Linus Torvalds 2005-04-16 1050 status = acpi_initialize_subsystem();
^1da177e4 Linus Torvalds 2005-04-16 1051 if (ACPI_FAILURE(status)) {
4be44fcd3 Len Brown 2005-08-05 1052 printk(KERN_ERR PREFIX
4be44fcd3 Len Brown 2005-08-05 1053 "Unable to initialize the ACPI Interpreter\n");
^1da177e4 Linus Torvalds 2005-04-16 1054 goto error0;
^1da177e4 Linus Torvalds 2005-04-16 1055 }
^1da177e4 Linus Torvalds 2005-04-16 1056
e7d970f6f Bob Moore 2018-03-14 1057 if (!acpi_gbl_execute_tables_as_methods &&
1ef356681 Lv Zheng 2016-09-23 @1058 acpi_gbl_group_module_level_code) {
^1da177e4 Linus Torvalds 2005-04-16 1059 status = acpi_load_tables();
^1da177e4 Linus Torvalds 2005-04-16 1060 if (ACPI_FAILURE(status)) {
4be44fcd3 Len Brown 2005-08-05 1061 printk(KERN_ERR PREFIX
4be44fcd3 Len Brown 2005-08-05 1062 "Unable to load the System Description Tables\n");
^1da177e4 Linus Torvalds 2005-04-16 1063 goto error0;
^1da177e4 Linus Torvalds 2005-04-16 1064 }
fe6cbea0f Lv Zheng 2016-03-24 1065 }
^1da177e4 Linus Torvalds 2005-04-16 1066
:::::: The code at line 1058 was first introduced by commit
:::::: 1ef356681ef412abfd93d1c36f15917a126833f5 ACPI / bus: Adjust ACPI subsystem initialization for new table loading mode
:::::: TO: Lv Zheng <lv.zheng(a)intel.com>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
3 years, 8 months
Re: [Devel] [PATCH v3 3/3] Documentation: intel_pstate: Add base_frequency information
by Rafael J. Wysocki
On Fri, Oct 12, 2018 at 6:44 PM Srinivas Pandruvada
<srinivas.pandruvada(a)linux.intel.com> wrote:
>
> Updated documentation to explain base_frequency attribute.
>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
> ---
> Documentation/admin-guide/pm/intel_pstate.rst | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/admin-guide/pm/intel_pstate.rst b/Documentation/admin-guide/pm/intel_pstate.rst
> index 8f1d3de449b5..14a5505e073e 100644
> --- a/Documentation/admin-guide/pm/intel_pstate.rst
> +++ b/Documentation/admin-guide/pm/intel_pstate.rst
> @@ -465,6 +465,10 @@ Next, the following policy attributes have special meaning if
> policy for the time interval between the last two invocations of the
> driver's utilization update callback by the CPU scheduler for that CPU.
>
> +``base_frequency``
> + When present, shows the base frequency of the CPU. Any frequency above
> + this will be in the turbo frequency range.
> +
This isn't entirely correct, because base_frequency is not present in
the passive mode (and it is not present for the other drivers for that
matter).
> The meaning of these attributes in the `passive mode <Passive Mode_>`_ is the
> same as for other scaling drivers.
Instead, I would say:
"One more policy attribute is present if the `HWP feature is enabled
in the processor <Active Mode With HWP_>`_:"
here and I would add the description of the attribute below.
Thanks,
Rafael
3 years, 8 months
Re: [Devel] [PATCH v2 0/2] cpufreq: intel_pstate: Base frequency attribute
by Rafael J. Wysocki
On Tue, Oct 9, 2018 at 11:46 PM Srinivas Pandruvada
<srinivas.pandruvada(a)linux.intel.com> wrote:
>
> This series presents base frequency to cpufreq sysfs when intel_pstate
> is in use in HWP mode.
>
> Changes:
> v2
> - Removed guaranteed attribute addition to acpi_cppc sysfs
> - Using the cppc_acpi interface to get base frequency and present
The code changes are fine by me, but what about documenting the new sysfs attr?
Thanks,
Rafael
3 years, 8 months
Re: [Devel] [RESEND][PATCH] ACPI / CPPC: Add support for guaranteed performance
by Rafael J. Wysocki
On Mon, Oct 8, 2018 at 6:55 PM Srinivas Pandruvada
<srinivas.pandruvada(a)linux.intel.com> wrote:
>
> The Continuous Performance Control Package can have guaranteed performance
> field. Add support to read guaranteed performance.
The spec says that it is optional, but you seem to assume that it
always will be there.
What happens if it is not there?
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
> ---
> No changes. But adding CC to mailing lists.
>
> Documentation/acpi/cppc_sysfs.txt | 2 ++
> drivers/acpi/cppc_acpi.c | 10 ++++++++--
> include/acpi/cppc_acpi.h | 1 +
> 3 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/acpi/cppc_sysfs.txt b/Documentation/acpi/cppc_sysfs.txt
> index f20fb445135d..812574d30717 100644
> --- a/Documentation/acpi/cppc_sysfs.txt
> +++ b/Documentation/acpi/cppc_sysfs.txt
> @@ -22,6 +22,7 @@ $ ls -lR /sys/devices/system/cpu/cpu0/acpi_cppc/
> /sys/devices/system/cpu/cpu0/acpi_cppc/:
> total 0
> -r--r--r-- 1 root root 65536 Mar 5 19:38 feedback_ctrs
> +-r--r--r-- 1 root root 65536 Mar 5 19:38 guaranteed_perf
> -r--r--r-- 1 root root 65536 Mar 5 19:38 highest_perf
> -r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_freq
> -r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_nonlinear_perf
> @@ -33,6 +34,7 @@ total 0
>
> --------------------------------------------------------------------------------
>
> +* guaranteed_perf : Guaranteed performance of this processor (abstract scale).
> * highest_perf : Highest performance of this processor (abstract scale).
> * nominal_perf : Highest sustained performance of this processor (abstract scale).
> * lowest_nonlinear_perf : Lowest performance of this processor with nonlinear
> diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
> index d9ce4b162e2c..5babb9402f11 100644
> --- a/drivers/acpi/cppc_acpi.c
> +++ b/drivers/acpi/cppc_acpi.c
> @@ -153,6 +153,7 @@ __ATTR(_name, 0444, show_##_name, NULL)
> } \
> define_one_cppc_ro(member_name)
>
> +show_cppc_data(cppc_get_perf_caps, cppc_perf_caps, guaranteed_perf);
> show_cppc_data(cppc_get_perf_caps, cppc_perf_caps, highest_perf);
> show_cppc_data(cppc_get_perf_caps, cppc_perf_caps, lowest_perf);
> show_cppc_data(cppc_get_perf_caps, cppc_perf_caps, nominal_perf);
> @@ -189,6 +190,7 @@ static struct attribute *cppc_attrs[] = {
> &nominal_perf.attr,
> &nominal_freq.attr,
> &lowest_freq.attr,
> + &guaranteed_perf.attr,
> NULL
> };
>
> @@ -1061,9 +1063,9 @@ int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)
> {
> struct cpc_desc *cpc_desc = per_cpu(cpc_desc_ptr, cpunum);
> struct cpc_register_resource *highest_reg, *lowest_reg,
> - *lowest_non_linear_reg, *nominal_reg,
> + *lowest_non_linear_reg, *nominal_reg, *guaranteed_reg,
> *low_freq_reg = NULL, *nom_freq_reg = NULL;
> - u64 high, low, nom, min_nonlinear, low_f = 0, nom_f = 0;
> + u64 high, low, guaranteed, nom, min_nonlinear, low_f = 0, nom_f = 0;
> int pcc_ss_id = per_cpu(cpu_pcc_subspace_idx, cpunum);
> struct cppc_pcc_data *pcc_ss_data = NULL;
> int ret = 0, regs_in_pcc = 0;
> @@ -1079,6 +1081,7 @@ int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)
> nominal_reg = &cpc_desc->cpc_regs[NOMINAL_PERF];
> low_freq_reg = &cpc_desc->cpc_regs[LOWEST_FREQ];
> nom_freq_reg = &cpc_desc->cpc_regs[NOMINAL_FREQ];
> + guaranteed_reg = &cpc_desc->cpc_regs[GUARANTEED_PERF];
>
> /* Are any of the regs PCC ?*/
> if (CPC_IN_PCC(highest_reg) || CPC_IN_PCC(lowest_reg) ||
> @@ -1107,6 +1110,9 @@ int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)
> cpc_read(cpunum, nominal_reg, &nom);
> perf_caps->nominal_perf = nom;
>
> + cpc_read(cpunum, guaranteed_reg, &guaranteed);
> + perf_caps->guaranteed_perf = guaranteed;
> +
> cpc_read(cpunum, lowest_non_linear_reg, &min_nonlinear);
> perf_caps->lowest_nonlinear_perf = min_nonlinear;
>
> diff --git a/include/acpi/cppc_acpi.h b/include/acpi/cppc_acpi.h
> index 8e0b8250a139..cf59e6210d27 100644
> --- a/include/acpi/cppc_acpi.h
> +++ b/include/acpi/cppc_acpi.h
> @@ -104,6 +104,7 @@ enum cppc_regs {
> * today.
> */
> struct cppc_perf_caps {
> + u32 guaranteed_perf;
> u32 highest_perf;
> u32 nominal_perf;
> u32 lowest_perf;
> --
> 2.17.1
>
3 years, 8 months
ACPICA version 20181003 released
by Moore, Robert
03 October 2018. Summary of changes for version 20181003:
This release is available at https://acpica.org/downloads
2) iASL Compiler/Disassembler and Tools:
Fixed a regression introduced in version 20180927 that could cause the compiler to fault, especially with NamePaths containing one or more carats (^). Such as: ^^_SB_PCI0
Added a new remark for the Sleep() operator when the sleep time operand is larger than one second. This is a very long time for the ASL/BIOS code and may not be what was intended by the ASL writer.
3 years, 8 months