public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@hp.com>
To: "Yu, Luming" <luming.yu@intel.com>
Cc: Dmitry Torokhov <dtor_core@ameritech.net>,
	acpi-devel@lists.sourceforge.net, "Keshavamurthy,
	Anil S" <anil.s.keshavamurthy@intel.com>,
	"Brown, Len" <len.brown@intel.com>,
	LHNS list <lhns-devel@lists.sourceforge.net>,
	Linux IA64 <linux-ia64@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: RE: [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject
Date: Tue, 21 Sep 2004 03:02:18 +0000	[thread overview]
Message-ID: <1095735738.3920.29.camel@mythbox> (raw)
In-Reply-To: <3ACA40606221794F80A5670F0AF15F84059309EF@pdsmsx403>


>   This sounds like a good idea. To call the raw AML methods from
> User space, just need to solve the problem of argument passing.

   Solved, the driver I proposed takes an acpi_object_list for passing
arguments to the methods.  The kernel-userspace interface replaces the
pointers in these structures with offsets into the buffer (userspace
responsibility to pass in offsets, kernel responsibility to pass back
offsets).  I've modified the sysfs bin_file to allow ACPI object files
to have backing store on a per-open basis.  There are special commands
that can be written to the ACPI object files to evaluate attributes of
them.  Perhaps these could include some of the things we're looking for
here.

> But, some AML methods are risky to be called directly from user space,
> Not only because the side effect of its execution, but also because
> it could trigger potential AML method bug or interpreter bug, or even
> architectural defect.  All of these headache is due to the AML method
>  is NOT intended for being used by userspace program.

   I've made an attempt to hide the most obvious dangerous methods, but
undoubtedly, there will be some.  Why are we any more likely to hit an
AML method bug, interpreter bug or architectural bug by having a
userspace interface?  Because we can more easily exercise the code?  It
calls the same code paths a driver could.  The driver I propose for this
task does not require any additionally low-level ACPI functions to be
exported.  I think it's too much complexity in the kernel to abstract
every possible bit of data someone might find useful into kernel
drivers.

   Take a simple case of looking for a device with a specific _HID value
and wanting the _CRS data for it.  The _HID value part is easy, but add
all the smarts to parse the _CRS data into something human readable, and
code bloat gets huge.  Then throw in the problem of parsing vendor data
types, and you'll never get finished.  This is a real example.  The zx1
ia64 chipset can only be discovered through ACPI namespace.  It's
physical address is saved in a vendor resource descriptor.  We currently
have to do some pretty ugly stuff in X to take a reasonable guess a what
chipset we're using.  We need some mechanism to get this data in
userspace, and I don't see an approach better than offloading the
complicated data parsing into userspace.  Adding only the methods needed
to solve a specific problem sounds like a maintainability nightmare.
Thanks,

	Alex


  reply	other threads:[~2004-09-21  3:02 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-20 16:25 PATCH-ACPI based CPU hotplug[0/6] Keshavamurthy Anil S
2004-09-20 16:29 ` PATCH-ACPI based CPU hotplug[0/6]-Core ACPI enhancement support Keshavamurthy Anil S
2004-09-20 16:34 ` PATCH-ACPI based CPU hotplug[1/6]-ACPI core " Keshavamurthy Anil S
     [not found]   ` <200409201326.44946.dtor_core@ameritech.net>
2004-09-20 19:01     ` [ACPI] " Keshavamurthy Anil S
2004-09-20 20:26       ` Bjorn Helgaas
2004-09-20 20:44         ` Keshavamurthy Anil S
2004-09-24 23:22           ` Keshavamurthy Anil S
2004-09-20 16:35 ` PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface support Keshavamurthy Anil S
2004-09-20 18:33   ` [ACPI] " Dmitry Torokhov
2004-09-20 19:24     ` Keshavamurthy Anil S
2004-09-20 23:12       ` Dmitry Torokhov
2004-09-21  0:52         ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface Alex Williamson
2004-09-21  1:20           ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface support Dmitry Torokhov
2004-09-21  1:25             ` Keshavamurthy Anil S
2004-09-21  1:41             ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface Alex Williamson
2004-09-21  5:34               ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface support Dmitry Torokhov
2004-09-21  1:38         ` Keshavamurthy Anil S
2004-09-21  5:51           ` Dmitry Torokhov
2004-09-21 21:51             ` Keshavamurthy Anil S
2004-09-21 22:23               ` [Lhns-devel] " Russ Anderson
2004-09-22  3:10               ` Dmitry Torokhov
2004-09-24 23:28         ` Keshavamurthy Anil S
2004-09-27  6:12           ` Dmitry Torokhov
2004-09-27 16:53             ` Keshavamurthy Anil S
2004-09-27 18:09               ` Dmitry Torokhov
2004-09-21  2:30     ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interfacesupport Yu, Luming
2004-09-21  3:02       ` Alex Williamson [this message]
2004-09-21 17:25         ` Theodore Ts'o
2004-09-21 18:10           ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject Alex Williamson
2004-09-22  4:17   ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface Keiichiro Tokunaga
2004-09-22 16:59     ` [ACPI] PATCH-ACPI based CPU hotplug[2/6]-ACPI Eject interface support Keshavamurthy Anil S
     [not found] ` <20040920092520.A14208-39QZ/XbsZ5/mO6KZMuUCQVaTQe2KTcn/@public.gmane.org>
2004-09-20 16:38   ` PATCH-ACPI based CPU hotplug[3/6]-Mapping lsapic to cpu Keshavamurthy Anil S
2004-09-22  2:10     ` [ACPI] " Keiichiro Tokunaga
2004-09-23  6:55       ` Keshavamurthy Anil S
2004-09-22 13:15     ` Keiichiro Tokunaga
2004-09-22 13:23       ` Keiichiro Tokunaga
2004-09-22 14:52       ` Alex Williamson
2004-09-22 17:10         ` Keiichiro Tokunaga
2004-09-22 17:54           ` Keshavamurthy Anil S
2004-09-24 23:36           ` Keshavamurthy Anil S
2004-09-27 11:47             ` Keiichiro Tokunaga
2004-09-27 12:50             ` Keiichiro Tokunaga
2004-09-27 20:44               ` Keshavamurthy Anil S
2004-09-20 16:41   ` PATCH-ACPI based CPU hotplug[4/6]-Dynamic cpu register/unregister support Keshavamurthy Anil S
2004-09-22  8:34     ` [ACPI] PATCH-ACPI based CPU hotplug[4/6]-Dynamic cpu Keiichiro Tokunaga
2004-09-22 17:10       ` [ACPI] PATCH-ACPI based CPU hotplug[4/6]-Dynamic cpu register/unregister support Keshavamurthy Anil S
     [not found]       ` <20040922173400.4e717946.tokunaga.keiich-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2004-09-24 23:40         ` Keshavamurthy Anil S
2004-09-20 16:43   ` PATCH-ACPI based CPU hotplug[5/6]-ACPI processor driver extension Keshavamurthy Anil S
2004-09-22  9:57     ` [ACPI] PATCH-ACPI based CPU hotplug[5/6]-ACPI processor driver Keiichiro Tokunaga
     [not found]     ` <20040920094352.G14208-39QZ/XbsZ5/mO6KZMuUCQVaTQe2KTcn/@public.gmane.org>
2004-09-24 23:48       ` PATCH-ACPI based CPU hotplug[5/6]-ACPI processor driver extension Keshavamurthy Anil S
2004-09-20 16:47   ` PATCH-ACPI based CPU hotplug[6/6]-ACPI Container driver Keshavamurthy Anil S
2004-09-23 16:23     ` [PATCH][0/4] NUMA node handling support for ACPI container driver Keiichiro Tokunaga
2004-09-23 16:31       ` [PATCH][1/4] Add unregister_node() to drivers/base/node.c Keiichiro Tokunaga
2004-09-23 16:43         ` [Lhns-devel] [PATCH][1/4] Add unregister_node() to Dave Hansen
2004-09-24  3:12           ` Keiichiro Tokunaga
2004-09-27 18:52         ` [PATCH][1/4] Add unregister_node() to drivers/base/node.c Keshavamurthy Anil S
2004-09-28 10:19           ` Keiichiro Tokunaga
2004-09-23 16:32       ` [PATCH][2/4] Add arch_register_node() for ia64 Keiichiro Tokunaga
2004-09-23 16:32       ` [PATCH][3/4] Add hotplug support to drivers/acpi/numa.c Keiichiro Tokunaga
2004-09-27 12:58         ` Keiichiro Tokunaga
2004-09-27 20:06         ` Keshavamurthy Anil S
2004-09-29  6:26           ` Keiichiro Tokunaga
2004-09-23 16:36       ` [PATCH][4/4] Add NUMA node handling to the container driver Keiichiro Tokunaga
     [not found]         ` <20040924013642.00003b08.tokunaga.keiich-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2004-09-23 22:09           ` Mika Penttilä
2004-09-24  4:44             ` Keiichiro Tokunaga
2004-09-23 16:38       ` [PATCH][0/4] NUMA node handling support for ACPI " Keshavamurthy Anil S
2004-09-24 23:51     ` PATCH-ACPI based CPU hotplug[6/6]-ACPI Container driver Keshavamurthy Anil S

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=1095735738.3920.29.camel@mythbox \
    --to=alex.williamson@hp.com \
    --cc=acpi-devel@lists.sourceforge.net \
    --cc=anil.s.keshavamurthy@intel.com \
    --cc=dtor_core@ameritech.net \
    --cc=len.brown@intel.com \
    --cc=lhns-devel@lists.sourceforge.net \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luming.yu@intel.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