public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn@suse.de>
To: Theodore Tso <tytso@MIT.EDU>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
	Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	Len Brown <lenb@kernel.org>,
	linux-acpi <linux-acpi@vger.kernel.org>,
	"Starikovskiy, Alexey Y" <aystarik@gmail.com>
Subject: Re: Kernel Version specific vendor override possibilities needed - Revert and provide osi=linux or provide a replacement
Date: Tue, 26 Feb 2008 17:26:45 +0100	[thread overview]
Message-ID: <1204043205.4995.228.camel@queen.suse.de> (raw)
In-Reply-To: <20080221135132.GE14614@mit.edu>

On Thu, 2008-02-21 at 08:51 -0500, Theodore Tso wrote:
> On Thu, Feb 21, 2008 at 09:15:32AM +0000, Matthew Garrett wrote:
> > 
> > Offering OSI(Linux) makes a statement about our implementation - we're 
> > telling the firmware that it behaves in a certain way. That lets vendors 
> > start depending on that behaviour, and if that behaviour turns out to be 
> > different to Windows then we never get to fix that behaviour. Fine for 
> > vendors that have special-cased their firmware, bad for the vast 
> > majority of systems.
> 
> Exactly, that's the problem.  Suppose we put in an OSI(Linux), and
> Lenovo, thanks to the fact that they are working with Novell, puts in
> a special case hack just for whatever version of SLES they happen to
> be testing with.  Well, great.  Now suppose that three other laptops
> from different manufacturers (say, Sony, Fujitsu, and Asus) do things
> differently, the Windows way, and someone posts a patch to the ACPI
> drivers (and it might not and probably won't be the Thinkpad specific
> thinkpad_acpi.c file) which changes things so that it works for Sony,
> Fujitsu, et. al. --- and in the process, it breaks things for Lenovo,
> because the Lenovo is doing something special based on OSI(Linux)
> thanks to their special collaboration with Thomas Renniger and Novell.
> Oops.  Now we have a mess, and we have to start having special
> DMI-based blacklists and whitelists, and life generally sucks.
I doubt it. With your approach you end in a dmi black/whitelisting mess
and you violate the behavior BIOS developers seem to expect (that is
what we want to be compatible with, what BIOS developers write down,
right?).

