lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 13 Jan 2011 22:48:41 +0100
From:	Borislav Petkov <bp@...64.org>
To:	Thomas Gleixner <tglx@...utronix.de>
Cc:	Matthew Garrett <mjg59@...f.ucam.org>,
	Manoj Iyer <manoj.iyer@...onical.com>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"Rafael J. Wysocki" <rjw@...k.pl>,
	"Herrmann3, Andreas" <Andreas.Herrmann3@....com>
Subject: Re: [PATCH] Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15

On Thu, Jan 13, 2011 at 04:30:43PM -0500, Thomas Gleixner wrote:
> The more interesting info is there in Manoj's logs:
> 
> [    0.036455] ..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1
> [    0.040000] ..MP-BIOS bug: 8254 timer not connected to IO-APIC
> [    0.040000] ...trying to set up timer (IRQ0) through the 8259A ...
> [    0.040000] ..... (found apic 0 pin 0) ...
> [    0.080021] ....... works.
> 
> versus
> 
> [    0.036460] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
> 
> So the "working" state is using "apic 0 pin 0" while the non working
> state is using "vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1".
> 
> Something changes across suspend/resume which makes the BIOS
> advertised routing work with PIT but not with HPET. Further why does
> the apic 0/0 solution found by the kernel (when ignoring BIOS) works
> always (except that we don't know whether the "nohpet" case works as
> well, but I bet it does).

Yes, it does. With "nohpet" we use PIT and PIT obviously works.

> So we are back to the question I raised above: What changes and even
> more interesting what changes after the HPET expires - which we know
> for sure that it must happen as otherwise we wont get a HPET interrupt
> after the 32bit wraparound.
> 
> We need answers to these questions before applying any
> patch/workaround/quirk or whatever.

Well, this is easily answered in the theoretical sense, without the
actual details :):

1. HPET gets reinitialized first
2. Something programs it
3. Timer expires but timer IRQ routing is still wrong and "Something"
   doesn't get its IRQ.
4. Timer IRQ routing gets "fixed" as part of the resume path.

... we end up waiting for the counter to wraparound and get an IRQ which
gets delivered this time.

Does that make sense at all?

-- 
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