public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak-l3A5Bk7waGM@public.gmane.org>
To: Bas Mevissen <ml-Y9IUUvl1dgU0Iwp8Nzs06g@public.gmane.org>
Cc: john.cagle-VXdhtT5mjnY@public.gmane.org,
	len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	scott-j3vAvQ9dNB9ByuSxxbvQtw@public.gmane.org,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: RE: ACPI -- Workaround for broken DSDT
Date: Thu, 5 Feb 2004 17:24:05 +0100	[thread overview]
Message-ID: <20040205172405.01777986.ak@suse.de> (raw)
In-Reply-To: <40226A58.5080004-Y9IUUvl1dgU0Iwp8Nzs06g@public.gmane.org>

On Thu, 05 Feb 2004 17:07:52 +0100
Bas Mevissen <ml-Y9IUUvl1dgU0Iwp8Nzs06g@public.gmane.org> wrote:

> Andi Kleen wrote:
> 
> > 
> > To guarantee parseable AML all you have to do is to compile the AML
> > with the Intel AML compiler (available from the Intel ACPI website)
> > This could be done from the source code or by just disassembling
> > it (iasl -d DSDTdump) and then reassembling it. If it compiles it should be ok
> > for the interpreter.
> > 
> 
> That would at least mean that the interpreter would not have to deal 
> with it at runtime. But it looks like a lot of DSDTs don't even pass 
> that test...
> 
> How is the interpreter currently designed/behaving to cope with such 
> situation?

The Intel interpreter is very strict (even with the relaxed aml option),
microsoft is very lax. That causes problems.

But interpreter problems are usually fairly easy to fix. The 
interpreter could be probably be made even more relaxed, but the 
maintainers (Len.et.al) don't seem to want to go that path so I don't see it 
happening.  They write the code, so it works like they want it.

It would not help that much anyways. 

The interpreter problems would be all easy to catch by QA
(even without actually booting linux). And also easy to fix
afterwards, just a bit time consuming.

The nasty problems are other logic bugs in parsing tables and interpreting 
results of methods. There doing the same thing as Windows is basically
impossible.

> > Of course that doesn't guarantee that Linux will work with it
> > (it could parse the tables incorrectly or not like something the
> > methods do when executed) but will catch at least some basic AML errors and
> > do some static verifying.
> > 
> 
> Maybe linux-acpi should first do a quick-scan on the DSDT and then 
> decide in what "emulation-mode" it should go. Think of
> 
> * Simply good according ACPI-2.xxx spec -> follow the spec (ideal case)
> 
> * Special Linux-specific behaviour in DSDT -> do what the ACPI 
> implementation of does at the moment (likely older BIOS that was tested 
> on _some_ version of Linux-acpi)
> 
> * DSDT with behaviour customised for one or more Windows version -> 
> emulate one of them (the latest version named?)
> 
> * Nothing -> just pick a windows emulation depending on BIOS date or 
> other prior knowledge

You're assuming that all interactions with ACPI are well understood.
But it's an extremly complex system hooking into all kinds of low level
parts of the kernel

(e.g. a lot of ACPI DSDT parsing behaviour doesn't actually come from
the ACPI subsystem code, but from the linux APIC and interrupt code)

Doing "ACPI behaviour emulations" would be impossible to maintain. It's already 
difficult enough to catch and test the various cases. ACPI problems at boot are usually
difficult to debug. Keeping it simple stupid is the only way to keep
it manageable. And the ACPI subsystem is already too complex.

Remember we're not talking about Mozilla here, but about an extremly
low level part of a kernel.

-Andi


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn

  parent reply	other threads:[~2004-02-05 16:24 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-05 14:33 RE: ACPI -- Workaround for broken DSDT Cagle, John (ISS-Houston)
     [not found] ` <C50AB9511EE59B49B2A503CB7AE1ABD1066111ED-Iar2LzuD2f6P0FQRY6S+e9kSKC0Mw0DFJ8am2ALHCgk@public.gmane.org>
2004-02-05 15:19   ` Andi Kleen
     [not found]     ` <20040205161923.37eebc64.ak-l3A5Bk7waGM@public.gmane.org>
2004-02-05 16:07       ` Bas Mevissen
     [not found]         ` <40226A58.5080004-Y9IUUvl1dgU0Iwp8Nzs06g@public.gmane.org>
2004-02-05 16:24           ` Andi Kleen [this message]
     [not found]             ` <20040205172405.01777986.ak-l3A5Bk7waGM@public.gmane.org>
2004-02-05 17:15               ` Bas Mevissen
2004-02-05 15:55   ` Bas Mevissen
2004-02-06 19:33   ` Bruno Ducrot
  -- strict thread matches above, loose matches on Subject: below --
2004-02-11  6:31 Yu, Luming
2004-02-05  8:10 Brown, Len
     [not found] ` <BF1FE1855350A0479097B3A0D2A80EE0CC8AB9-N2PTB0HCzHJF3Yvz3xaN/VDQ4js95KgL@public.gmane.org>
2004-02-05  8:58   ` Luca Capello
     [not found]     ` <402205B0.3000607-wlebWZzHoyE@public.gmane.org>
2004-02-05 22:43       ` Karol Kozimor
2004-02-05 15:44   ` Scott T. Smith
     [not found]     ` <1075995857.5758.43.camel-3lu5YwujmwObGSPjaX/RoA@public.gmane.org>
2004-02-05 16:13       ` Bas Mevissen
2004-02-05  5:15 Brown, Len
     [not found] ` <BF1FE1855350A0479097B3A0D2A80EE0CC8AB6-N2PTB0HCzHJF3Yvz3xaN/VDQ4js95KgL@public.gmane.org>
2004-02-05  6:55   ` Scott T. Smith
     [not found]     ` <1075964148.5017.7.camel-3lu5YwujmwObGSPjaX/RoA@public.gmane.org>
2004-02-05 10:00       ` Bruno Ducrot
2004-02-09 20:29       ` Nate Lawson
     [not found]         ` <20040209122256.K74314-Y6VGUYTwhu0@public.gmane.org>
2004-02-09 21:23           ` Len Brown
2004-02-12 10:19           ` Bruno Ducrot
2004-02-05  7:29   ` Andi Kleen
     [not found]     ` <20040205082926.660974d2.ak-l3A5Bk7waGM@public.gmane.org>
2004-02-05 12:09       ` Bas Mevissen
2004-02-05 11:34   ` Bas Mevissen
2004-02-04  7:22 Brown, Len
     [not found] ` <BF1FE1855350A0479097B3A0D2A80EE0CC8A9F-N2PTB0HCzHJF3Yvz3xaN/VDQ4js95KgL@public.gmane.org>
2004-02-04  7:49   ` Arjen Verweij
2004-02-05  2:18   ` Scott T. Smith

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=20040205172405.01777986.ak@suse.de \
    --to=ak-l3a5bk7wagm@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=john.cagle-VXdhtT5mjnY@public.gmane.org \
    --cc=len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=ml-Y9IUUvl1dgU0Iwp8Nzs06g@public.gmane.org \
    --cc=scott-j3vAvQ9dNB9ByuSxxbvQtw@public.gmane.org \
    /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