linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RFC: WMI Enhancements
@ 2017-04-12 23:08 Darren Hart
  2017-04-13  7:32 ` Michał Kępień
                   ` (2 more replies)
  0 siblings, 3 replies; 76+ messages in thread
From: Darren Hart @ 2017-04-12 23:08 UTC (permalink / raw)
  To: Rafael Wysocki, Len Brown, Pali Rohár, Corentin Chary,
	Mario Limonciello, Andy Lutomirski, Andy Shevchenko
  Cc: LKML, platform-driver-x86, linux-pm

Hi All,

There are a few parallel efforts involving the Windows Management
Instrumentation (WMI)[1] and dependent/related drivers. I'd like to have a round of
discussion among those of you that have been involved in this space before we
decide on a direction.

The WMI support in the kernel today fairly narrowly supports a handful of
systems. Andy L. has a work-in-progress series [2] which converts wmi into a
platform device and a proper bus, providing devices for dependent drivers to
bind to, and a mechanism for sibling devices to communicate with each other.
I've reviewed the series and feel like the approach is sound, I plan to carry
this series forward and merge it (with Andy L's permission).

Are there any objections to this?

In Windows, applications interact with WMI more or less directly. We don't do
this in Linux currently, although it has been discussed in the past [3]. Some
vendors will work around this by performing SMI/SMM, which is inefficient at
best. Exposing WMI methods to userspace would bring parity to WMI for Linux and
Windows.

There are two principal concerns I'd appreciate your thoughts on:

a) As an undiscoverable interface (you need to know the method signatures ahead
of time), universally exposing every WMI "device" to userspace seems like "a bad
idea" from a security and stability perspective. While access would certainly be
privileged, it seems more prudent to make this exposure opt-in. We also handle
some of this with kernel drivers and exposing those "devices" to userspace would
enable userspace and the kernel to fight over control. So - if we expose WMI
devices to userspace, I believe this should be done on a case by case basis,
opting in, and not by default as part of the WMI driver (although it can provide
the mechanism for a sub-driver to use), and possibly a devmode to do so by
default.

b) The mechanism to expose WMI devices to userspace must allow for atomic
operation, which would exclude a sysfs interface involving multiple files.
Something like an ioctl or a char dev would be more appropriate.

Does anyone think differently regarding a) or b) ?

Secondarily, Andy L created a simple driver to expose the MOF buffer [2] to
userspace which could be consumed by a userspace tool to create sources for an
interface to the exposed WMI methods. With or without MOF support however, I
think it makes sense to provide a common WMI mechanism to expose specific
devices/methods to userspace.

Appreciate your thoughts,

References:
1. https://msdn.microsoft.com/en-us/library/windows/hardware/Dn614028(v=vs.85).aspx
2. https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git/log/?h=platform/wmi
3. https://www.mail-archive.com/linux-acpi@vger.kernel.org/msg11686.html

-- 
Darren Hart
VMware Open Source Technology Center

^ permalink raw reply	[flat|nested] 76+ messages in thread

end of thread, other threads:[~2017-05-09 22:38 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-12 23:08 RFC: WMI Enhancements Darren Hart
2017-04-13  7:32 ` Michał Kępień
2017-04-13 13:29   ` Mario.Limonciello
2017-04-13 13:51     ` Pali Rohár
2017-04-13 15:34       ` Andy Lutomirski
2017-04-13 15:40         ` Mario.Limonciello
2017-04-13 16:06           ` Darren Hart
2017-04-13 15:40       ` Mario.Limonciello
2017-04-18  7:36         ` Andy Shevchenko
2017-04-18 14:08           ` Mario.Limonciello
2017-04-13 15:32   ` Andy Lutomirski
2017-04-13 15:39     ` Pali Rohár
2017-04-13 15:44       ` Andy Lutomirski
2017-04-13 16:09         ` Darren Hart
2017-04-13 15:55     ` Mario.Limonciello
2017-04-13 15:57       ` Andy Lutomirski
2017-04-13 16:54         ` Mario.Limonciello
2017-04-13 17:06           ` Darren Hart
2017-04-13 17:39             ` Mario.Limonciello
2017-04-13 17:44               ` Andy Lutomirski
2017-04-13 17:49                 ` Mario.Limonciello
2017-04-18  7:54               ` Pali Rohár
2017-04-18 16:56                 ` Darren Hart
2017-04-18 19:28                   ` Pali Rohár
2017-04-13 17:02       ` Darren Hart
2017-04-13 17:32         ` Andy Lutomirski
2017-04-13 17:45           ` Mario.Limonciello
2017-04-13 16:08     ` Darren Hart
2017-04-13  7:33 ` Pali Rohár
2017-04-13 16:56   ` Darren Hart
2017-04-13 20:38     ` Mario.Limonciello
2017-04-13 23:51       ` Darren Hart
2017-04-14 17:42         ` Mario.Limonciello
2017-04-14 18:27           ` Darren Hart
2017-04-14 19:04             ` Mario.Limonciello
2017-04-14 22:45 ` Rafael J. Wysocki
2017-04-14 23:05   ` Darren Hart
2017-04-17 22:03     ` Andy Lutomirski
2017-04-17 23:10       ` Darren Hart
2017-04-18 13:07         ` Rafael J. Wysocki
2017-04-18 16:33           ` Darren Hart
2017-04-18 19:28             ` Pali Rohár
2017-04-18 22:49               ` Darren Hart
2017-04-19  7:52                 ` Pali Rohár
2017-04-19 16:29                   ` Mario.Limonciello
2017-04-19 16:54                     ` Pali Rohár
2017-04-19 17:24                       ` Mario.Limonciello
2017-04-20 13:14                         ` Pali Rohár
2017-04-20 20:44                           ` Darren Hart
2017-05-05 21:55                             ` Mario.Limonciello
2017-05-05 23:44                               ` Darren Hart
2017-05-06  0:51                                 ` Mario.Limonciello
2017-05-06  1:25                                   ` Andy Lutomirski
2017-05-08 15:29                                     ` Darren Hart
2017-05-08 15:36                                       ` Mario.Limonciello
2017-05-08 15:47                                         ` Darren Hart
2017-05-08 16:00                                           ` Mario.Limonciello
2017-05-08 16:04                                           ` Andy Shevchenko
     [not found]                                             ` <CAOg5c--wkQgvsmhTynAKyG9iWaHjRWC5Z+MXzVJVw66vxSz4Zw@mail.gmail.com>
2017-05-08 18:26                                               ` Mario.Limonciello
2017-05-08 19:09                                                 ` Darren Hart
2017-05-08 19:11                                                   ` Mario.Limonciello
2017-05-08 17:17                               ` Pali Rohár
2017-05-08 19:21                                 ` Mario.Limonciello
2017-05-08 20:59                                   ` Pali Rohár
2017-05-08 21:18                                     ` Mario.Limonciello
2017-05-08 22:17                                       ` Pali Rohár
2017-05-09  1:10                                         ` Mario.Limonciello
2017-05-09  7:29                                           ` Pali Rohár
2017-05-09 18:10                                             ` Mario.Limonciello
2017-05-09 19:04                                               ` Andy Shevchenko
2017-05-09 19:16                                                 ` Mario.Limonciello
2017-05-09 19:26                                                   ` Andy Shevchenko
2017-05-09 22:38                                                     ` Pali Rohár
2017-05-09 19:19                                                 ` Pali Rohár
2017-04-20 14:17                       ` Christoph Hellwig
2017-04-18 21:14             ` Rafael J. Wysocki

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).