From: "Pali Rohár" <pali.rohar@gmail.com>
To: Darren Hart <dvhart@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>,
platform-driver-x86@vger.kernel.org, linux-pm@vger.kernel.org,
Rafael Wysocki <rjw@rjwysocki.net>
Subject: Re: [PATCH 3/3] platform/wmi: Expose the raw WDG data in sysfs
Date: Tue, 1 Aug 2017 23:31:12 +0200 [thread overview]
Message-ID: <20170801213112.GK25574@pali> (raw)
In-Reply-To: <20170801211702.GF3110@fury>
On Tuesday 01 August 2017 14:17:02 Darren Hart wrote:
> On Tue, Aug 01, 2017 at 10:40:40PM +0200, Pali Rohár wrote:
> > On Tuesday 01 August 2017 13:19:16 Andy Lutomirski wrote:
> > > On Tue, Aug 1, 2017 at 1:03 PM, Darren Hart <dvhart@infradead.org> wrote:
> > > > On Tue, Aug 01, 2017 at 08:37:28AM -0700, Andy Lutomirski wrote:
> > > >> This adds a sysfs binary attribute 'wdg' on the bus device
> > > >> (i.e. /sys/class/wmi_bus/wmi_bus-*/wdg) that contains the raw _WDG
> > > >> data from ACPI. This can be used along with the wmi-bmof driver to
> > > >> decode the raw interface data from ACPI.
> > > >
> > > > I don't recall seeing mention of this is the documentation I read as a
> > > > requirement to decoding the interface with the bmof. Do Windows systems export
> > > > _WDG to userspace?
> > > >
> > > > Why do we need to export _WDG?
> > >
> > > This was a feature that Pali asked for. Pali, since you seem to be
> > > working on userspace tooling, can you explain exactly what you'd use
> > > it for?
> >
> > Take raw BMOF and WDG buffers from ACPI and parse them in userspace.
> > Then provide needed information like mapping from MOF event name to ACPI
> > event name based on info from WDG buffer.
> >
>
> So first, I'm not opposed to adding it if that's what needed. However, I don't
> want to start pushing ACPI objects to sysfs without:
>
> 1) Confirming it's necessary
> 2) Getting Rafael's take on this practice, as if this is to become something we
> do, some kind of ACPI_OBJECT_SYSFS_EXPORT macro provided by ACPI would probably
> be the right way to do it.
>
> My understanding of the BMOF data is that it provided us "with a description of
> all data blocks, WMI methods, and events for the device" [1].
>
> If that's accurate, why do we need the _WDG? This just seems contrary to what
> the BMOF data is supposed to be for.
BMOF provides mapping from human class and method names to WMI GUID. WDG
then provides mapping from WMI GUID to ACPI function names.
Therefore if you upper layer in MOF world say that it want to call
method M of class C and you want to know which ACPI function is called,
you need to parse both BMOF and WDG to get mapping from MOF to ACPI.
Same for WMI events.
> > Ideally ability to create dump of BMOF and WDG on one computer and then
> > parse those data on another.
> >
> > Having original BMOF and WDG structures is a good for debugging and
> > development purpose.
>
> For debugging purposes, the fwts and acpidump tools will provide this.
>
> > > On my laptop, at the very least, it would allow user code to determine
> > > that there's a WMI GUID that doesn't show up in sysfs. It doesn't
> > > show up in sysfs because the ACPI methods are completely missing, but
> > > it's still there in WDG. This prints a warning when wmi.ko is loaded,
> > > but maybe the userspace tooling would care, for debugging if nothing
> > > else.
>
> In this case, I'd argue userspace should only be aware of what the kernel
> decides to expose, based on, at the very least, compliance with the WMI
> documentation.
>
> 1. https://wiki.ubuntu.com/Kernel/Reference/WMI
When you want to write a new WMI kernel driver you definitely need to
see parsed WDG buffer.
When you take ACPI dump and then decompile it (via iasl -d) as written
in #1 you can then find particular WDG and BMOF buffers in that
decompiled ASL file. But parsing such source file correctly is not easy
and I do not know automated tool for it. Also #1 say to look at file and
find some pattern...
--
Pali Rohár
pali.rohar@gmail.com
next prev parent reply other threads:[~2017-08-01 21:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1501601667.git.luto@kernel.org>
[not found] ` <e6df9d038af0a0ce4d4119395aaea58366ade26d.1501601667.git.luto@kernel.org>
[not found] ` <20170801200313.GC3110@fury>
[not found] ` <CALCETrX0zqq3xQgNBx41R9ZCT3_bB4EoXGrY3jWLK0e0Koo=EQ@mail.gmail.com>
[not found] ` <20170801204040.GH25574@pali>
2017-08-01 21:17 ` [PATCH 3/3] platform/wmi: Expose the raw WDG data in sysfs Darren Hart
2017-08-01 21:20 ` Rafael J. Wysocki
2017-08-01 21:36 ` Pali Rohár
2017-08-01 21:32 ` Rafael J. Wysocki
2017-08-01 22:06 ` Darren Hart
2017-08-01 21:31 ` Pali Rohár [this message]
2017-08-01 22:39 ` Darren Hart
2017-08-01 23:51 ` Andy Lutomirski
2017-08-02 2:22 ` Darren Hart
2017-08-02 7:49 ` Pali Rohár
2017-08-04 15:03 ` Andy Lutomirski
2017-08-06 21:36 ` Pali Rohár
2017-08-06 22:09 ` Andy Lutomirski
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=20170801213112.GK25574@pali \
--to=pali.rohar@gmail.com \
--cc=dvhart@infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=luto@kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--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).