From: Andi Kleen <andi@firstfloor.org>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Andy Lutomirski <luto@myrealbox.com>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
public-kernel-testers-u79uwXL29TY76Z2rM5mHXA@lo.gmane.org,
ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
pm list <linux-pm@lists.linux-foundation.org>,
Pavel Machek <pavel@ucw.cz>
Subject: Re: [RFT] x86 acpi: normalize segment descriptor register on resume
Date: Sun, 13 Jul 2008 22:11:39 +0200 [thread overview]
Message-ID: <487A617B.80707@firstfloor.org> (raw)
In-Reply-To: <200807132115.08230.rjw@sisk.pl>
Rafael J. Wysocki wrote:
> On Sunday, 13 of July 2008, Andi Kleen wrote:
>> Andy Lutomirski wrote:
>>> Matthew Garrett wrote:
>>>> On Sun, Jul 13, 2008 at 11:15:24AM +0200, Ingo Molnar wrote:
>>>>
>>>>> we still need to find the HAL quirk and disable it, right?
>>>> Not without understanding what the cause is. If the video BIOS calls
>>>> are generically broken, then we have a problem.
>>>>
>>> The HAL quirk is the very first one here:
>>>
>>> http://gitweb.freedesktop.org/?p=hal-info.git;a=blob;f=fdi/information/10freedesktop/20-video-quirk-pm-lenovo.fdi
>>>
>>>
>>> I removed it from the HAL config and suspending w/ the hardware button
>>> works fine now with -rc9-wl and on Ubuntu's stock .24 kernel.
>> Hmm, but the change was not supposed to break the s3 bios. Something
>> fishy is going on. It sounds like the s3 bios relies on some earlier
>> segment register setup.
>
> Well, we changed the (visible) parts of the segment registers before anyway.
>
> This means that it could only depend on the hidden parts. However, in that
> case if it depended on the hidden part of SS, our stack would be broken,
We're in real mode for now nd should not care about the hidden state.
> so
> the quirk wouldn't work (it uses 'call' to run a BIOS routine). In turn, if it
> depended on the hidden part of DS, our data register would be broken, so the
> resume code itself wouldn't work.
>
> This means it could only depend on the hidden part of ES.
>
>> If true this means the segment register reset would need to be moved
>> later after S3 bios ran.
>
> We can't do that. If SS contains garbage, the BIOS call itself will reboot
> the box and if DS contains garbage, well ...
But it's apparently not garbage for the s3 bios. So somehow the "garbage"
needs to be kept impact until the S3 BIOS ran.
>> Saving/restoring is unfortunately not possible because we cannot save/restore
>> the hidden state loaded from the GDT earlier.
>>
>> This is unfortunately a little tricky with the new C wakeup code.
>>
>>> I'll file the obvious bug report against HAL, but it might annoy users
>>> if new kernel + old HAL = broken system,
>> It's the bad side effect of HAL effectively being an out of tree kernel
>> driver (that just by chance happens to run in user space). Really
>> all these s3 quirks at least should be in the kernel.
>>
>> We can't really do much about that now, but longer term it might be useful
>> to invent some mechanism to tell HAL to disable specific quirks from
>> the kernel.
>
> They are in the kernel. In fact, there's a sysctl to switch them on/off and
> that's what HAL uses, AFAICS.
The quirk is clearly in user space in hal.
>
> Apparently, you can tell HAL not to do that by editing one of its files.
Sure, but the kernel can hardly edit someone's configuration files.
-Andi
next prev parent reply other threads:[~2008-07-13 20:11 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-30 23:48 [RFT] x86 acpi: normalize segment descriptor register on resume Rafael J. Wysocki
[not found] ` <200807010148.02135.rjw-KKrjLPT3xs0@public.gmane.org>
2008-07-01 0:05 ` H. Peter Anvin
2008-07-01 6:31 ` Ingo Molnar
[not found] ` <20080701063133.GC16642-X9Un+BFzKDI@public.gmane.org>
2008-07-01 6:54 ` H. Peter Anvin
2008-07-01 9:19 ` Pavel Machek
2008-07-01 20:39 ` Rafael J. Wysocki
2008-07-01 20:42 ` Andi Kleen
2008-07-01 20:50 ` Rafael J. Wysocki
2008-07-01 20:52 ` Andi Kleen
[not found] ` <486A96C1.2020106-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>
2008-07-12 6:29 ` Andy Lutomirski
2008-07-12 12:08 ` Andi Kleen
[not found] ` <48789EC3.2070701-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>
2008-07-12 15:08 ` Andy Lutomirski
[not found] ` <48784F51.1010407-YSGFQ8SKJZVDPfheJLI6IQ@public.gmane.org>
2008-07-12 18:51 ` Rafael J. Wysocki
2008-07-12 20:31 ` Andy Lutomirski
2008-07-12 20:47 ` Rafael J. Wysocki
2008-07-12 20:39 ` Andy Lutomirski
2008-07-12 20:53 ` Rafael J. Wysocki
2008-07-12 23:11 ` Andy Lutomirski
2008-07-12 23:33 ` Rafael J. Wysocki
2008-07-13 8:56 ` Pavel Machek
2008-07-13 18:16 ` H. Peter Anvin
2008-07-14 6:36 ` Pavel Machek
2008-07-13 9:15 ` Ingo Molnar
2008-07-13 12:02 ` Matthew Garrett
2008-07-13 15:50 ` Andy Lutomirski
2008-07-13 18:43 ` Andi Kleen
2008-07-13 19:15 ` Rafael J. Wysocki
2008-07-13 20:11 ` Andi Kleen [this message]
2008-07-13 20:29 ` Rafael J. Wysocki
2008-07-14 2:35 ` H. Peter Anvin
2008-07-14 20:10 ` Rafael J. Wysocki
2008-07-13 20:38 ` H. Peter Anvin
2008-07-14 1:31 ` Matthew Garrett
2008-07-14 4:18 ` H. Peter Anvin
2008-07-14 7:39 ` Pavel Machek
2008-07-14 20:09 ` Rafael J. Wysocki
2008-07-16 14:13 ` Andrew Lutomirski
2008-07-16 14:23 ` Ingo Molnar
2008-07-13 20:16 ` H. Peter Anvin
2008-07-13 20:21 ` Andi Kleen
2008-07-13 20:32 ` Rafael J. Wysocki
2008-07-14 1:22 ` Henrique de Moraes Holschuh
2008-07-14 6:14 ` Pavel Machek
2008-07-14 11:22 ` Henrique de Moraes Holschuh
2008-07-13 18:02 ` Rafael J. Wysocki
2008-07-01 7:02 ` H. Peter Anvin
2008-07-01 13:01 ` Andi Kleen
2008-07-01 15:55 ` H. Peter Anvin
[not found] ` <486A5378.7020601-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2008-07-01 16:21 ` Andi Kleen
2008-07-01 17:28 ` H. Peter Anvin
2008-07-01 7:20 ` Ingo Molnar
[not found] ` <20080701072024.GB26601-X9Un+BFzKDI@public.gmane.org>
2008-07-01 7:28 ` Andrew Morton
2008-07-01 7:45 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2008-07-12 23:07 H. Peter Anvin
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=487A617B.80707@firstfloor.org \
--to=andi@firstfloor.org \
--cc=hpa@zytor.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=luto@myrealbox.com \
--cc=mingo@elte.hu \
--cc=mjg59@srcf.ucam.org \
--cc=pavel@ucw.cz \
--cc=public-kernel-testers-u79uwXL29TY76Z2rM5mHXA@lo.gmane.org \
--cc=rjw@sisk.pl \
/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).