Return true for OSI("Linux") for some T61 is wrong. It depends on the
BIOS (latest X61 might not have it yet, but will later, etc.), trying to
identify it is pretty much impossible (you can grep for "Linux" through
the memory where the table lies, yet more ugly than the current
"solution".
Probably the same for Dell and as said others might fill this with BIOS
updates.
The interface has been added and now it has to be kept.
And even if it has not been added, vendors are using it, as this has
been identified to be be more important than specs: Provide it.

> It would be much better if we define feature-specific OSI() strings
> that have well defined meanings for each place where Lenovo has to do
> something different than What Happens With Windows
Yes. But at the time the BIOS fix should be released, these
feature-specific OSI strings do not exist. And it takes at least a
kernel iteration until it comes into mainline kernel for sure. So you
want the vendor to wait half a year before the Linux BIOS hot-fix is
released?
They need if(OSI("Linux"). As soon as it is clear what the
fix/workaround (or even missing feature) is about, it can be discussed
to include an _OSI("feature") string to the kernel.
Vendors who care for linux would probably have no problem with updating
their fix in a later BIOS revision then(still embedded in linux only, to
not cause Windows regressions of course):
if(_OSI("Linux"){
   Store(0x1, fix1)
   Store(0x1, fix2)
}
to something like:
if(_OSI("Linux"){
   Store(0x1, fix1)
   if(_OSI("!Feature XY")
       Store(0x1, fix2)
}


>  --- especially for
> stuff which is generic, since all laptop manufactuers need to
> interoperate with whatever cr*p Windows ship.  
As said you cannot interoperate with all crap all Windows Versions ship.
They fix up things... and we are trying to stay compatible with the
bugs, this does not make any sense.
> At the end of the day,
> since Intel was originally too lazy to ship an ACPI conformance test
> suite, like it or not, Windows *has* become the APCI conformance test
> suite, and all laptop manufacturers (at least for today) must bow to
> the might and power which is the market share of Microsoft.
Wrong.
Currently there is a move to also ship laptops with Linux. It's not only
Lenovo, but also Dell and others.
These vendors can (if not cut down by OS too much) support their
machines. They are supporting driver development and they must make sure
that every single bit of the HW is running fine with Linux.
E.g. Lenovo released some native SATA and USB fixes for their BIOS
recently, you probably do not want to miss them.
If people have some spare time, they can go back some BIOS versions
before and fix up the drivers. But do not let vendors who care about
Linux force to
a) Duplicate bugs they already have to do for Windows (disable
   HW capability for a SP or whatever they add)
b) Not be able to provide BIOS fix-ups (e.g. if ASL code is needed) for
   Linux

You do not get machines fixed by that if the vendor does not care about
Linux (with the next _OSI("Windows 200X") hack he adds, things will
break anyway as these guys do not do a single test on Linux).

You want customers who buy a Linux machine (and I also would insist that
it is running just fine on Linux then), to open bug reports on
bugzilla.kernel.org so that they/you are able to debug problems that
"might" happen on machines who's vendors don't give a Cent for Linux?

No that is not working, it's working like that:
As soon as the vendors who are currently start to sell Linux with their
laptops are only gaining say 2% market share because of some more sold
machines to Linux users. Then the others will follow.
They are forced to use HW which uses open drivers and they have to make
sure their BIOS is half way compatible with Linux (if not they have to
modify it -> _OSI("Linux") needed for BIOS updates!).

This makes much more sense and is more realistic than trying to be
compatible with Windows or even all Windows Versions and it should get
supported as much as possible.

   Thomas


  parent reply	other threads:[~2008-02-26 16:26 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-20  1:44 Kernel Version specific vendor override possibilities needed - Revert and provide osi=linux or provide a replacement Thomas Renninger
2008-02-20 10:31 ` Tomas Carnecky
2008-02-20 13:14   ` Henrique de Moraes Holschuh
2008-02-20 15:31   ` Thomas Renninger
2008-02-20 17:32 ` Matthew Garrett
2008-02-20 18:21   ` Thomas Renninger
2008-02-20 18:46     ` Matthew Garrett
2008-02-20 18:23   ` Henrique de Moraes Holschuh
2008-02-20 18:49     ` Matthew Garrett
2008-02-21  3:13       ` Henrique de Moraes Holschuh
2008-02-21  5:31         ` Sergio Monteiro Basto
2008-02-21 15:55           ` Henrique de Moraes Holschuh
2008-02-21  9:15         ` Matthew Garrett
2008-02-21 13:51           ` Theodore Tso
2008-02-21 14:30             ` Matthew Garrett
2008-02-21 14:48               ` Alexey Starikovskiy
2008-02-21 14:55                 ` Matthew Garrett
2008-02-21 15:07                   ` Alexey Starikovskiy
2008-02-21 15:50               ` Henrique de Moraes Holschuh
2008-02-26 16:26             ` Thomas Renninger [this message]
2008-02-26 16:31               ` Matthew Garrett
2008-02-22 14:07   ` Thomas Renninger
2008-02-22 18:10     ` Matthew Garrett
2008-02-26 16:26       ` Thomas Renninger
2008-02-21  8:41 ` Len Brown
2008-02-21 15:41   ` Thomas Renninger
2008-02-21 15:58     ` Matthew Garrett
2008-02-21 17:15     ` Theodore Tso
2008-02-22 23:36       ` Len Brown
2008-02-23  0:06     ` 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=1204043205.4995.228.camel@queen.suse.de \
    --to=trenn@suse.de \
    --cc=aystarik@gmail.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