From: Alex Williamson <alex.williamson@hp.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: acpi-devel <acpi-devel@lists.sourceforge.net>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH/RFC] exposing ACPI objects in sysfs
Date: Tue, 21 Sep 2004 12:00:14 -0600 [thread overview]
Message-ID: <1095789614.24751.31.camel@tdi> (raw)
In-Reply-To: <20040921172625.GA30425@elf.ucw.cz>
On Tue, 2004-09-21 at 19:26 +0200, Pavel Machek wrote:
> > + Commands are issued by writing the following data structure to the ACPI
> > +object file:
> > +
> > +struct special_cmd {
> > + u32 magic;
> > + unsigned int cmd;
> > + char *args;
> > +};
>
> Talk to Andi Kleen; passing such structures using read/write is evil,
> because (unlike ioctl) there's no place to put 32/64bit
> translation. Imagine i386 application running on x86-64 system.
>
Yes, good point. I had prototyped an ioctl interface (google
"dev_acpi"). In some ways it was more powerful, and the ioctl solved
this particular issue. However, the data structures passed around on
read still use the data sizes as defined by the kernel. I intended the
VERSION interface to help address this issue by returning an acpi_object
size buffer. On an LP64 system, this is 24 bytes, on an ILP32 system,
it's 16. Unfortunately, the ioctl interface also moved the
implementation out of sysfs and wasted the perfectly good directory
hierarchy already available there.
So, I think the library wrapper will need to deal with the 32/64 bit
problem or we'll have to translate data structures to strictly defined
sizes. Any other thoughts on how this could be done? I'm concerned
about alignment issues too, so this is definitely an area that could use
some work.
> > + NOTE: ACPI methods have a purpose. Randomly calling methods without
> > +knowing their side-effects will undoubtedly cause problems. ACPI objects
> > +like _HID, _CID, _ADR, _SUN, _UID, _STA, _BBN should always be safe to
> > +evaluate. These simply return data about the object. Methods like
> > +_ON_, _OFF_, _S5_, etc... are meant to cause a change in the system and
> > +can cause problems. The ACPI sysfs module makes an attempt to hide some
> > +of the more dangerous interfaces, but it not fool-proof. DO NOT randomly
> > +read files in the ACPI namespace unless you know what they do.
>
> Hmm, reading file causing side-effects is not nice, either. I can see
> some backup tools doing that by mistake. Heh, even I might want to
> backup my system with tar, and it should not screw my system too badly
> if I forgot --exclude /sys...
We could move the side-effect to the write operation, but that feels
far less intuitive and makes it more difficult to handle multiple write
operations. Others have strong opinions one way or the other? I know
Willy had the same opinion at one point (make the operation occur on the
write), I'm not sure if I've convinced him otherwise.
> Perhaps ioctl is really right thing to use here? read() should not
> have side effects and it solves 32/64 bit problem.
If it solved the entire 32/64 bit problem, an ioctl would probably be
the right choice. But it doesn't AFAICT. I also like how this
implementation fits into the existing ACPI sysfs tree and that you can
get useful info simply by cat'ing a file. Thanks,
Alex
--
Alex Williamson HP Linux & Open Source Lab
next prev parent reply other threads:[~2004-09-21 18:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-20 21:41 [PATCH/RFC] exposing ACPI objects in sysfs Alex Williamson
2004-09-21 12:24 ` Pavel Machek
2004-09-21 14:18 ` Alex Williamson
2004-09-21 16:48 ` Alex Williamson
2004-09-21 17:26 ` Pavel Machek
2004-09-21 18:00 ` Alex Williamson [this message]
2004-09-21 19:31 ` Pavel Machek
2004-09-21 19:06 ` [ACPI] " Andi Kleen
2004-09-21 19:13 ` Alex Williamson
2004-09-21 19:18 ` Andi Kleen
2004-09-21 19:45 ` Alex Williamson
2004-09-21 19:58 ` Pavel Machek
2004-09-21 20:40 ` Alex Williamson
2004-09-21 21:02 ` Pavel Machek
[not found] ` <20040921210218.GJ30425-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2004-10-15 22:39 ` Alex Williamson
2004-10-26 20:55 ` [RFC] dev_acpi: support for userspace access to acpi Alex Williamson
2004-09-21 19:21 ` [ACPI] Re: [PATCH/RFC] exposing ACPI objects in sysfs Arjan van de Ven
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=1095789614.24751.31.camel@tdi \
--to=alex.williamson@hp.com \
--cc=acpi-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.cz \
/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