linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Garry <john.garry@huawei.com>
To: Jeremy Linton <jeremy.linton@arm.com>, <rjw@rjwysocki.net>,
	<lenb@kernel.org>
Cc: <arnd@arndb.de>, <olof@lixom.net>, <linux-kernel@vger.kernel.org>,
	<linux-acpi@vger.kernel.org>, <guohanjun@huawei.com>,
	<gregkh@linuxfoundation.org>
Subject: Re: [PATCH RFC 0/2] Add basic generic ACPI soc driver
Date: Tue, 28 Jan 2020 17:28:33 +0000	[thread overview]
Message-ID: <5ab3a97d-bbc4-6d5a-fd06-f8da324339ab@huawei.com> (raw)
In-Reply-To: <bb87efe5-d0be-498a-25a1-008a7bebd452@arm.com>

On 28/01/2020 16:56, Jeremy Linton wrote:
> Hi,
> 

Hi Jeremy,

> On 1/28/20 5:14 AM, John Garry wrote:
>> A requirement has come up recently to be able to read system SoC packages
>> identifiers from userspace [0].
>>
>> For device tree FW-based systems, this would be quite straightforward, in
>> that we could add a soc driver for that system and use the DT model
>> identifier as the soc id - that's how most soc drivers seem to do it.
>>
>> For ACPI-based systems, the only place I know to get (put) such SoC
>> information is in the PPTT, specifically the ID Type Structure for a
>> processor package node. A processor package node describes a physical
>> boundary of a processor topology.
> 
> Well presumably that is one of the use cases for DMI, which has fields 
> for the processor/socket as well as the machine vendor.

I did consider DMI, but I want something more generic, i.e. could cover 
embedded/DT systems also.

And I need to double check if DMI really has the info I require. Last 
time I checked, it didn't for my dev board, but I know that some fields 
are simply not filled in.

> 
> But, quickly looking at the use case, I can't help but think you don't 
> really want any of the above, or the PPTT id. It seems the mapping 
> should actually be tied directly to the uncore PMU definition, rather 
> than a soc/machine/whatever identifier. Which would imply keying off one 
> of the ACPI object identifiers for the PMU itself.

So a PMU device (/sys/bus/event_source/devices) does not have a link to 
the ACPI object identifiers or uncore PMU platform device etc.

And even if it did, there is no clear link between that ACPI object and 
the events it supports for that implementation.

Cheers,
John

> 
> 
>>
>> The ACPI spec does not declare how the fields in this structure must be
>> used, however it does provide pretty clear examples, which I would expect
>> most implementers to follow. As such, I try to solve the problem in 2
>> parts:
>> - Add ACPI PPTT API to get opaque package structure
>> - Add basic ACPI generic soc driver, which can interpret the fields
>>    for known platforms to fill in the ID Type Structure as per example
>>    in the spec.
>>
>> So I'm hoping here for some comments on this approach - hence the RFC.
>> I've cc'ed some folks which may have suggestions.
>>
>> [0] 
>> https://lore.kernel.org/linux-arm-kernel/1579876505-113251-6-git-send-email-john.garry@huawei.com/ 
>> ,
>>      
>> https://lore.kernel.org/linux-arm-kernel/1579876505-113251-1-git-send-email-john.garry@huawei.com/ 
>>
>>
>> John Garry (2):
>>    ACPI/PPTT: Add acpi_pptt_get_package_info() API
>>    soc: Add a basic ACPI generic driver
>>
>>   drivers/acpi/pptt.c        |  81 +++++++++++++++++++++++++++++
>>   drivers/soc/Makefile       |   1 +
>>   drivers/soc/acpi_generic.c | 102 +++++++++++++++++++++++++++++++++++++
>>   include/linux/acpi.h       |  13 +++++
>>   4 files changed, 197 insertions(+)
>>   create mode 100644 drivers/soc/acpi_generic.c
>>
> 
> .


  reply	other threads:[~2020-01-28 17:28 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-28 11:14 [PATCH RFC 0/2] Add basic generic ACPI soc driver John Garry
2020-01-28 11:14 ` [PATCH RFC 1/2] ACPI/PPTT: Add acpi_pptt_get_package_info() API John Garry
2020-01-28 12:34   ` Sudeep Holla
2020-01-28 14:04     ` John Garry
2020-01-28 14:54       ` Sudeep Holla
2020-01-29 11:03         ` John Garry
2020-01-30 11:23     ` Sudeep Holla
2020-01-30 16:12       ` John Garry
2020-01-30 17:41         ` Sudeep Holla
2020-01-31 10:58           ` John Garry
2020-01-28 11:14 ` [PATCH RFC 2/2] soc: Add a basic ACPI generic driver John Garry
2020-01-28 11:56   ` Greg KH
2020-01-28 13:33     ` John Garry
2020-01-28 12:50   ` Arnd Bergmann
2020-01-28 14:46     ` John Garry
2020-01-28 15:20   ` Sudeep Holla
2020-01-28 15:59     ` John Garry
2020-01-28 16:17       ` Sudeep Holla
2020-01-28 17:51   ` Olof Johansson
2020-01-28 18:22     ` John Garry
2020-01-28 19:11       ` Rafael J. Wysocki
2020-01-28 19:28         ` John Garry
2020-01-28 22:30           ` Rafael J. Wysocki
2020-01-29 10:27             ` John Garry
2020-01-28 20:06       ` Olof Johansson
2020-01-29  9:58         ` John Garry
2020-01-28 16:56 ` [PATCH RFC 0/2] Add basic generic ACPI soc driver Jeremy Linton
2020-01-28 17:28   ` John Garry [this message]
2020-01-28 19:04     ` Jeremy Linton
2020-01-28 20:07       ` John Garry

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=5ab3a97d-bbc4-6d5a-fd06-f8da324339ab@huawei.com \
    --to=john.garry@huawei.com \
    --cc=arnd@arndb.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=guohanjun@huawei.com \
    --cc=jeremy.linton@arm.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=rjw@rjwysocki.net \
    /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).