linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tomas Carnecky <tom@dbservice.com>
To: Len Brown <lenb@kernel.org>
Cc: Theodore Tso <tytso@mit.edu>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	linux-acpi@vger.kernel.org
Subject: Re: [PATCH 5/5] ACPI: add DMI to enable OSI(Linux) on ThinkPad T61
Date: Sun, 20 Jan 2008 20:21:02 +0100	[thread overview]
Message-ID: <47939F1E.2090407@dbservice.com> (raw)
In-Reply-To: <200801201331.59478.lenb@kernel.org>

Len Brown wrote:
> On Sunday 20 January 2008 07:03, Tomas Carnecky wrote:
>> Len Brown wrote:
>>>    I am okay with defining OSI strings for the benefit of BIOS vendors that
>>>    need to know about Linux capabilities.  But the string must
>>>    identify that specific capability (or lack of a capability).
>> Is there a chance this will be added to future ACPI specs, or have it 
>> standardized in one way or another? I think that would be not only good 
>> for Linux, but all other UNIX-like operating systems as well (and maybe 
>> Windows as well).
>>
>> Not that I care, really, but for me as an outsider to the whole ACPI 
>> domain, it seems _OSI() isn't a well thought out interface. Checking for 
>> an OS name rather than individual capabilities may not matter as much 
>> under Windows, but for Linux, with its rather short release cycle, it 
>> certainly does.
> 
> Originally, there was _OS="<insert your OS name>" to identify the OS to the BIOS.
> We proudly answered _OS="Linux" and broke every BIOS on Earth
> that assumed that the only two choices for _OS
> which corresponded to Win98 and WinNT.
> That is why _OS="Microsoft Windows NT" is hardwired
> into Linux and any other OS that is concerned about
> following what has proven to be the only tested
> path through the BIOS.
> 
> So naming the OS turned out to be a failure (for everybody,
> not just for Linux -- consider that XP and Vista claim they are NT
> according to _OS or they hit the same BIOS bugs we do...)
> 
> _OSI is supposed to tell the BIOS what interfaces the OS supports,
> for example "Extended Address Space Descriptor".
> 
> However, it is being mis-used to identify the
> version of the OS, which is why you see this:
> 
> static char *acpi_interfaces_supported[] = {
>         /* Operating System Vendor Strings */
> 
>         "Windows 2000",         /* Windows 2000 */
>         "Windows 2001",         /* Windows XP */
>         "Windows 2001 SP1",     /* Windows XP SP1 */
>         "Windows 2001 SP2",     /* Windows XP SP2 */
>         "Windows 2001.1",       /* Windows Server 2003 */
>         "Windows 2001.1 SP1",   /* Windows Server 2003 SP1 - Added 03/2006 */
>         "Windows 2006",         /* Windows Vista - Added 03/2006 */
> 
> ie. basically the OS name is a proxy for all the interfaces
> that OS supports.  Taken another way, OS-version-specific quirks
> and workarounds are included in the definition of that interface...

So _OSI _is_ a good interface, it's just being misused. Thanks for the 
explanation.

> We could do the same with Linux, except that
> 1. the string "Linux" is even more poorly defined than those above,
>    as it has no version information.

Who came up with the idea to use "Linux"? After what you described 
above, this seems even worse choice then what Windows does - they at 
least have some information about the version in it.

> 2. the presence of the string "Linux" tends to break as many BIOS'
>    implementations as it fixes -- because it isn't universally tested.
> 
> So if new strings come up in the ACPI spec, we can use standard strings.
> But I don't think the ACPI spec is necessary to address Linux'
> problem-at-hand.

After what you explained above, I don't think either, the ACPI spec is ok.

> We as the Linux community can define "Needs BIOS S3 video restore" as a string
> and ship it in our kernel, telling BIOS writers about it.
> However, we'd reserve the right to _stop_ answering YES to a query on that string
> when we no longer need it.

Still, it would be nice to have these strings somehow standardized. 
Maybe Intel and other vendors or BIOS developers come up with something 
and document it properly, include some of the most important strings in 
the ACPI spec? Because if Linux starts using some strings and Windows or 
BSD different strings, there will surely be a mess - again.

tom

  reply	other threads:[~2008-01-20 19:21 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-17 10:24 [PATCH 0/5] improved knobs to deal with OSI(Linux) Len Brown
2008-01-17 10:24 ` [PATCH 1/5] DMI: move dmi_available declaration to linux/dmi.h Len Brown
2008-01-17 10:24   ` [PATCH 2/5] DMI: create dmi_dump_entries() Len Brown
2008-01-17 10:24   ` [PATCH 3/5] ACPI: use dmi_dump_entries() instead of requesting dmidecode output Len Brown
2008-01-17 10:24   ` [PATCH 4/5] ACPI: OSI(Linux) cmdline and DMI BIOS workarounds Len Brown
2008-01-17 10:24   ` [PATCH 5/5] ACPI: add DMI to enable OSI(Linux) on ThinkPad T61 Len Brown
2008-01-17 12:28     ` Matthew Garrett
2008-01-17 14:46       ` Henrique de Moraes Holschuh
2008-01-17 20:04       ` Len Brown
2008-01-17 21:31         ` Theodore Tso
2008-01-19  7:40           ` Len Brown
2008-01-19 12:08             ` Henrique de Moraes Holschuh
2008-01-19 14:17               ` Theodore Tso
2008-01-19 15:33                 ` Henrique de Moraes Holschuh
2008-01-19 15:43                   ` Matthew Garrett
2008-01-19 23:19                     ` Theodore Tso
2008-01-20  4:13                       ` Len Brown
2008-01-20 11:16                         ` Rafael J. Wysocki
2008-01-20 12:03                         ` Tomas Carnecky
2008-01-20 18:31                           ` Len Brown
2008-01-20 19:21                             ` Tomas Carnecky [this message]
2008-01-21  1:52                             ` Theodore Tso
2008-01-21  9:50                               ` Matthew Garrett
2008-01-21 19:00                                 ` Theodore Tso
2008-01-21 19:37                                   ` Matthew Garrett
2008-01-22  5:37                                     ` Len Brown
2008-01-20 19:49                       ` Henrique de Moraes Holschuh
2008-02-18 16:58                         ` Thomas Renninger
2008-02-18 19:17                           ` Henrique de Moraes Holschuh
2008-02-19  0:00                             ` Thomas Renninger
2008-02-19  0:26                               ` Theodore Tso
2008-02-19  6:34                                 ` Thomas Renninger
2008-02-19 13:24                                 ` Henrique de Moraes Holschuh
2008-02-19 10:26                             ` Thomas Renninger
2008-02-19 14:24                               ` Henrique de Moraes Holschuh
2008-02-20  1:43                                 ` Thomas Renninger
2008-02-20  2:47                                   ` Henrique de Moraes Holschuh
2008-01-19  7:50     ` [PATCH 6/5] ACPI: DMI blacklist for OSI(Linux) Len Brown
2008-01-19  8:16       ` Andi Kleen
2008-01-20  4:18         ` Len Brown

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=47939F1E.2090407@dbservice.com \
    --to=tom@dbservice.com \
    --cc=hmh@hmh.eng.br \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=tytso@mit.edu \
    /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).