From: Jon Masters <jcm@redhat.com>
To: Sudeep Holla <sudeep.holla@arm.com>,
Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
Mark Rutland <Mark.Rutland@arm.com>
Cc: Catalin Marinas <Catalin.Marinas@arm.com>,
"hanjun.guo@linaro.org" <hanjun.guo@linaro.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Olof Johansson <olof@lixom.net>,
"grant.likely@linaro.org" <grant.likely@linaro.org>,
"graeme.gregory@linaro.org" <graeme.gregory@linaro.org>,
Arnd Bergmann <arnd@arndb.de>, Will Deacon <Will.Deacon@arm.com>,
Jason Cooper <jason@lakedaemon.net>,
Marc Zyngier <Marc.Zyngier@arm.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
Robert Richter <rric@kernel.org>, Lv Zheng <lv.zheng@intel.com>,
Robert Moore <robert.moore@intel.com>,
Liviu Dudau <Liviu.Dudau@arm.com>,
Randy Dunlap <rdunlap@infradead.org>,
Charles Garcia-Tobin <Charles.Garcia-Tobin@arm.com>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 02/17] ARM64 / ACPI: Get RSDP and ACPI boot-time tables
Date: Tue, 09 Sep 2014 15:06:55 -0400 [thread overview]
Message-ID: <540F4FCF.1090508@redhat.com> (raw)
In-Reply-To: <540F4155.4090200@arm.com>
On 09/09/2014 02:05 PM, Sudeep Holla wrote:
>
>
> On 09/09/14 18:50, Lorenzo Pieralisi wrote:
>> On Tue, Sep 09, 2014 at 06:15:41PM +0100, Mark Rutland wrote:
>>> On Tue, Sep 09, 2014 at 05:41:51PM +0100, Jon Masters wrote:
>>>> On 09/09/2014 12:26 PM, Catalin Marinas wrote:
>>>>> On Mon, Sep 01, 2014 at 03:57:40PM +0100, Hanjun Guo wrote:
>>>>>> diff --git a/arch/arm64/include/asm/acenv.h b/arch/arm64/include/asm/acenv.h
>>>>>> new file mode 100644
>>>>>> index 0000000..3899ee6
>>>>>> --- /dev/null
>>>>>> +++ b/arch/arm64/include/asm/acenv.h
>>>>>> @@ -0,0 +1,18 @@
>>>>>> +/*
>>>>>> + * ARM64 specific ACPICA environments and implementation
>>>>>> + *
>>>>>> + * Copyright (C) 2014, Linaro Ltd.
>>>>>> + * Author: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>> + * Author: Graeme Gregory <graeme.gregory@linaro.org>
>>>>>> + *
>>>>>> + * This program is free software; you can redistribute it and/or modify
>>>>>> + * it under the terms of the GNU General Public License version 2 as
>>>>>> + * published by the Free Software Foundation.
>>>>>> + */
>>>>>> +
>>>>>> +#ifndef _ASM_ACENV_H
>>>>>> +#define _ASM_ACENV_H
>>>>>> +
>>>>>> +#define ACPI_FLUSH_CPU_CACHE() WARN_ONCE(1, "Not currently supported on ARM64")
>>>>>
>>>>> Does this mean that it will be supported at some point? Looking at the
>>>>> places where this function is called, I don't really see how this would
>>>>> ever work on ARM. Which means that we add such macro just to be able to
>>>>> compile code that would never be used on arm64. I would rather see the
>>>>> relevant ACPI files only compiled on x86/IA-64 rather than arm64.
>>>>
>>>> That specific cache behavior is a part of e.g. ACPI C3 state support
>>>> (e.g. ACPI5.1 8.1.4 Processor Power State C3).
>>>
>>> Per table 5-35, if neither WBINVD or WBINVD_FLUSH are set in the FADT,
>>> we don't get S1, S2, or S3 states either.
>>>
>>>> As you note, it's not going to work on 64-bit ARM as it does on x86,
>>>> but it's optional to implement C3 and early 64-bit ARM systems should
>>>> not report Wbindv flags in the FADT anyway.
>>>
>>> Unless the arm cache architecture changes, I wouldn't expect any 64-bit
>>> ARM system to set either of the WBINVD flags.
>>>
>>>> They can also set FADT.P_LVL3_LAT > 1000, which has the effect of
>>>> disabling C3 support, while also allowing for use of _CST objects to
>>>> define more flexible C-States later on.
>>>
>>> It sounds like we should be sanity checking these in the arm64 ACPI code
>>> for the moment. I don't want us to discover that current platforms
>>> report the wrong thing only when new platforms come out that might
>>> actually report things correctly.
>>
>> I think that the kernel must ignore most of the stuff mentioned above
>> in HW_REDUCED_ACPI mode. And to be frank I still think that the problem
>> is not even there. The problem is trying to compile code that basically
>> has no defined behaviour - ie it is unspecified - on ARM64, that's what
>> Catalin pointed out.
>>
>> I understand it is compiled in by default on x86, but that's not a reason
>> why we should add empty hooks all over the place to compile code that
>> does not stand a chance to be doing anything sensible apart from
>> returning an error code, in the best case scenario.
>>
>
> I had pointed out this earlier, even if we make it compile there's
> every possibility that it can blow up if some vendor adds S- states
> to their ACPI tables. One clear reason why it could blow up is:
>
> "
> /* This violates the spec but is required for bug compatibility. */
> acpi_write_bit_register(ACPI_BITREG_SCI_ENABLE, 1);
> "
>
> I don't think this can ever work on ARM platforms. So better to fix it
> properly.
Hanjun,
How do you want to proceed? I'm not sure it should be !HW_REDUCED_MODE
for the cache behavior, because an embedded x86 box would still probably
define those, but removing the hooks on ARM may make sense.
Jon.
next prev parent reply other threads:[~2014-09-09 19:08 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-01 14:57 [PATCH v3 00/17] Introduce ACPI for ARM64 based on ACPI 5.1 Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 01/17] ARM64: Move the init of cpu_logical_map(0) before unflatten_device_tree() Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 02/17] ARM64 / ACPI: Get RSDP and ACPI boot-time tables Hanjun Guo
2014-09-09 16:26 ` Catalin Marinas
2014-09-09 16:41 ` Jon Masters
2014-09-09 16:44 ` Jon Masters
2014-09-09 17:15 ` Mark Rutland
2014-09-09 17:33 ` Jon Masters
2014-09-09 17:50 ` Lorenzo Pieralisi
2014-09-09 18:05 ` Sudeep Holla
2014-09-09 19:06 ` Jon Masters [this message]
2014-09-10 11:13 ` Hanjun Guo
2014-09-10 12:33 ` Catalin Marinas
2014-09-10 21:51 ` Grant Likely
2014-09-11 11:01 ` Catalin Marinas
2014-09-14 15:40 ` Grant Likely
2014-09-14 21:59 ` Catalin Marinas
2014-09-15 3:53 ` Grant Likely
2014-09-16 5:29 ` Zheng, Lv
2014-09-10 21:41 ` Grant Likely
2014-09-09 16:54 ` Mark Rutland
2014-09-10 7:30 ` Hanjun Guo
2014-09-10 21:37 ` Grant Likely
2014-09-01 14:57 ` [PATCH v3 03/17] ARM64 / ACPI: Introduce lowlevel suspend function Hanjun Guo
2014-09-09 16:35 ` Catalin Marinas
2014-09-09 22:04 ` Graeme Gregory
2014-09-01 14:57 ` [PATCH v3 04/17] ARM64 / ACPI: Introduce early_param for "acpi" Hanjun Guo
2014-09-09 16:37 ` Catalin Marinas
2014-09-09 17:17 ` Bjorn Helgaas
2014-09-09 22:14 ` Jon Masters
2014-09-10 13:04 ` Will Deacon
2014-09-10 13:21 ` Bjorn Helgaas
2014-09-10 18:30 ` Will Deacon
2014-09-10 21:58 ` Grant Likely
2014-09-01 14:57 ` [PATCH v3 05/17] ARM64 / ACPI: If we chose to boot from acpi then disable FDT Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 06/17] ARM64 / ACPI: Make PCI optional for ACPI on ARM64 Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 07/17] ARM64 / ACPI: Parse FADT table to get PSCI flags for PSCI init Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 08/17] ACPI / table: Print GIC information when MADT is parsed Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 09/17] ARM64 / ACPI: Parse MADT for SMP initialization Hanjun Guo
2014-09-03 17:21 ` Lorenzo Pieralisi
2014-09-04 15:29 ` Hanjun Guo
2014-09-09 4:29 ` Jon Masters
2014-09-09 5:11 ` Hanjun Guo
2014-09-09 5:34 ` Jon Masters
2014-09-09 16:52 ` Lorenzo Pieralisi
2014-09-09 17:00 ` Jon Masters
2014-09-09 17:02 ` Jon Masters
2014-09-09 4:23 ` Jon Masters
2014-09-09 4:57 ` Hanjun Guo
2014-09-09 5:44 ` Jon Masters
2014-09-09 16:00 ` Hanjun Guo
2014-09-09 16:04 ` Jon Masters
2014-09-09 16:14 ` Hanjun Guo
2014-09-11 14:15 ` Will Deacon
2014-09-12 21:30 ` Jon Masters
2014-09-11 10:24 ` Grant Likely
2014-09-01 14:57 ` [PATCH v3 10/17] ACPI / processor: Make it possible to get CPU hardware ID via GICC Hanjun Guo
2014-09-03 16:27 ` Lorenzo Pieralisi
2014-09-08 13:10 ` Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 11/17] ARM64 / ACPI: Introduce ACPI_IRQ_MODEL_GIC and register device's gsi Hanjun Guo
2014-09-11 11:08 ` Grant Likely
2014-09-11 11:34 ` Grant Likely
2014-09-12 9:42 ` Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 12/17] ACPI / table: Add new function to get table entries Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 13/17] ARM64 / ACPI: Add GICv2 specific ACPI boot support Hanjun Guo
2014-09-01 17:35 ` Marc Zyngier
2014-09-02 8:28 ` [Linaro-acpi] " Alexander Spyridakis
2014-09-02 11:48 ` Tomasz Nowicki
2014-09-02 13:02 ` Marc Zyngier
2014-09-02 15:45 ` Hanjun Guo
2014-09-02 15:59 ` Marc Zyngier
2014-09-02 16:11 ` Sudeep Holla
2014-09-03 10:30 ` Marc Zyngier
2014-09-03 11:17 ` Hanjun Guo
2014-09-04 14:03 ` Hanjun Guo
2014-09-09 6:21 ` Jon Masters
2014-09-03 9:26 ` Tomasz Nowicki
2014-09-03 14:57 ` Arnd Bergmann
2014-09-05 8:52 ` Tomasz Nowicki
2014-09-05 9:47 ` Marc Zyngier
2014-09-05 10:13 ` [Linaro-acpi] " Arnd Bergmann
2014-09-05 10:36 ` Tomasz Nowicki
2014-09-05 10:39 ` Marc Zyngier
2014-09-05 10:49 ` Tomasz Nowicki
2014-09-09 6:27 ` Jon Masters
2014-09-11 13:43 ` Grant Likely
2014-09-02 16:34 ` Catalin Marinas
2014-09-11 11:48 ` Grant Likely
2014-09-11 12:01 ` Marc Zyngier
2014-09-09 6:14 ` Jon Masters
2014-09-03 18:42 ` Arnd Bergmann
2014-09-04 10:10 ` Tomasz Nowicki
2014-09-04 10:14 ` Arnd Bergmann
2014-09-04 10:39 ` Tomasz Nowicki
2014-09-09 6:35 ` Jon Masters
2014-09-01 14:57 ` [PATCH v3 14/17] ARM64 / ACPI: Parse GTDT to initialize arch timer Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 15/17] ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64 Hanjun Guo
2014-09-01 14:57 ` [PATCH v3 16/17] ARM64 / ACPI: Enable ARM64 in Kconfig Hanjun Guo
2014-09-11 15:18 ` Lorenzo Pieralisi
2014-09-01 14:57 ` [PATCH v3 17/17] Documentation: ACPI for ARM64 Hanjun Guo
2014-09-11 13:29 ` [PATCH v3 00/17] Introduce ACPI for ARM64 based on ACPI 5.1 Grant Likely
2014-09-11 13:49 ` Will Deacon
2014-09-12 21:38 ` Jon Masters
2014-09-12 21:43 ` Jon Masters
2014-09-15 4:21 ` Grant Likely
2014-09-11 14:23 ` Rafael J. Wysocki
2014-09-11 14:04 ` Grant Likely
2014-09-11 15:37 ` Catalin Marinas
2014-09-11 15:57 ` Sudeep Holla
2014-09-11 16:06 ` Graeme Gregory
2014-09-11 16:14 ` Sudeep Holla
2014-09-15 4:31 ` Grant Likely
2014-09-15 9:15 ` Catalin Marinas
2014-09-15 22:48 ` Grant Likely
2014-09-16 10:12 ` Catalin Marinas
2014-09-11 16:05 ` Olof Johansson
2014-09-15 4:37 ` Grant Likely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=540F4FCF.1090508@redhat.com \
--to=jcm@redhat.com \
--cc=Catalin.Marinas@arm.com \
--cc=Charles.Garcia-Tobin@arm.com \
--cc=Liviu.Dudau@arm.com \
--cc=Lorenzo.Pieralisi@arm.com \
--cc=Marc.Zyngier@arm.com \
--cc=Mark.Rutland@arm.com \
--cc=Will.Deacon@arm.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=broonie@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=graeme.gregory@linaro.org \
--cc=grant.likely@linaro.org \
--cc=hanjun.guo@linaro.org \
--cc=jason@lakedaemon.net \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lv.zheng@intel.com \
--cc=olof@lixom.net \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=robert.moore@intel.com \
--cc=robh@kernel.org \
--cc=rric@kernel.org \
--cc=sudeep.holla@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).